i2b2 Academic Users Group
Space shortcuts
Space Tools
Skip to end of metadata
Go to start of metadata

Last Updated: 03/18/2013

Biometric ontology [11-29-2012]
From: Mendis, Michael E. Sent: Thursday, November 29, 2012 9:44 AMTo: Lee, Eunjung SCc: i2b2 AUG MembersSubject: Re: biometric ontology
The i2b2 released ontology for labs have these types of breakdowns, called value constraints. These are all controlled in the c_metadataxml in the ontology table. We have a tool in the workbench that will create these for you very easily, the Edit Ontology. I don't know of any already done ones, but if you used the ontology from the bioportal as a starting point, than you can load that into the table, and use the workbench to add the high-high, high-low, low-high, low-low, ect. Or any enum that might need to be used.

On Nov 28, 2012, at 7:38 PM, "Lee, Eunjung S" <sallylee.u.washington> wrote:
Thank you for your answer, but we are more interested in how people break down biometrics into ranges.
Do you also break down the ontology into ranges?
For example, BloodPressure contains many different numbers so how do we break into appropriate ranges?
We currently have Age that breaks down into various ranges as leaf note, but I wasn't sure if things like BP and BMI are done the same way.
Thank you for your help!

From: Russ Waitman [rwaitman.kumc] Sent: Wednesday, November 28, 2012 2:58 PM To: 'Eunjung S Lee'; i2b2 AUG Members Subject: RE: biometric ontology
Yes.  We harvest ours from our EMR so the breakdowns are based on the EMR flowsheet ontologies.
Russ Waitman

From: Mendis, Michael E. [MMENDIS.PARTNERS]
Sent: Wednesday, November 28, 2012 11:54 AM
To: Lee, Eunjung S
Cc: i2b2 AUG Members
Subject: Re: biometric ontology
If you are starting from scratch and need an ontology (no requirements like ICD9, SNOMED, ect..) , you might take a look at bioportal.bioontology.org<http://bioportal.bioontology.org> and search for a ontology. One that might fit is: Clinical Measurement Ontology, under the cardiovascular measurement they have blood pressure, blood bessel, heart rate, ect...
There is also a tool that the will extract this ontology and create an i2b2 ontology from it. here https://community.i2b2.org/wiki/display/NCBO/NCBO+Ontology+Tools

On Nov 28, 2012, at 2:26 PM, Lee, Eunjung S wrote:
I just recently got involved in creating i2b2 (loading data and creating ontology) and would like some advice on ontology creation.
Has anyone implemented ontology for biometric data (blood pressure, pulse, temperature, BMI, etc.) and can share it?
I would specially like to know the leaf level break downs (ranges for BP, temp, BMI, etc.) and the codes used.
Thank you!
E. Sally Lee, Ph.D
Biomedical Informatics Core Consult
Amalga Clinical Data Repository
Institute of Translational Health Sciences University of Washington

SQL in QueryResultPatientSetGenerator [11-28-2012]
From: Yves Thorrez [Yves.Thorrez.uzbrussel.be] Sent: Wednesday, November 28, 2012 9:02 AMTo: Mendis, Michael E.Cc: i2b2 AUG MembersSubject: RE: SQL in QueryResultPatientSetGenerator
After looking a bit closer at the JBoss log this afternoon, I found that the culprit was in QueryResultEncounterSetGenerator, not QueryResultPatientSetGenerator (star) .
The way to fix it is similar, adding TOP 100 PERCENT in the SELECT statement which is included in the INSERT statement (but only used when 'same encounter' is set). The inner SELECT query is determined by this method in QueryResultEncounterSetGenerator:
private String buildEncounterSetSql(SetFinderDAOFactory sfDAOFactory,
String queryInstanceId, String TEMP_DX_TABLE,
String queryGeneratorVersion) throws I2B2DAOException {
// get request xml from query instance id
// call timing helper to find if timing is samevisit
String encounterSetSql = " select TOP 100 PERCENT encounter_num,patient_num from "
+ TEMP_DX_TABLE + " order by patient_num,encounter_num ";
Not sure if ordering is actually needed though, so maybe the ORDER BY clause can instead be removed altogether??
(star) The error messages in the JBoss log had misguided me. In QueryResultEncounterSetGenerator.java:
log.error("QueryResultPatientSetGenerator.generateResult:" + .
should be:
log.error("QueryResultEncounterSetGenerator.generateResult:" + .

From: Yves Thorrez
Sent: woensdag 28 november 2012 10:58
To: 'Mendis, Michael E.'
Cc: i2b2 AUG Members
Subject: RE: SQL in QueryResultPatientSetGenerator
The error occurs when both the 'Same encounter' temporal constraint is set AND 'Encounter set' is selected as the query's output.
I just noticed that the error is still present after my change was incorporated...
We're running on SQL Server 2008 R2. Below is part of the JBoss log. I will send you the complete log in pm.
2012-11-28 10:44:23,495 DEBUG [edu.harvard.i2b2.crc.dao.CRCDAO] Executing setfinder query result type encounter set sql [ select encounter_num,patient_num from i2b2demodata.dbo.#DX order by patient_num,encounter_num ]
2012-11-28 10:44:23,495 DEBUG [edu.harvard.i2b2.crc.dao.CRCDAO] Executing sql:
INSERT INTO i2b2demodata.dbo.qt_patient_enc_collection (result_instance_id, set_index, patient_num, encounter_num) SELECT TOP 100 PERCENT ? AS result_instance_id, ROW_NUMBER() OVER(ORDER BY patient_num) AS set_index, t.patient_num, t.encounter_num FROM ( select encounter_num,patient_num from i2b2demodata.dbo.#DX order by patient_num,encounter_num ) t order by t.patient_num,t.encounter_num
2012-11-28 10:44:23,495 ERROR [edu.harvard.i2b2.crc.dao.CRCDAO] QueryResultPatientSetGenerator.generateResult:The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified.
com.microsoft.sqlserver.jdbc.SQLServerException: The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(Unknown Source)
at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:251)
at edu.harvard.i2b2.crc.dao.setfinder.QueryResultEncounterSetGenerator.generateResult(Unknown Source)
at edu.harvard.i2b2.crc.dao.setfinder.QueryExecutorHelperDao.runGenerator(Unknown Source)
at edu.harvard.i2b2.crc.dao.setfinder.QueryExecutorHelperDao.callResultGenerator(Unknown Source)
at edu.harvard.i2b2.crc.dao.setfinder.QueryExecutorHelperDao.executeQuery(Unknown Source)
at edu.harvard.i2b2.crc.dao.setfinder.QueryExecutorDao.executeSQL(Unknown Source)
at edu.harvard.i2b2.crc.ejb.ExecRunnable.processQueryRequest(Unknown Source)
at edu.harvard.i2b2.crc.ejb.ExecRunnable.execute(Unknown Source)
at edu.harvard.i2b2.crc.ejb.QueryExecutorMDB.onMessage(Unknown Source)
at edu.harvard.i2b2.crc.ejb.QuerySmallExecutorMDB.onMessage(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
at org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.java:495)
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158)
at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
at org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(AbstractTxInterceptorBMT.java:173)
at org.jboss.ejb.plugins.MessageDrivenTxInterceptorBMT.invoke(MessageDrivenTxInterceptorBMT.java:47)
at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:116)
at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:109)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138)
at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:402)
at org.jboss.ejb.Container.invoke(Container.java:960)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:987)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1287)
at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:266)
at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:891)
at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:170)
at org.jboss.mq.SpySession.run(SpySession.java:323)
at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:194)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:756)
at java.lang.Thread.run(Thread.java:722)

From: Mendis, Michael E. [MMENDIS.partners]
Sent: dinsdag 27 november 2012 21:02
To: Yves Thorrez
Cc: i2b2 AUG Members
Subject: Re: SQL in QueryResultPatientSetGenerator
I have tried to reproduce this on our Sql Server 2005/8 and was everything worked fine.
It looks like you where trying to run a regular query? If so, what version of Sql Server was it and what was the complete jboss log for it?

On Nov 26, 2012, at 5:40 AM, Yves Thorrez wrote:
For those of us using SQL Server and installing or updating the i2b2 server to v1.6.07, the following sql will not work due to invalid grammar:
edu.harvard.i2b2.crc.dao.setfinder. QueryResultPatientSetGenerator
if (sfDAOFactory.getDataSourceLookup().getServerType().equals(DAOFactoryHelper.ORACLE)) {
} else if (sfDAOFactory.getDataSourceLookup().getServerType().equalsIgnoreCase(DAOFactoryHelper.SQLSERVER)) {
sql = "INSERT INTO " + dbSchemaName + "qt_patient_set_collection"
+ " (result_instance_id, set_index, patient_num) "
+ "SELECT ? AS result_instance_id, ROW_NUMBER() OVER(ORDER BY patient_num) AS set_index, t.patient_num "
+ "FROM (SELECT DISTINCT patient_num FROM " + TEMP_DX_TABLE + ") t"; }
will generate the error: "The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified"
One possible fix is to specify TOP:
SELECT TOP 100 PERCENT ? AS result_instance_id, ROW_NUMBER() OVER(ORDER BY patient_num) AS set_index, t.patient_num
Yves Thorrez
Medische Informatieverwerking
Laarbeeklaan 101 - 1090 Brussel
Tel 02 477 69 45 - Fax 02 477 69 75

Tutorial now available [11-27-2012]
From: Churchill, Susanne E. Sent: Tuesday, November 27, 2012 3:36 PM To: i2b2 AUG Members Subject: Tutorial now available
Dear Colleagues,
As promised, the video from Mike Mendis' Tutorial, Developing an i2b2 Cell and Client Plugin, held in conjunction with the recent CTSA IKFC Meeting is now available by link from your AUG webpage:  http://www.i2b2.org/work/aug.html.

Web Client 1.6.07: Jumbled / Compressed Panels [11-26-2012]
From: Jack London [Jack.London.jefferson] Sent: Monday, November 26, 2012 12:58 PM To: Nathan Graham Cc: i2b2 AUG Members; Mendis, Michael E. Subject: Re: Web Client 1.6.07: Jumbled/Compressed Panels
With Mac OS X and Chrome this problem was solved by clearing cache.  I did not observe it happening with Safari.

From: Zapletal Eric [eric.zapletal.egp.aphp.fr] Sent: Monday, November 26, 2012 11:49 AM To: Nathan Graham Cc: 'i2b2 AUG Members'; Mendis, Michael E. Subject: Re: Web Client 1.6.07: Jumbled/Compressed Panels
Hi all, few monthes ago, I had a similar issue : changing "isSHRINE" to "false" in the i2b2_config_data.js solves this issue. Eric
On Nov 26, 2012, at 11:37 AM, Nathan Graham wrote:
Mike / AUG members,
I'm seeing intermittent issues with the i2b2 demo at i2b2.org (http://webservices.i2b2.org/webclient/) that look just like the "jumbled" screens I saw with our installation when I tried to upgrade from 1.6.03 to 1.6.07.  By "jumbled" I mean the Query Tool panel is compressed to the upper-left corner and none of the other panels show up.  If I "refresh" the i2b2.org web client over and over (logging back in each time, of course) the panels are sometimes "jumbled" and other times are not.  I've attached a screenshot.
I've only seen this with 1.6.07.  Prior to today, I thought it was a problem with my attempt to upgrade the web client.  However, now that I see the same issue with the i2b2.org site, it makes me think something else might be going on.
As suggested before, I've cleared my browser cache a few times and don't see a correlation between when it works and when it fails.  Interestingly, I wasn't able to reproduce the issue on the i2b2.org site with Internet Explorer or Chrome (after 12 refreshes) but it is solidly reproducible with Firefox.  When I saw it before with our installation, I did try IE and it also showed the jumbled panels.
I've included the previous thread as part of this e-mail.
Has anyone else seen this issue?
From: Nathan Graham  Sent: Thursday, October 18, 2012 10:45 AM To: i2b2 AUG Members> Subject: Re: 1.6.07 Upgrade: Jumbled Panels?
Thanks for the reply. 
I cleared my browser cache and restarted the browsers (IE and FireFox) and still had the problem.  I also tried the ctrl+F5 trick in FireFox to reload and ignore cache.  Finally, I had a couple of my coworkers try as well - they also experienced the issue.
Just for good measure, I restarted JBoss/Apache as well.
I'm double-checking my merge - let me know if you have any debugging suggestions.
Thanks again.
Nathan Graham
Software Engineer
Department of Biostatistics
University of Kansas Medical Center

"Mendis, Michael E." <MMENDIS.PARTNERS> 10/18/2012 10:16 AMNathan, I have seen this also, I have noticed that it occurs when the client has previous gone to a 1.6.06 and then to a 1.6.07, and the browser cache gets confused.   The solution is to clear the client browser cache and reload the page.  After clearing the cache, it is best to restart the browser. mike
On Oct 18, 2012, at 11:11 AM, Nathan Graham wrote: AUG Members, Has anyone upgraded to i2b2 webclient version 1.6.07?  I attempted the upgrade from 1.6.06 and ended up with a jumbled looking screen in the browser.  I tried both IE and FireFox.  I downgraded to 1.6.06 and it looked correct again. We have our own repository with the webclient code where we've made some seemingly minor changes so it's certainly possible I've made a mistake with the merge.  But, I thought I'd check to see if anyone else has seen this. Attached is a screenshot. Thanks! Regards, Nathan Nathan GrahamSoftware EngineerDepartment of BiostatisticsUniversity of Kansas Medical Center ngraham.kumc<ngraham.kumc> http://informatics.kumc.edu

Project permissions [11-19-2012]
From: Murphy, Shawn N. Sent: Monday, November 19, 2012 3:41 PM To: Colette Blach; i2b2 AUG Members Subject: RE: Project permissions
Hi Colette,
They are limited to a single project at a time.
Shawn Murphy MD

From: Colette Blach [colette.blach.duke] Sent: Monday, November 19, 2012 1:36 PM To: i2b2 AUG Members Subject: Project permissions
I'm trying to understand i2b2's permission behaviors.  When an i2b2 user has access to multiple unrelated projects, with no project as a parent or child of the other, can the user query across all his projects at once?  Or will he be limited to a single project at a time?

Colette Blach
Center for Human Genetics
Duke University

Small update on the UMass Med School i2b2 webclient plugin download page(s) [11-05-2012]
From: Chan, Wayne [Wayne.Chan.umassmed] Sent: Monday, November 05, 2012 11:04 AM To: 'i2b2 AUG Members' Cc: Sadasivam, Rajani; Houston, Thomas; Kinney, Rebecca Subject: Small update on the UMass Med School i2b2 webclient plugin download page(s)
Hi, all,
We at the University of Massachusetts Medical School has recently updated our i2b2 webclient plugin download pages.  The new links are as following:
The general download page remains the same: http://micard.umassmed.edu/software.php
The download page for the "WISE – Tagger / Annotator" plugin is now http://micard.umassmed.edu/wise-annotator.php
The download page for the "WISE – Searcher" plugin is now http://micard.umassmed.edu/wise-searcher.php
The download page for the "ExportXLS v2.0" plugin is now http://micard.umassmed.edu/exportxls.php
The corresponding download links in the i2b2 Community project Wiki pages (http://community.i2b2.org/wiki/display/WISE/Home and http://community.i2b2.org/wiki/display/ExportXLS/ExportXLS+Home) will also be updated to reflect these later today.
Incidentally, please check back to our download page in a few weeks for new i2b2 webclient plugins & tools soon to be released.
Please don't hesitate to contact us concerning any questions or problems.  Thanks.

  • No labels