Last Updated: 10/01/2010

 


 

 

NLP Cell Installation Advice  [09-30-2010]

 

On 9/30/10 12:45 PM, Michael Bobak wrote:

 

Yes, we were very careful to get exactly the suggested versions of Tomcat, Axis2, Gate/Weka etc.  One thing that I wasn't sure about for the common/lib jars, was if I should replace the default jasper-compiler-jdt.jar (given the jasper errors we got), so I looked &followed a suggestion to use it from a 3rd party Gate lib (text2onto) but not much change*.  Right now I've been asked to run most of the new 1.5.2 server from the VMware image; and we have been trying to get the nlp-cell on either os-x or another Linux image, as I don't think we will have use of a Windows box as a server.

 

Thanks you,

Michael

 

 

On 9/30/10 12:29 PM, Michael Bobak wrote:

 

Thank you!   It was suggested that I build axis2 from source, but am having trouble with that at the moment.   Another stumbling block, is during the load of our test cases: The text doesn't fit into the tval_char column of the Observation_fact table, and so far I have been unable to change the column type via the oracle web-interface.

 

Thanks again, Mike

 

 

On 9/30/10 10:54 AM, Marius Petruc wrote:

 

Michael,

in our setup we use IIS7 (not Tomcat). so to get the NLP cell installed without increasing complexity we decided to install NLP on the already working jboss + axis2, together with the other i2b2 cells. i followed the installation instructions provided.

 

%CATALINA_HOME%\common\lib = [jboss_root_folder]\server\default\lib. i tired using a newer version of gate, but it didn't work. you need to use the exact version of gate (GATE-3.1.exe) and weka (Weka 3.4.4). in windows i had to install a few other libraries that were missing (pdfbox is an example that I remember), on linux you might or might not need to. use the log file to figure out if/what's missing and where it needs to go.

 

i thought i have made notes, but can't find them at the moment (i'm running a grep search right now). if i find anything i'll let you know.

 

yours,

Marius

 

 

On 9/30/10 8:39 AM, Shawn Murphy wrote:

 

Hi Mike,

 

This cell was built by Qing Zeng and Sergey Goryachev (both cd'd).

 

Thanks,

Shawn.

 

 

On 9/29/10 12:51 AM, Michael Bobak wrote:

 

Recently we have been going through NLP-installation-10.pdf to set up the cell either on os-x, the VMware image that I am running off of, or another Linux image.  We have had some (jasper related axis) problems even with the exact versions of axis2&tomcat listed in the doc.   If you have dealt with something similar, or have any other advice that might speed up the process of being able to try out the nlp-cell, we would be most grateful.

 

Thanks!

 

mike

 

 

 


 

 

Plug-in Packaging Guidance  [09-29-2010]

 

On 9/29/10 12:34 PM, Shawn Murphy wrote:

 

Hi Bill,

There is a description of how to package and deploy a Workbench plug-in in the document "i2b2Workbench_Developers Guide.   It is on the web site under the documentation hexagon for the i2b2 Workbench.  It's a big file, so I will send it to you separately so that it does not clog everyone's mailboxes.

Thanks,

Shawn.

 

 

On 9/23/10 12:12 PM, Bill Adams wrote:

 

Hello,

We have developed a new i2b2 workbench plug-in that we will demonstrating at the upcoming CTSI informatics meeting.  We are looking for help/guidance related to packaging and deploying our plug-in.  Has anyone done this who could offer some help/guidance?

 

Bill Adams

 

 

 


 

 

Temporal Query  [09-28-2010]

 

On 9/28/10 9:39 AM, Bill Adams wrote:

 

At BU we are working on a plug-in as well.  We will be presenting it on October 14 at the CTSA informatics meeting.  The plug-in uses temporal- and value- and age-constraints to monitor and assess health outcomes in i2b2.  Once it is out of prototype stage we will be happy to share and improve within the i2b2 AUG.

 

Bill Adams

 

 

On 9/28/10 8:39 AM, Daniele Segagni wrote:

 

Hello David,

Here in Pavia, Italy, we're working on temporal query to automatically discover interesting regularities or relationships in our i2b2 data.

 

Currently we're planning the development work in order to create a dedicated temporal analysis i2b2 cell and a plug-in for the i2b2 web client.

 

Since we are in the earliest part of our project we can collaborate on this problem to find a good solution that could be used by both.

 

Regards

 

Daniele Segagni

 

 

On 9/27/10 3:05 PM, Daniel Nigrin wrote:

 

I'm sure Griffin will chime in, but yes, he and I and others here in Boston are working on this.  At the core, we are implementing concepts that me and Zak Kohane described in this JAMIA article from many moons ago:

 

http://jamia.bmj.com/content/7/2/152.abstract

 

Best,

Dan

 

 

On 9/27/10 2:58 PM, Keith Marsolo wrote:

 

David,

 

Griffin Weber has done some work related to this.  He presented it at the AUG meeting held in conjunction with the AMIA Summit on Translational Bioinformatics back in March.  He may have some updates.

 

Keith

 

 

On 9/27/10 2:06 PM, David Norris wrote:

 

Temporal query was cited as weakness of i2b2 in the review by Deshmukh, Meystre and Mitchell in BMC Medical Research Methodology 2009, 9:70.  I find that moderately complex temporal queries in my own recent clinical research would have been impossible to implement in the current

Workbench.

 

It would appear that a Temporal Query plug-in for the Workbench could make a substantial contribution to i2b2.  Has anyone explored this possibility?  Would anyone be interested to collaborate on this problem?

 

David Norris

 

 

 


 

 

ICD9 Ontology Missing Terms Export of NIH/CDC ICD9 Hierarchy  [09-21-2010]

 

On 9/21/10 7:10 AM, Shawn Murphy wrote:

 

Thanks Philip, that would be great, there are no legal entanglements :).

Shawn.

 

 

On 9/20/10 5:40 PM, Phillip Reeder wrote:

 

Is there any legal reason why i2b2 is not distributing the full hierarchy?  I have created the hierarchy from the UMLS and would be willing to share it with any and all.  Perhaps it could be added to the demodata?

 

Phillip Reeder

 

 

On 9/20/10 9:41 AM, Mike Mendis wrote:

Peter,

 

That is correct, the i2b2 demodata ICD9 Diagnoses is not a complete ICD9.

 

Here is a link to the a access database that contain a list of the ICD9 codes http://www.cms.hhs.gov/MinimumDataSets20/07_RAVENSoftware.asp <http://www.cms.hhs.gov/MinimumDataSets20/07_RAVENSoftware.asp> from the United States Department of Health and Human Services.

 

I have not used or tried it, but you should be able to create a compatible i2b2 metadata from it.

 

 

On 9/17/10 2:31 PM, Peter Beninato wrote:

 

Hi,

Is there a current ICD9 “Diagnoses” ontology available?

It seem there are gaps in demo  “Diagnoses.”

I have loaded observation_fact and have approximately 820 codes that don’t map to concept_dimension/i2b2 table(s)  (see after signature for listing).

There could be more as this was run against only a three-month dataset.

Does anyone have a CSV, tab-delimited, oracle dmp file of the NIH/CDC ICD9 hierarchy? Or even better an “i2b2” compliant version?

Thanks.

Peter Beninato

 

 

 


 

 

Best Practices for EPIC Clarity – i2b2 ETL Scripts  [09-19-2010]

 

On 9/19/10 12:03 PM, Keith Marsolo wrote:

 

All,

 

We've posted some documentation that describes our work with the Epic Clarity database.  It can be found at the following location:

https://bmi.cchmc.org/svn/i2b2/i2b2/public/data/Documents/

 

The first document: "Moving Data from Epic to I2B2.docx" describes, well, our approach to moving data from Epic to i2b2.  It's not complete, but it provides an overview of how we load demographics, diagnoses, and medications.  There's some information on how we create metadata XML for each content type.  This is similar to the upcoming "modifier" functionality in version 1.6.  Until we release our code, it's more or less CCHMC-specific, but the content would be applicable to either approach.

 

The other document "epic_dw_master_tables.pdf" details some of the steps used to create our "Master" Epic datamart that we provide to users for reporting and other purposes.  Not all of the tables are included, but we've provided a few of the more frequently used ones.  The scripts provide an overview of what columns/tables to use to look for certain content.

 

Words of "wisdom":

1. The tables/columns in Epic may have misleading names.  Always check the Epic UserWeb/Clarity data dictionaries to determine the true purpose of the field.

2. Never assume that the Epic documentation is accurate and/or complete.  Each institutions Epic implementation is different, and data may be in unique locations, particularly if that data is fed by an interface.  To verify the data you are working with is correct (i.e. what you think it means), I would encourage you to work with your Clarity Reporting Team or end users to ensure that the data in the database matches what appears on the screen.

 

Thanks.

 

Keith

 

 

On 9/19/10 1:03 PM, Keith Marsolo wrote:

 

Russ,

 

We have scripts that we can share.  We will send by the end of the week.

 

Keith

 

 

On 9/15/10 12:56 PM, Russ Waitman wrote:

 

Hi,

Thank you all again for the vast help on adopting i2b2.  We've completed our business agreements with the affiliated hospital and clinic and data sharing and are looking to establish the ETL processes.

Most of our clinics use IDX for billing and registration.  Arvinder developed an ETL process for an existing subset of that data that we receive (demographics, diagnoses, procedures).  He also worked with several members to load CPT from the UMLS.  That's been the beta environment we've been working with to bring up the system and work on security integration.  We'll now start building out more clinic encounter information.  

We can now start on EPIC.  It is almost deployed in our inpatient and ED environments and they are starting to rollout throughout the clinics.  Specifically we're going to follow many of you that seem to start by building off a backup extract of their Clarity database.  We've received a copy of the "Build/Test" environment for development and are in the process of moving over the production data.

Are people sharing best practices or scripts for how you're getting from things like the PATIENT, PAT_ENC... tables in Clarity into the i2b2 schema for patient, visit, and observer dimension?  We'd like to not reinvent the wheel or at least avoid common mistakes.

Sincerely,

 

Russ Waitman

 

 

 


 

 

Web Client Issue  [09-17-2010]

 

On 9/17/10 8:39 AM, Mike Mendis wrote:

 

What is the list you have in the http://localhost:9090/i2b2/services/listServices?  Also this is a new install?  If so than you completed the crc install doc?

 

-mike

 

 

On 9/17/10 8:15 AM, Jeremy Nix wrote:

 

Are you trying to pull up the webclient or test out the CRC Cell webservice?  The url for the webclient is http://localhost:80/index.php.

 

Jeremy Nix

 

 

On 09/16/2010 04:45 PM, Maggie Qiu wrote:

 

Hi, All:

 

We had 1.5.1 installed and it works fine with fat client workbench.  We can see all services are up at http://localhost:9090/i2b2/services/listServices. When we try to launch web client http://localhost:9090/i2b2/rest/QueryToolService, we got page unavailable error.  Can someone help?  Thanks a lot.

Maggie Qiu

 

 

 


 

 

i2b2 Hive Account Locked  [09-15-2010]

 

On 9/15/10 5:18 PM, Dan Connolly wrote:

 

Whew... finally figured it out... it wasn't that my new instance was broken, but I didn't kill my old instance, and the old instance was trying to use old passwords.

 

Thanks for the various bits of help, everybody.

 

Dan

 

 

On 9/14/10 12:52 PM, Dan Connolly wrote:

 

Really? Regardless of name? Interesting. But no, I don't see any extra files:

 

jboss-4.2.2.GA/server/default/deploy> grep i2b2hive *

crc-jms-ds.xml:  <user-name>i2b2hive</user-name>

ont-ds.xml:  <user-name>i2b2hive</user-name>

work-ds.xml:  <user-name>i2b2hive</user-name>

 

 

And the other one? How often is that i2b2hive.CRC_ANALYSIS_JOB query

supposed to run? It seems to run once per minute here.

 

 

On 9/14/10 12:22 PM, Mike Mendis wrote:

 

Do you have any backup files in the deploy directory.  Jboss will deploy and use any file in the deploy regardless of what it is name.    So if you have a file called crc-ds.xml and one called crc-ds.xml-orig, it will try to deploy both, and the orig might have a old user/pass which after deploying a couple of times will cause a lockout on the oracle side.

 

The message about the timing already exists is fine.

 

 

On 9/14/10 12:03 PM, Dan Connolly wrote:

 

Looks like that wasn't the heart of the problem. The symptoms persist.

 

I feel like I'm losing my mind trying to figure this out; it all worked until about a week ago, and I'm not sure what I did to break it...

 

 

On 9/13/10 1:27 PM, Dan Connolly wrote:

 

Looks like our client and servers didn't agree on the i2b2 hive password, and once that i2b2hive.CRC_ANALYSIS_JOB ran enough times, blammo, the account got locked.

I was misled by a goofy timezone configuration on our database server.

 

 

On 9/13/10 12:08 PM, Dan Connolly wrote:

 

Our i2b2 hive keeps getting stuck because the i2b2hive oracle account keeps getting locked out.

I can fix the problem, for a while, by doing:

 

alter user i2b2hive account unlock;

But the problem seems to come up at some random time later.

In the most recent case, Oracle gives a LOCK_DATE of 10-SEP-2010 01:49:09

Looking in the logs, I see that i2b2hive does this once an hour (though it generates 2 DEBUG messages):

 

2010-09-10 01:49:58,545 DEBUG [org.springframework.jdbc.core.JdbcTemplate] Executing SQL query [ select * from i2b2hive.CRC_ANALYSIS_JOB where queue_name = ? and status_type_id = ? order by create_date]

 

I can't see why that would cause the account to get locked.

 

I see this error from time to time, but I don't understand how it would cause the i2b2hive account to get locked either:

 

2010-09-09 08:43:52,758 DEBUG [org.jboss.mq.pm.jdbc2.PersistenceManager] Could not create table with SQL: CREATE TABLE JMS_MESSAGES ( MESSAGEID INTEGER NOT NULL

, DESTINATION VARCHAR(255) NOT NULL, TXID INTEGER, TXOP CHAR(1), MESSAGEBLOB BLOB, PRIMARY KEY (MESSAGEID, DESTINATION) )

java.sql.SQLException: ORA-00955: name is already used by an existing object

 

Help? Any ideas? We have a demo early tomorrow morning, so it would be really great to get to the bottom of this today.

 

Dan Connolly

 

 

 


 

 

i2b2 Source, Ant and Eclipse  [09-15-2010]

 

On 9/15/10 11:11 AM, Jeremy Nix wrote:

 

I've picked up the knowledge by experimentation and previous knowledge of the technologies used.  I believe there is a master script that can be run which walks through each of the projects and executes the dist target, which has the effect of executing the jaxb_gen and generate-ejb targets.  I can't remember where that ant build file (and target) is currently.

As for the use of ant.  It is heavily used in the i2b2 project.  I believe some have even converted the ant scripts into maven POM files, though we have not done the same quite yet.  Using JAXB you can define a schema (in this case, the schemas represent the xml transmitted to/from the REST based webservices), and have that schema transformed into Java source code (via XJC) so that the underlying XML can be manipulated against within Java quite easily.  Castor is another such project that provides similar code generation and XML marshalling/unmarshalling capabilities.

Once you get your Eclipse environment setup, you will not interact with these ant files except for when you are trying to build a deployment, or when you are changing either an EJB definition or a schema that is generated into java code via JAXB.  So, pretty much, its just an initial hurdle that you have to jump over.

 

Jeremy Nix

 

On 09/15/2010 10:08 AM, Dan Connolly wrote:

OK, thanks for the details.

2 questions:

1. How did you pick up that bit of knowledge? Is it just a normal J2EE thing, or is it specific to i2b2? (I'm learning this whole J2EE world as I go, and I haven't read up on JAXB yet).

2. Do i2b2 developers normally use ant directly like this? Or is this a way of making up for some step that I missed?

 

 

On 9/15/10 7:00 AM, Jeremy Nix wrote:

 

Dan, it looks like you need to create the JAXB generated objects that are used as apart of the i2b2 Axis2 web services (see schemas from edu.harvard.i2b2.xml project).  From Eclipse, right click on the build.xml in the CRC cell project (edu.harvard.i2b2.crc) and choose "Ant Build...".  Choose the targets "clean, jaxb_gen, generate-ejb" in that order, and click the Run button.  Watch the console and make sure that no errors occurred during the JAXB code generation process.  If all goes well, right click on that CRC cell project and click Refresh.  You should notice that a gensrc folder appears and now has all of the source code that you were missing.  You may have to repeat this for other projects if similar issues occur.  Some projects do not have EJB's so there will not be a generate-ejb target in their build.xml.  Always make sure to refresh the project after you run this as Eclipse does not pick up the fact that new files were generated within the project.

 

Jeremy Nix

 

 

On 09/14/2010 05:51 PM, Dan Connolly wrote:

Well, that document helped, but it only seems to address building the Workbench, in detail. I'm trying to use eclipse to navigate the hive sources.

When I follow these instructions and then try to import the i2b2-core-source.zip into the same workspace, I get a bunch of errors again:

Description Resource Path Location Type

PasswordType cannot be resolved to a type CRCAxisAbstract.java /edu.harvard.i2b2.fr/src/test/edu/harvard/i2b2/fr/ws line 57 Java Problem

PasswordType cannot be resolved to a type CRCAxisAbstract.java /edu.harvard.i2b2.fr/src/test/edu/harvard/i2b2/fr/ws line 57 Java Problem

Project 'edu.harvard.i2b2.crc.loader' is missing required source folder: 'gensrc' edu.harvard.i2b2.crc.loader Build path Build Path Problem

Project 'edu.harvard.i2b2.crc' is missing required source folder: 'gensrc' edu.harvard.i2b2.crc Build path Build Path Problem

Project 'edu.harvard.i2b2.ontology' is missing required source folder: 'gensrc' edu.harvard.i2b2.ontology Build path Build Path Problem

Project 'edu.harvard.i2b2.pm' is missing required source folder: 'gensrc' edu.harvard.i2b2.pm Build path Build Path Problem

Project 'edu.harvard.i2b2.workplace' is missing required source folder: 'gensrc' edu.harvard.i2b2.workplace Build path Build Path Problem

The import edu.harvard.i2b2.fr.datavo.i2b2message.PasswordType cannot be resolved CRCAxisAbstract.java /edu.harvard.i2b2.fr/src/test/edu/harvard/i2b2/fr/ws line 30 Java Problem

The method getAlgorithm() is undefined for the type File SendfileRequestHandler.java /edu.harvard.i2b2.fr/src/server/edu/harvard/i2b2/fr/delegate line 101 Java Problem

The method getOverwrite() is undefined for the type File SendfileRequestHandler.java /edu.harvard.i2b2.fr/src/server/edu/harvard/i2b2/fr/delegate line 90 Java Problem

The project cannot be built until build path errors are resolved edu.harvard.i2b2.crc Unknown Java Problem

The project cannot be built until build path errors are resolved edu.harvard.i2b2.crc.loader Unknown Java Problem

The project cannot be built until build path errors are resolved edu.harvard.i2b2.ontology Unknown Java Problem

The project cannot be built until build path errors are resolved edu.harvard.i2b2.pm Unknown Java Problem

The project cannot be built until build path errors are resolved edu.harvard.i2b2.workplace Unknown Java Problem

More clues, please?

 

On 9/14/10 4:12 PM, Dan Connolly wrote:

 

Yes, this seems to cover the information I need.

 

For reference...

https://www.i2b2.org/software/projects/workbench/i2b2Workbench_Developers_Guide_14.pdf

https://www.i2b2.org/software/repository.html?p=14

 

On 9/14/10 3:58 PM, Lori Phillips wrote:

 

Dan,

I don’t know if you are using the i2b2Workbench_Developer’s_Guide_1-5; it should answer your questions.

Lori

 

 

On 9/14/10 3:52 PM, Dan Connolly wrote:

 

The use of ant to build i2b2 from source is documented clearly enough, but there are also .project files in the source that suggest using eclipse.

Can someone who uses eclipse explain how they do it?

 

What I tried is:

1. start eclipse; pick a workspace

2. File/Import/General/Existing Projects Into Workspace

3. pick the i2b2 src directory containing edu.harvar.i2b2.common etc., and import

 

I end up with a bunch of errors:

 

 

Description  Resource  Path  Location  Type  

Project 'edu.harvard.i2b2.crc' is missing  required source folder: 'gensrc'  edu.harvard.i2b2.crc  Build path  Build Path Problem  

Project 'edu.harvard.i2b2.fr' is missing  required library:  '/edu.harvard.i2b2.eclipse.plugins.webservicesAxis2/annogen-0.1.0.jar'  edu.harvard.i2b2.fr  Build path  Build Path Problem  

Project 'edu.harvard.i2b2.ontology' is  missing required source folder: 'gensrc'  edu.harvard.i2b2.ontology  Build path  Build Path Problem  

Project 'edu.harvard.i2b2.pm' is missing  required source folder: 'gensrc'  edu.harvard.i2b2.pm  Build path  Build Path Problem  

Project 'edu.harvard.i2b2.workplace' is  missing required source folder: 'gensrc'  edu.harvard.i2b2.workplace  Build path  Build Path Problem  

src/core/, gensrc/ is not included in any  "source.*" build entry  build.properties  /edu.harvard.i2b2.common  line 1  Plug-in Problem  

The project cannot be built until build path  errors are resolved  edu.harvard.i2b2.crc  Unknown  Java Problem  

The project cannot be built until build path  errors are resolved  edu.harvard.i2b2.fr  Unknown  Java Problem  

 

etc.

 

 

I'm pretty new to eclipse and I'm stumped by these errors.

 

I found an Ant tab, and using that I can build the the dist target of the common project just fine.

 

Is that how people use eclipse with the i2b2 source code, by just ignoring the errors above and using ant rather than eclipse's built-in build stuff?

 

Can eclipse still navigate the code (find all usages, navigate to source) even with the problems above? It seems to work OK, I guess.

 

Dan

 

 

 


 

 

What F12 Is Supposed to Do When Ajax Error  [09-14-2010]

 

On 9/14/10 10:26 AM, Mike Mendis wrote:

 

Subject: Re: What is F12 supposed to do after AJAX library errors?

Date: Tuesday, September 14, 2010 10:26 AM

From: Mike Mendis <MMENDIS@PARTNERS.ORG>

To: Dan Connolly <dconnolly@kumc.edu>, <members@i2b2aug.org>

Conversation: What is F12 supposed to do after AJAX library errors?

 

Dan,

 

Usually this occurs when the webclient is unable to connect to a i2b2 cell.   The Lite version of firebug was included which the F12 button was suppose to activate and allow the user more detailed info on the issue.    I will look into this and get it working.

 

Thanks

mike

 

 

On 9/10/10 2:08 PM, Dan Connolly wrote:

 

We see this message in the web client occasionally:

 

"An error has occurred in the Cell's AJAX library.

Press F12 for more information"

 

Nothing happens when we press F12.

 

What is supposed to happen?

 

So far, we've been able to diagnose the problems using jboss logs, firebug, etc., but we're starting to beta test with users outside out development team, and that sort of thing won't be an option.

 

Oh... searching the source suggests F12 is supposed to bring up firebug lite:

 

webclient/js-ext/firebug/firebug-lite.js:    var iconTitle = "Click here or press F12, (CTRL|CMD)+SHIFT+L or SHIFT+ENTER to show Firebug Lite. CTRL|CMD click this icon to hide it.";

 

Does that work for anyone else?

 

 

 


 

 

Default Credentials  [09-14-2010]

 

On 9/14/10 10:13 AM, Mike Mendis wrote:

 

By default all passwords are demouser

 

The ‘demo’ user has full data access so it can run all queries and get back all results

The ‘i2b2’ user has full admin access so it can create and delete users

 

If you login to the admin tool (http://{url}/admin and use the ‘i2b2’ user, you can create new users and change the password for the i2b2 user.

 

-mike

 

 

On 9/13/10 7:57 PM, Dustin Key wrote:

 

Hello,

Does anyone know whether there a configuration that controls the default login credentials for the I2B2 web client and whether that can be disabled?    Our install preloads the username and password.

Thanks!

Dustin Key

 

 

 


 

 

Hive Cell/Oracle Password Security Approach  [DATE]

 

On 9/13/10 12:39 PM, Dan Connolly wrote:

 

Thanks for the detailed reply.

 

I looked into that login-module:

org.jboss.resource.security.SecureIdentityLoginModule

 

and I discovered

 

       "... It uses a hard-coded password to encrypt/decrypt the

       datasource password."

   -- http://community.jboss.org/wiki/EncryptingDataSourcePasswords

 

So I'm not sure that particular technique helps very much in our case.

 

But this does give me a bit of a feel for how login-config.xml and such work, and perhaps I'll use one of the other techniques on that wiki page.

 

 

Dan

 

 

On 9/10/10 6:21 PM, Raj Kuttan wrote:

 

Attached (encryptingPasswords.pdf) are the steps to encrypt the datasource password.

 

Raj

 

 

On 9/10/10 2:16 PM, Dan Connolly wrote:

 

When we follow the i2b2 hive installation instructions, we end up with these datasource files that have passwords in them:

 

/usr/local/jboss-4.2.2.GA/server/default/deploy/crc-ds.xml

/usr/local/jboss-4.2.2.GA/server/default/deploy/crc-jms-ds.xml

/usr/local/jboss-4.2.2.GA/server/default/deploy/ont-ds.xml

/usr/local/jboss-4.2.2.GA/server/default/deploy/pm-ds.xml

/usr/local/jboss-4.2.2.GA/server/default/deploy/work-ds.xml

 

Does anyone have advice on how to secure those passwords?

 

The approach I'm using now is to create a dedicated 'jboss' user account, have jboss run as that user, and have those *-ds.xml files readable only by the jboss user.

 

I've been trying to get my head around the whole world of JBoss and J2EE...

I gather these *-ds.xml files come from the Java Connection Architecture (JCA).

Now I see something about JAAS and login-config.xml in JBoss documentation about JDBC connections <http://docs.jboss.org/jbossas/docs/Server_Configuration_Guide/4/html/Connectors_on_JBoss-Configuring_JDBC_DataSources.html> . Does anybody have experience using that stuff?

 

 

 


 

 

SQL Server and #TEMP_PDO_INPUTLIST error  [09-10-2010]

 

On 9/10/10 12:11 PM, Brian Eliason wrote:

 

Hi Raj,

Attached are the xml request/response files when selecting multiple concepts and rendering table within the table viewer plugin.  Again, we’re using SQL Server 2008 R2.

This might be helpful: If we only select one concept, the problem doesn’t occur.

Thanks,

 

Brian Eliason

 

 

On 9/9/10 2:41 PM, Raj Kuttan wrote:

 

Hi Brian,

Can you post the PDO request xml body, just to verify the xml not missing something.

Thanks

Raj

 

 

 

On 9/9/10 4:25 PM, Prakash Lakshminarayanan wrote:

 

Brian

Could you try creating a global temp table outside of the source and modify the source-code to just insert or delete records on that temp table?  Inherently data inserted onto a temp table is available only for the session inserting them hence multiple sessions could easily operate on the same temp table as long as the data is cleaned up properly by the session.  This approach worked for us on Sybase IQ for a different scenario in i2b2.

-Prakash

 

On 9/9/10 12:38 PM, Brian Eliason wrote:

 

Hi,

We are preparing to migrate from Oracle to SQL Server EE 2008 R2 on i2b2 1.5.1.  We've noticed/documented (confirmed by other groups) strange behavior in the table viewer plugin of the 1.5.1 fat client release when running on SQL Server (this behavior doesn't occur on Oracle).  Basically, when selecting multiple concepts within the table viewer, the patient demographic information returns NO rows.  The visit information as well as the observation information for both concepts come back fine. Again, we've confirmed this behavior with other groups running 1.5.1 on SQL Server.  In reviewing the logs, we consistently find the following errors in different points of the workflow:

com.microsoft.sqlserver.jdbc.SQLServerException: There is already an object named '#TEMP_PDO_INPUTLIST' in the database.

com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name '#TEMP_PDO_INPUTLIST'

To me, this suggests that for some reason SQL Server is attempting to create a temp table which already exists, and that in the process of attempting to create this temp table (#TEMP_PDO_INPUTLIST), it is somehow being truncated or deleted, resulting in a blank patient demographic result set within the table viewer.

Has anyone else encountered this error?  Is there a simple work around in the source?

Thanks,

Brian Eliason

 

 

 


 

 

Where is “Export Data” in workbench 1.5 (Windows)  [09-01-2010]

 

On 9/1/10 1:37 PM, Brian Eliason wrote:

 

That's if you installed it; doesn't sound like that's happened yet.  So, first, perhaps you should go to HELP->UPDATE and grab the plug in of interest.

 

Brian Eliason

 

 

On 9/1/10 1:29 PM, Marius Petruc wrote:

 

if you installed the Export Data plug in (i2b2exportdata-15.zip), you should see the option under Window->Show view->Other, between the Cluster Category and Help.

 

Marius Petruc

 

 

On 9/1/10 1:23 PM, Qiu Haijun wrote:

 

Hi,

I installed latest i2b2 workbench 1.5 for windows. I can not find the "Export Data" tab. It's not available in "Windows-Show View" options.

 

How can enable "Export Data" in workbench 1.5?

 

Thanks,

 

Haijun Qiu

 

 

 


 

 

Can’t get the VMServer to work  [08-31-2010]

 

On 8/31/10 1:37 PM, Mike Mendis wrote:

 

Try adding the name of your computer to your windows hostfile

 

c:\windows\system32\drivers\etc]hosts

 

 

Add to the one listed as localhost, so my computername is mikepc, the line would look like:

127.0.0.1       localhost   mikepc

 

 

On 8/31/10 1:25 PM, Terry Shen wrote:

 

It’s so strange!  I keep getting this error (see attached screenshots) when I restart my computer.   But, if I uninstall VMServer and re-install it, the first time it will work (but only on Internet Explorer, not Firefox).  But, if after I’ve got it to work the first time, and I restart my computer, then it will no longer work.  

Also, if you have any intro slides for i2b2, and how it compares to caBIG or EPIC, can you please send it my way?

Thank you,

~Terry

 

 

 


 

 

Encrypting Sensitive Data  [08-30-2010]

 

On 8/30/10 1:34 PM, Russ Waitman wrote:

 

Sebastian, Keith and Shawn,

Thank you all for your timely help.  We are working with our partner organizations that contribute data to understand security options in i2b2 and source systems.  

I think they may have read i2b2 uses encryption at rest somewhere but it wasn't obvious which columns that is regarding or how one configures such a setting.  

We are also trying to make them understand that if the source file you send is unencrypted (say an EPIC Clarity backup), then when we re-hydrate it into Oracle to start our ETL process, it's also unencrypted.  (Unless we go ahead and encrypt the entire OS file system).  Since it's sitting on a secured server in the locked data center, physical theft is not a high probability.  Arvinder was referring to the fact that column level explicit encryption of a source EPIC Clarity build (using something like Oracle Transparent Data Encryption, TDE) is a non trivial task since out of the box it contains thousands to tables; each of which with many columns.

We're trying to get to consensus that for "in motion" data, we can use secure communication methods.  

We then have two servers storing data "at rest": one for staging and linking identified data and the second to store the de-identified data that will be accessed by i2b2.

For these physically large servers screwed into a rack in the secured data center, the possibility of theft is close to zero.  That's why it may be acceptable for the data sitting on the identified staging server and the de-identified server to be unencrypted.  If someone penetrated security enough to get root or superuser access to where they can see the oracle data files, your pretty much compromised anyway.  

If we were to apply various encryption methods, it would seem that encrypting the entire filesystem would be the easiest most all encompassing option and wonder if anyone has experience with what kind of performance hit you suffer.  We naively guesstimate 10%.

We don't see how we could encrypt at rest data inbound from EPIC Clarity without code to transform every column in every table in Clarity using something like TDE or AES.  

We also don't see how we could encrypt every column in the star schema underneath i2b2 unless we also modified i2b2 code.

Thanks again to the community for any shared advice regarding best practices,

 

Russ Waitman

 

 

On 8/30/10 12:29 PM, Arvinder Choudhary wrote:

 

Team:

You are right Keith.  My Bad. I forgot to mention that it is with regards to Source tables.  

Arvinder

 

 

On 8/30/10 12:25 PM, Keith Marsolo wrote:

 

Arvinder,

 

Are you talking about encrypting the i2b2 tables, or the tables of your source data (I'm assuming that's the reference to the 1000s of tables).

 

 

On 8/30/10 12:18 PM, Shawn Murphy wrote:

 

Hi Arvinder.

Built into i2b2 is an option to encrypt the "blob" column of the fact table using encryption at rest.  The formulation of the algorithm is AES, and the decryption is managed with a key distributed to the client.  We use it commonly for text notes of various kinds.

Thanks,

Shawn.

 

 

On 8/30/10 12:16 PM, Sebastian Mate wrote:

 

Hello Arvinder,

 

I'm not sure what you mean with "1000 tables".

 

But it might be that we have the same problem over here. We need to implement access-restrictions on a record level, that means for every entry in OBSERSVATION_FACT.

 

Some time ago we have succeeded in a proof-of-concept. This requires one simple modification somewhere in the CRC's source code to work. Again, this is proof-of-concept and I can't say anything about the performance with millions of observation facts. The attached PPT shows the idea.

 

If anyone is interested in the modified code, please drop me mail ...

 

-- Sebastian

 

 

On 8/30/10 11:21 AM, Arvinder Choudhary wrote:

 

Team:

 

We are in the process of receiving sensitive hospital data and we want to make it secured. What is the best to go.

     

1. (At a Database level) My opinion is;  Securing data at a column level will be enormous effort and little unrealistic as we are looking at 1000 of tables.  Does anyone has better idea

 

2. Has anyone done encryption at file level or device level and what has been you experience.

 

Regards

Arvinder Choudhary

 

 


 

 

Vmware Server Console Question  [08-27-2010]

 

On 8/27/10 12:17 PM, Mike Mendis wrote:

 

I would select WMware Server Home Page.  

 

 

On 8/27/10 11:07 AM, Terry Shen wrote:

 

I was wondering if someone could help me with this question.  I’m trying to download the VM Server from the i2b2 website.  I followed the directions, but under Program -> VMware -> VMServer, I only have two options, Manage Virtual Networks and WMware Server Home Page.  I can’t find the VMware Server Console application?

 

Terry Hsin-Yi Shen

 

 

 


 

 

Using CAS with i2b2 Web Client and PM Cell  [08-27-2010]

 

Note: This discussion is a continuation of the original discussion titled: Using CAS with i2b2 web client and PM cell. The date of the discussion was 07-23-2010

 

 

On 8/27/10 10:54 AM, Dan Connolly wrote:

 

OK, I got it pretty much working, for my purposes... it's not as flexible as it should be:

 

- CAS support in the PM cell should be a configuration option or something, but what I've done just assumes you want to use CAS and leaves no other options.

 

- The client assumes there will be a ticket in the URL, as a result of a link from our portal, via the CAS server.

 

And after the user logs in on cas.kumc.edu, they are redirected to the i2b2 webclient a la:

 

- the CAS server address is hardcoded (as is the i2b2 domain). This should obviously be a configuration option.

 

And it's not polished; I haven't done anything about logout yet, for example.

 

The code I wrote is attached in the form of patches.

 

,pm-diffs.PATCH

,webclient-cas.PATCH

 

I also put the version history, starting with the i2b2 1.4 code, on bitbucket. The Bitbucket provides .zip downloads.

 

Before I forget... I found the webclient source confusing in a few places...

 

1. This diagnostic...

       console.info("AJAX Login Successful! Updated: i2b2.PM.model");

... fires even when login is actually *unsuccessful*, i.e. when the username/password is incorrect.

 

2. In ./webclient/js-i2b2/hive/master_view_ctrlr.js:

alert('

Analysis tools are disabled - This access attempt has been logged to the

server

.');

 

As far as I can tell, that attempt has *not* been logged to the server.

 

-- Dan Connolly

 

 

 


 

 

Trouble Building CRC Cell:

“package edu.harvard.i2b2.common.exception does not exist”  [08-26-2010]

 

On 8/26/10 3:37 PM, Raj Kuttan wrote:

 

Looks like the common project is not built first.

 

Try this sequence

cd edu.harvard.i2b2.common

ant dist

cd ../edu.harvard.i2b2.crc.loader

ant dist

cd ../edu.harvard.i2b2.crc

ant dist deploy

 

 

On 8/26/10 2:45 PM, Dan Connolly wrote:

 

I think I figured out how to customize the PM cell to integrate with CAS for single sign-on, but I'm struggling to deploy the other cells to test it.

 

In particular, I can't for the life of me get the crc.loader part of the CRC cell to build.

 

I'm getting piles of errors like this:

 

   [javac] /usr/local/i2b2-backend/i2b2/src/edu.harvard.i2b2.crc.loader/src/server/edu/harvard/i2b2/crc/loader/dao/ProviderDAO.java:16: package edu.harvard.i2b2.common.exception does not exist

   [javac] import edu.harvard.i2b2.common.exception.I2B2Exception;

   [javac]                                         ^

   [javac] /usr/local/i2b2-backend/i2b2/src/edu.harvard.i2b2.crc.loader/src/server/edu/harvard/i2b2/crc/loader/dao/VisitDAO.java:18: package edu.harvard.i2b2.common.exception does not exist

   [javac] import edu.harvard.i2b2.common.exception.I2B2Exception;

   [javac]                                         ^

   [javac] /usr/local/i2b2-backend/i2b2/src/edu.harvard.i2b2.crc.loader/src/server/edu/harvard/i2b2/crc/loader/dao/PatientDAO.java:58: cannot find symbol

   [javac] symbol  : class I2B2Exception

   [javac] location: class edu.harvard.i2b2.crc.loader.dao.PatientDAO

   [javac] String tempPatientMappingTableName) throws I2B2Exception {

 

 

It seems that the ant build stuff for crc.loader somehow isn't connecting with the i2b2.common stuff, but I'm pretty new to ant and finding out where the problem is looks like finding a needle in a haystack.

 

Has anybody else seen this error?

 

A complete log of 'ant -f build.xml clean dist' is attached, in case it helps anybody diagnose this problem.

 

 

-- Dan Connolly

 

 

 


 

 

Mixed Type Labs  [08-18-2010]

 

On 8/18/10 5:12 PM, Shawn Murphy wrote:

 

No, we don't have that kind of data object available.  However, is it really a set of enums masquerading as a number?  If there are only a few number-like results available, is usually that the machine they are reading off of is only supporting 4 or 5 measurements, but they make them more "interpretable" by giving the specific ranges that roughly match their calibrations.  In that case, we just set the values up as a set of enumerations.  If it really is a number, perhaps it would be possible to change "Negative" to zero.

 

Thanks,

Shawn.

 

 

On 8/18/10 1:00 PM, Keith Marsolo wrote:

 

When populating the c_metadataxml field in the ontology to enable the "Set by Value" functionality, it appears that a lab either needs to be classified as "text" or "numeric," but not both.  Is that a correct assumption?  

 

For instance, we have a test (Urine Glucose), where the normal results are text ("Negative"), but the abnormal results are numeric (>=150, >=1000, etc.).  We'd like to be able to encapsulate both types in the metadata XML, so that we can filter on either the text or the values.  Is there a way to support this, or plans to enable it?  We're happy to make the change on our end, but we didn't want to duplicate anyone else's effort.

 

Thanks.

 

Keith

 

 

 


 

 

NLP Cell Distribution  [08-18-2010]

 

On 8/28/10 2:00 PM, Shawn Murphy wrote:

 

Hi Marius,

 

Qing Zeng and Sergey Goryachev are the creators of that code base.

 

Thanks,

Shawn.

 

 

On 8/17/10 11:04 AM, Marius Petruc wrote:

 

Hi all,

i am trying to install the NLP cell. The package i downloaded form the i2b2 site includes two archives (NLP-client-src-10.zip  and NLP-server-src-10.zip), and not the four folders described in the NLP-installation-10.pdf (included in the package). my impression at this point is that the server-src needs to be built on the middle tier (on jboss, like all the other cells), and that the client-src needs to be configured inside the workbench. is this correct? does anybody know what's the ant command to build the server? and how do you configure the client?

 

thanks a lot

 

marius

 

 

 


 

 

i2b2 1.5.1 PM Cell Installation Error  [08-13-2010]

 

On 08/13/2010 10:40 AM, Qiu, Haijun wrote:

 

Thanks a lot for all the responses. I initially installed the latest jdk 1.6 update 21. After I switched to jdk 1.5 update 22, PM cell is working.

 

Haijun Qiu

 

 

On 8/12/10 3:41 PM, Jeremy Nix wrote:

 

Haijun,

 

You will get that error from the PM admin screens if *any* error is passed back from the PM Cell.  I'd start looking at the jboss logs to see if anything useful is being logged.  The log file is located here: /opt/jboss/server/default/log/server.log.  You'd want to scan the file looking for the word ERROR.  You may want to add the following lines in your /opt/jboss/server/default/conf/jboss-log4j.xml file in order to make the logging more verbose.  Be sure to switch the log level back to WARN or ERROR once you have figured out what the problem is.

 

<!-- ======================= -->

<!-- i2b12 specific logging  -->

<!-- ======================= -->

<category name="edu.harvard.pm" additivity="false">

<priority value="DEBUG" />

<appender-ref ref="FILE"/>

</category>

<category name="edu.harvard" additivity="false">

<priority value="WARN" />

<appender-ref ref="FILE"/>

</category>

 

Good luck.

 

Jeremy Nix

 

 

On 08/12/2010 03:23 PM, Qiu, Haijun wrote:

 

Yes, it is listed as active.  I tried tcpdump to track the tcp packets.  when I connect from the i2b2workbench, there is some traffic to port 9090, although I got "The PM Cell is either down or the PM address in the properties file is in correct"". When I connect from the PM cell admin login page, there is no traffic to port 9090. Any clue?

 

http://ourhost:9090/i2b2/services/listServices:

 

Available services

PMService

Service EPR : http://ourhost:9090/i2b2/services/PMService

Service Description : PMService

Service Status : Active

Available Operations

 

    * getVersion

    * getServices

 

 

Thanks,

 

-Haijun

 

 

On 8/12/10 2:23 PM, Dan Connolly wrote:

 

Were you able to verify that the PM web service is running, as discussed on page 6 of the PM install guide?

 

----

7. Verify webservice is running

a) Check url ‘http://yourHost:9090/i2b2/services/listServices’ in a browser.

Verify that PMService is listed as active.

----

 

I happen to be doing some development around authentication, and I discovered that the "Your account does not have access to any i2b2 projects." message is given in several cases:

  * username you gave isn't in the oracle database

  * password is wrong

  * no access to any i2b2 projects (i.e. what the message says).

 

The webclient might be giving that message in the case that the php proxy cannot reach the PM service at all, but I'm not sure.

 

Be sure to check the error logs for the web server that hosts the web client.

 

 

On 8/12/10 1:29 PM, Haijun Qui wrote:

 

Hi Marius,

 

Thanks,

Apache 2.2.3, PHP5.1.6, php is indeed working and jboss was started with -b 0.0.0.0

What's other possible reason?

 

Thanks,

 

-Haijun

 

 

On 8/12/10 1:19 PM, Mairus Petruc wrote:

 

1) what web server do you use? please verify that php is working

 

2) if php is working, please verify that you're starting jboss with the appropriate arguments: jboss -b 0.0.0.0

 

 

hope this helps

 

Marius

 

 

On 8/12/10 12:38 PM, Haijun Qui wrote:

 

Hi,

 

I am installing i2b2 version 1.5.1. After loading data in to oracle, I installed PM Cell. But

PM Cell did not work as expected.

 

After lauching the PM webclient at http://ourhost/admin and use i2b2/demouser to login, I got error:

 

"Your account does not have access to any i2b2 projects."

 

 

From i2b2workbench, I got error: "The PM Cell is either down or the PM address in the properties file is in correct".

 

i2b2workbench.properties:

writeTimelineFile=yes

applicationName=i2b2

messageversion=1.1

demoUser=no

I2b2.1=HarvardDemo,REST,http://services.i2b2.org/i2b2/rest/PMService/

I2b2.2=i2b2demo,REST,http://ourhost:9090/i2b2/rest/PMService/

 

 

http://ourhost:9090/i2b2/services/listServices:

 

Available services

PMService

Service EPR : http://ourhost:9090/i2b2/services/PMService

Service Description : PMService

Service Status : Active

Available Operations

 

   * getVersion

   * getServices

 

 

I must be missing something, please advise.

 

Thanks in advance,

 

Haijun Qiu

 

 

 


 

 

Data Installation – New Install (v1.5.1) Build Failed  [08-10-2010]

 

On 8/10/10 4:04 PM, Marius Petruc wrote:

 

ok, the problem was caused by trailing spaces in the db.properties file. cleaned it, it worked fine.

 

thanks a lot everybody!

 

 

On 8/10/10 3:51 PM, Mike Mendis wrote:

 

It could be, try clearing out your classpath and running it again

 

-mike

 

 

On 8/10/10 3:49 PM, Marius Petruc wrote:

 

that was it. i was copying and pasting. i typed the command by hand and

it worked (sort of). that's odd, since i didn't have this problem with

the other builds...

 

anyway, it's now complains that the jdbc driver can't be loaded:

C:\i2b2source\edu.harvard.i2b2.data\Release_1-5\NewInstall\Metadata\data_build

.xml:33:

Class Not Found: JDBC driver

com.microsoft.sqlserver.jdbc.SQLServerDriver could not be loaded

 

Can this be due to some conflict with my MS jdbc 3.0 driver already

configured in CLASPATH?

 

anyway, thanks a lot for your help!

 

 

On 8/10/10 3:23 PM, Raj Kuttan wrote:

 

Could be a special character in the command, if you cut & paste from the install doc.

Please try again by typing the ant command.

 

Raj

 

 

On 8/10/10 3:22 PM, Mike Mendis wrote:

 

Which version of ant are you running?  This is kinda interesting, because if

you run ant alone, than your message is expected.  But providing the -f

command tells ant to a specific xml file, this case data_build.xml.  So I

would expect to see at least:

Buildfile: data_build.xml does not exist!

Build failed

 

I assume there is not a return hit after the ant was entered?

 

-mike

 

 

On 8/10/10 3:14 PM, Marius Petruc wrote:

 

Hi!

i've created the required databases in the SQL server and i'm trying to create the tables. when i try to run the build i'm getting an error message related to build.xml not being available:

 

C:\i2b2source\edu.harvard.i2b2.data\Release_1-5\NewInstall\Metadata>ant –f data_build.xml create_metadata_tables_release_1-5 Buildfile: build.xml does not exist! Build failed

 

did anybody have this problem? any suggestions?

 

thanks a lot!

 

Marius Petruc

 

 

 


 

 

i2b2 Upgrade from VM  [08-09-2010]

 

On 8/9/10 1:03 PM, Mike Mendis wrote:

 

I assume you are currently running 1.4 and want to move to 1.5?

 

The easiest path is to following:

 

  1. Update the database from the edu.harvard.i2b2.data project
  2. Follow the upgrade scripts for the ontology, CRC, workplace and Project Management cell.  You will need to update the properties files in each to point to your external oracle DB.  Than do the standard ant build deploy for each.

 

-mike

 

 

On 8/9/10 10:13 AM, John Reber wrote:

 

Hi All,

 

We currently have the i2b2 Full VM installed, which was originally configured by a third party and points to an external Oracle database server .  We want to upgrade to the latest version.  Is there a list of which configuration files will have to be migrated over?

 

 

John Reber

 

 

 


 

 

Set Value XML Metadata  [08-03-2010]

 

On 08/03/2010 3:45 PM, Lori Phillips wrote:

 

The end of the Ontology messaging document describes the Optional metadata_xml content associated with Value Metadata.

 

Release 1.5 of the workbench client has a new Ontology wizard (Edit Terms) that assists in the creation of Ontology terms.  This functionality is enabled for users with role = EDITOR.  This wizard also has a series of help pages that describe each field in the ValueMetadata.

 

Lori Phillips

 

 

On 08/03/2010 3:29 PM, Jack London wrote:

 

Is there documentation describing the c_metadataxml field in the i2b2metadata table?  By trial and error I have determined that "normal units"  (e.g., "years") must be specified if you desire setting value constraints with the i2b2 Query tool.  Without entering a value for this tag the "set value" pop-up window hung.

 

So, is there any document that describes which tags MUST be set to achieve various capabilities (e.g., selecting "high" values).

 

Thanks for any help.

 

Jack

 

 

 


 

 

i2b2 Wizard Updated to Support i2b2 1.5.1  [08-03-2010]

 

On 08/03/2010 6:12 AM, Sebastian Mate wrote:

 

Hi all,

 

I've updated the i2b2 Wizard to support i2b2 1.5.1. This is a maintenance update; there are no new features. It only supports Ubuntu 10.04 Linux (Desktop or Server, 32 bit) and Oracle.

 

The tool can be found here: http://wwwcip.informatik.uni-erlangen.de/~sisemate/

 

There are also two small videos, which show the i2b2 Wizard in action.

 

Greetings from Erlangen

Sebastian

 

 

 


 

 

Jboss Errors with Remote SQL Server Backend  [07-28-2010]

 

On 07/28/10 3:49 PM, Lori Phillips wrote:

 

JD,

 

Going to localhost:9090/i2b2/services/ and attempting to call the above operations on their services gives the following error (changed as appropriate for the operation):

 

Our cell urls are typically localhost:9090/i2b2/rest/  (not /services/)

 

Is that your problem perhaps?

 

Lori Phillips

 

 

On 07/28/10 2:52 PM, JD Wolk wrote:

 

Thanks Raj

 

It's not just the analysis plug-ins and the ontology patient count that aren't working, it's everything. I fire up the webclient, and while I'm able to log in, I get 4 consecutive errors saying an error has occurred in the Cell's AJAX library. There is nothing displayed in the "Navigate Terms" section of the ontology, nor in "Workplace", "Previous Queries", etc.

 

In the Message Log of the webclient, the first getUserAuth call from PM is ok, but the rest (GetCategories, GetSchemes, getFoldersByUserId, getQueryMasterList_fromUserId, and getQueryMasterList_fromUserId) are yellow, and the 'rcvd' section is blank.

 

Going to localhost:9090/i2b2/services/ and attempting to call the above operations on their services gives the following error (changed as appropriate for the operation):

 

Umarshaller error: Error during unmarshall <getCategories />; nested exception is:

edu.harvard.i2b2.common.exception.I2B2Exception: Umarshaller error: Error during unmarshall <getCategories />; nested exception is:

org.apache.axis2.AxisFault: Umarshaller error: Error during unmarshall <getCategories />; nested exception is:

edu.harvard.i2b2.common.exception.I2B2Exception: Umarshaller error: Error during unmarshall <getCategories />

 

 

On 07/28/10 2:28 PM, Raj Kuttan wrote:

 

You can remove crc-oracle-jdbc2-service.xml, but do you see the file crc-mssql-jdbc2-service.xml.

 

If there is error in the TimerImpl, then the analysis plug-ins will not Work. The default plugin(patient count) in the ontology view wont work.

 

Hope it helps.

Raj

 

 

On 07/28/10 2:16 PM, JD Wolk wrote:

 

Hi Mike,

 

Thanks for responding so quickly. The answer is yes and no. I tried with two instances of i2b2, one with the vm image where I JUST changed the crc-ds.xml, crc-jms-ds.xml, ont-ds.xml, pm-ds.xml, work-ds.xml, CRCApplicationContext.xml and CRCLoaderApplicationContext.xml, and a separate one where I built from source (via a slightly modified version of Sebastian Mate's i2b2wizard) and made all the changes I detailed in my previous message. In both instances I ran into the second set of errors below, i.e. "ERROR [TimerImpl] Error invoking ejbTimeout..."

 

I tried your suggestion, and the first error (DeploymentException) went away. I wasn't too concerned about this error in the first place, but it's nice to have a cleaner JBoss deployment now. Thanks.

 

Any idea about the second set of errors?

 

 

On 07/28/2010 1:42 PM, Mike Mendis wrote:

 

Are you using the vm image as a starting point?

 

If so than you will need to remove that file:

/opt/jboss-4.2.2.GA/server/default/deploy/jms/crc-oracle-jdbc2-service.xml

 

Because it appears to have already put the correct sqlserver one in.

 

-mike

 

 

On 07/28/10 1:40 PM, JD Wolk wrote:

 

Hi all,

 

I'm JD Wolk, a developer working under Lisa Dahm and Charles Boicey from the UC Irvine Medical Center. I'm currently trying to deploy a (test) instance of i2b2 v1.5 on an Ubuntu 10.04 machine against a remote SQL Server 2008 backend running on Windows 7.

 

Whenever I start up JBoss on the Ubuntu machine, I get the two following (and probably unrelated) sets of error messages:

 

17:39:57,114 ERROR [MainDeployer] Could not create deployment:

 

file:/opt/jboss-4.2.2.GA/server/default/deploy/jms/crc-oracle-jdbc2-service.xm>l

org.jboss.deployment.DeploymentException: Trying to install an already registered mbean: jboss.mq:service=DestinationManager

 

--- Incompletely deployed packages ---

org.jboss.deployment.DeploymentInfo@1c2fcd1c {url=file:/opt/jboss-4.2.2.GA/server/default/deploy/jms/crc-oracle-jdbc2-service.xml}

deployer: org.jboss.deployment.SARDeployer@e64686

status: Deployment FAILED reason: Trying to install an already registered mbean: jboss.mq:service=DestinationManager

state: FAILED

watch:

 

file:/opt/jboss-4.2.2.GA/server/default/deploy/jms/crc-oracle-jdbc2-service.xm>l

altDD: null

lastDeployed: 1280191197099

lastModified: 1280191197000

mbeans:

 

 

18:25:43,593 ERROR [TimerImpl] Error invoking ejbTimeout: javax.ejb.EJBException: java.lang.IllegalArgumentException: dataSource is required

...

17:40:32,690 INFO  [Server] JBoss (MX MicroKernel) [4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)] Started in 1m:5s:210ms 17:40:33,005 INFO  [XmlBeanDefinitionReader] Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml] 17:40:33,098 INFO  [SQLErrorCodesFactory] SQLErrorCodes loaded: [DB2, HSQL, MS-SQL, MySQL, Oracle, Informix, PostgreSQL, Sybase] 17:40:33,117 ERROR [TimerImpl] Error invoking ejbTimeout: javax.ejb.EJBException: org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [ select * from i2b2hive.CRC_ANALYSIS_JOB where queue_name = ? and status_type_id = ? order by create_date]; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'i2b2hive.CRC_ANALYSIS_JOB'.

 

 

This last [ERROR] keeps repeating about once every minute or so.

 

I think the problem may have something to do with the way I've configured things. I know that configuring with SQL Server is tricky, and with a remote SQL Server box doubly so. I've double and triple checked all of the files I modified just to be sure that I didn't make any obvious errors.

 

Here's a list of those files:

 

- crc-ds.xml, crc-jms-ds.xml, ont-ds.xml, pm-ds.xml, and work-ds.xml from the appropriate cells' /etc/jboss directories

 

- CRCApplicationContext.xml, CRCLoaderApplicationContext.xml, OntologyApplicationContext.xml from the /etc/spring directory of the crc, crc.loader, and ontology directories

 

- .properties files from the /etc/spring directories of the crc and crc.loader directories

 

- db.properties files from /etc/scripts in the ontology and workplace directories

 

- build.properties in the crc directory

 

- I also ran the master_build.xml from each cell's directory after I finished modifying the appropriate files (especially the .xml files from the first two points)

 

- There may have been an additional file here or there. Anywhere I saw "ORACLE" I changed it to "SQLSERVER", "Oracle 9i" to "MS SQLSERVER2000", <connection-url>, <driver-class>, etc. Also included the appropriate DB names/passwords, and gave the ip address to my DB.

 

All services at localhost:9090/i2b2/services/listServices on my Ubuntu box say they are Active.

 

What can I do to fix this? I can provide other information if needed.

 

Thanks in advance

-JD

 

 

 


 

 

Using CAS with i2b2 web client and PM cell  [07-23-2010]

 

 

On 07/23/10 9:02 PM, Andy McMurry wrote:

 

CAS has not yet been implemented with shrine, though it is a great area to engage collaboration on if you are interested.

 

--andy mcmurry

(shrine developer)

 

 

On 07/23/10 3:02 PM, Dan Connolly wrote:

 

Hi,

 

We're gearing up to deploy i2b2 in our enterprise where we use JA-SIG Central Authentication Service (CAS <http://www.jasig.org/cas> ) for single sign-on, so I'm trying to get i2b2 to use CAS for authentication.

 

Has anybody else tried this? Any advice on how to go about it?

 

I see "How to i2b2 <http://www.i2b2.org/events/slides/i2b2_AMIA_Tutorial_20100310.pdf> " has a "How to implement SHRINE" slide (#130) with a list that includes:

LINK your local user authentication system

 

But I haven't found any detailed clues about how to go about it.

 

The best idea I have is to use CAS tokens somewhat similar to the session keys in

http://sourceforge.net/projects/i2b2pmcellsecur/develop as noted in this

comment from RequestHandler.java:

 

 

//If password begins with "SessionKey:" its a session key and decrypt it and validate it

 

I'm also poring over the i2b2webclient code, trying to find where to hook in... I'm making progress, but it's slow.

 

I see some SHRINE code in there, but I don't really see how it works nor how I would use it to hook in CAS.

 

 

Dan Connolly

 

 

 


 

 

i2b2 – v1.4 SP1 – DEBUG error  [07-23-2010]

 

On 07/23/10 1:47 PM, Raj Kuttan wrote:

 

Hi Peter,

This is not releated to “c_totalnum”, you can ignore this message.  

This message is fixed in 1.5.

 

Thanks

Raj

 

 

On 07/23/10 1:40 PM, Peter Beninato wrote:

 

Hi,

In the log. I see this error when a query is executed via the thin client:

ERROR [CRCDAO] Unable to get Estimated Size: ORA-00942: table or view does not exist

There is not much more information in DEBUG mode (or I’m missing it).

Is this related to the “c_totalnum” column in the table “i2b2” in the metadata schema?

If so, is it just a matter of granting select on that table to the data schema owner?

Peter Beninato

 

 

 


 

 

New User Setup  [07-13-2010]

 

On 07/13/10 2:08 PM, Brian Eliason wrote:

 

Hi Dustin,

If you’re using Oracle, make sure to run the updates.  There is an issue with the triggers where they aren’t being created correctly; the update addresses that, but you’ll still want to verify the triggers are successfully created.

If you’re using MSSQL, this isn’t an issue (in my experience).

Thanks,

 

Brian Eliason

 

 

On 07/13/10 11:34 AM, Dustin Key wrote:

 

Hello,

 

When I try to add a role to a user_name in PM Navigation (Projects/[project name]/Users), something strange happens.   For instance, I will try to +add the new user and select roles USER and DATA_OBFSC.  I select save updates.  The user_name I just added will then disappear.  However, if I just select DATA_AGG and update, then I will see the new user_name with roles DATA_AGG and DATA_OBFSC assigned.  (The latter won't seem to be able to select counts.  I assume that's because I haven't successfully assigned either a User/Manager/Admin role.)

 

My current way around this is to just add the correct roles directly to the pm_project_user_roles table.  That seems to work fine.  However, I was wondering if anyone recognizes what I've described with the PM Navigator and whether there is a way to fix it?

 

 

Thanks!

 

Dustin Key

 

 

 


 

 

Reason for visit / chief complaint ontology  [07-13-2010]

 

On 07/13/10 1:31 PM, Andrew McMurry wrote:

 

Yes, we have worked on precisely this problem in the past.

 

http://chip.org/ihl/publications.htm#biosurv

 

We also have ETL engines for doing these kinds of operations by loading data on the fly from Emergency Departments

 

Apologies in advance that I cannot spend much time helping as I am already way committed, but I can point you towards papers and code that may be of help.

 

--andy mcmurry

 

 

On 07/13/10 12:20 PM, Brian Eliason wrote:

 

Hi,

We are doing a public health program (syndromic surveillance)  in which we need to look at reason for visit / chief complaint data coming from the ED and Urgent Care.  As many of you know, this is usually not tied to any diagnostic data, sometimes it is even entered in free-text.

Does anyone have practical experience in mapping chief complaint data into a standardized chief complaint ontology within i2b2?  I’m hoping for some open source web services that might accommodate chief complaints in the same way that the ontomapper has navigated RXNorm.  Any suggestions?

Thank you,

Brian Eliason

 

 

 


 

 

Project Request Plug-in  [07-09-2010]

 

On 07/09/10 12:54 PM, Shawn Murphy wrote:

 

Hi Jeremy,

 

The physical creation of the data mart is a manual process that is only facilitated by the scripts provided in that package mentioned below.  The project request wizard is essentially a way to gather all the prerequisites and specifics needed to build the project and run the package.  One of these prerequisites is that an approval already exists that is registered to the user creating the request.   In a specific scenario, the approval is from the IRB for a specific investigator.  That IRB approval needs to be registered into the PM cell (perhaps via the client, but could be automated) by an administrator.  That approval can then be picked by the investigator when they are making their project request based upon a patient set that fits the criteria set out in the IRB approval.

 

Thanks,

Shawn.

 

 

On 07/09/10 12:34 PM, Jeremy Nix wrote:

 

As a follow up to this discussion, what kind of workflow process is involved with this Project Request plug-in?  Is the creation of the new datamart a manual process or does the plug-in do this for you?  What is the relationship of project requests to approvals?  The reason I ask this is that from reading the documentation it seems as though an approval must be created before a user can request a project to be created.  I may have misinterpreted, if so I apologize.

 

Jeremy Nix

 

 

On 07/08/10 6:25 PM, Shawn Murphy wrote:

 

Hi Keith,

 

Indeed, the current design is for each project to have its own data schema. This is so we can cleanly manage user permissions and data ownership when derived data is created for a project.  This can be facilitated with a package of sql scripts that can create the new schema and move the data from an existing schema for specific patient sets and data types.  They are under the source_code section of the software page, in a package named i2b2DerivedDataMarts-src-14.zip

 

Thanks,

Shawn.

 

 

On 07/08/10 3:39 PM, Keith Marsolo wrote:

 

According to the 1.5 Release Notes, with the Project Request plug-in, new datasets are created by copying existing data (I'm assuming into a new schema).

 

Is there any intention to include functionality that will allow users to define multiple projects within the same schema?

 

In other words, if I want to give data_obfs access to everyone, but then allow certain users to have data_deid access for specific patient sets (based on previous queries), can I do that within the same project?  Or do I need to create a separate schema?

 

Keith

 

 

 


 

 

Dimension Query  [07-08-2010]

 

On 7/8/10 1:07PM, Raj Kuttan wrote:

 

Brian,

You able to get the patient list because in 1.5  it is  defaulting to PROVIDER_PATH, will fix this in next version.

Thanks

Raj

 

 

On 7/8/10 12:52 PM, Brian Ostasiewski wrote:

 

Are you sure?  Because we are matching on the ID and the SQL query the i2b2 server generates works correctly and returns an accurate patient list when executed directly against Oracle.  If I have problems still with 1.5 I will try your suggestion.

-Brian

 

 

On 7/8/10 10:49 AM, Lori Phillips wrote:

 

Brian,

I noticed one thing that may be a problem.

In your metadata the

 

<C_COLUMNNAME>PROVIDER_ID</C_COLUMNNAME>

 

should be

 

<C_COLUMNNAME>PROVIDER_PATH</C_COLUMNNAME>

 

 

Lori Phillips

 

 

On 7/8/10 9:39 AM, Brian Ostasiewski wrote:

 

Was testing it with 1.3 and 1.4 installs.  That is good news about 1.5, I will give that a try when it comes out.  Thanks!

 

On 7/8/10 9:29 AM, Shawn Murphy wrote:

 

Hi Brian,

Are you using 1.4 or 1.5RC?

1.5 (final release coming out next week) supports this for providers, but not patient or visits.  1.6 will support those dimensions as well.

Thanks,

Shawn.

 

On 7/6/10 3:42 PM, Brian Ostasiewski wrote:

 

It appears i2b2 is able to accept queries against dimensions.  I tried this with the Provider dimension and am having problems.  In my metadata I have an entry along the lines of:

 

<C_FULLNAME>\WFUBMC\Provider\00000-09999\00236\</C_FULLNAME>

<C_BASECODE>00236</C_BASECODE>

<C_DIMCODE>\WFUBMC\Provider\00000-09999\00236\</C_DIMCODE>

<C_FACTTABLECOLUMN>PROVIDER_ID</C_FACTTABLECOLUMN>

<C_TABLENAME>PROVIDER_DIMENSION</C_TABLENAME>

<C_COLUMNNAME>PROVIDER_ID</C_COLUMNNAME>

 

If I run a query through the client, the SQL the i2b2 server generates and executes is along the lines of:

 

SELECT patient_num, 1 FROM (

SELECT patient_num  FROM i2b2data.observation_fact  WHERE (provider_id IN (

SELECT provider_id FROM i2b2data.provider_dimension c where provider_path LIKE '\WFUBMC\Provider\00000-09999\00236\%'  

)) group by patient_num having count(*) >=1

) t

 

If I execute this SQL directly against Oracle, it indeed returns a patient list, and fairly quickly.  However in the web client or workbench, it hangs. The workbench times out after 3 minutes and says to refresh later to check progress - but it never changes from PROCESSING.

The web client fares worse - after the 3 minutes the server seems to go into an infinite loop of loading the user's permissions and the cell locations, and eventually empty javascript error alerts start popping up endlessly.

 

Is the ability to query dimensions as I am attempting to do a feature of i2b2 indeed?  What might I be doing wrong?

 

-Brian O

 

 

 


 

 

Project User Roles  [07-08-2010]

 

On 07/08/10 9:44 AM, Mike Mendis wrote:

 

What do you mean ‘curve out project’  If you mean a single star schema (obs_fact, dim_tables, ect...) and multiple projects accessing it with each one appearing to its own private space, than that is not possible.  What is possible, is to have multiple projects, with a single PM cell/database AND each project has it OWN  star schema database.  

 

You create your projects in the PM admin tool and than create entries in the lookup_tables and create the corresponding –ds.xml files in the jboss deploy directory.

 

-mike

 

 

On 07/07/10 4:38 PM, Arvinder Choudhary wrote:

 

Mike:

  Is there a way that we can curve out project from the complete database. Say we have database ABC and we have one PI who specializes in Hypertension and another in diabetes ..can we create a project where we can assign them and their group a project path within ABC say /ABC/HTN  and /ABC/DBT  

Arvinder

 

 

On 07/06/10 2:28 PM, Mike Mendis wrote:

 

You just need to redeploy the cells.  All the data is fine and did not change from 1.4 to 1.4sp1

 

 

On 07/06/10 3:25 PM, Peter Beninato wrote:

 

Hi,

With v1.4 SP1 is there information on how to upgrade from v1.4?

It would seem that the cells need to be re-deployed via ant. But with regards to Data, what are the changes between v1.4 and v 1.4 SP1? I would like to apply the Service Pack, but not lose my existing data.

Thanks.

Peter Beninato

 

 

On 06/30/10 8:24 AM, Mike Mendis wrote:

 

It is up on the i2b2.org website now, it is referred to as Core Source Code Server v1.4 SP1

 

-mike

 

 

On 06/30/10 10:40 AM, Arvinder Choudhary wrote:

 

Dear Mike:

    As you had explained earlier that there is a Flaw in Project User Roles. When are you releasing 1.4.1 ver with a fix.

Regards

Arvinder    

 

 

 


 

 

i2b2 v1.4 – Admin - Hive  [07-07-2010]

 

On 07/08/10 9:07 AM, Shawn Murphy wrote:

 

I agree Peter, we're working on this on 1.6 so that only admins and managers can see those.  There is the ability for different cells to be associated with different projects, so the managers of a project may want some control.

Thanks,

Shawn.

 

 

On 07/07/10 4:42 PM, Peter Beninato wrote:

 

Hi,

When I log on as a user onto i2b2 v1.4 SP1 and click on Admin, the information under HIVE seems to be available in a READ mode.

I have some concerns about exposing the cell URLs. I think general users may be directed to a https URL, but the cells are then behind a firewall.

Not that a user could access the CELL URLs directly, but I’m wondering if there is a way from preventing end users from seeing the contents under Admin|HIVE?

Or the intent in allowing users access to Admin, Admin|Hive?

 

Peter Beninato

 

 

 


 

 

i2b2 Sample Management – Demo Website  [07-06-2010]

 

On 07/06/10 7:25 PM, Lynn Bry wrote:

 

1) Regulatory cell

 

Purpose: Manage IRB or other types of protocols in i2b2. A user may register protocols in the webclient UI ("Authorities" and "Protocols" tabs in the "Sample Management" link in the webclient). Protocol registration would be restricted to 'managers' of the i2b2 project. Default fields capture what we believe to be common IRB data used across sites (IRB protocol#, assigning authority, etc.).

 

Sites may add fields to an EAV table that allows the IRB and Authority objects to be extended, as needed.

 

One or more i2b2 projects may also be mapped to a given IRB protocol so samples (collected under an IRB protocol) can be linked to the datasets in corresponding i2b2 projects.

To protect PHI data as it moves between systems, part of a project’s PHI encryption key will be stored within the Regulatory Cell. When a user submits a sample, or cohort request, they provide the second half of the key  'on-the fly'. The Regulatory cell then combines the two parts of the key to decrypt/re-encrypt PHI as required.

The regulatory cell will leverage (and if necessary extend) existing ontology & CRC cell services (e.g ont:get_child, add_child, update_crc_concept) to maintain and populate the regulatory 'ontology'.

 

PDF from internal wiki page (RegulatoryCellDesignSpec-7-6-2010.pdf)

 

 

(2) Cohort Map ("Cohorts" tab in the "Sample Management" link)

 

Purpose: Links primary patient identifiers (MRN + SOURCE -- 2345667, BWH, e.g.) with a study or project-specific subjectID, where the subjectID is a research-specific identifier for the patient. For the purposes of prospective sample collection - the cohort map provides the primary patient identifiers (MRN) that  will be used to find to-be-discarded clinical samples. Upon retrieval and accession for the associated study, a LIMS such as Crimson can assign the study-specific subjectID, included in the cohort map, as the patient identifier, thus linking the sample with the appropriate i2b2 dataset.

 

For the purposes of retrospective sample repositories - the full cohort can be used to interrogate an existing repository to generate a "picklist" of potential matching samples that could be broadcast back to the source LIMS. This would provide a first step in delivering samples to investigators. We envision that each bank would then implement its own operational procedures to handle subsequent communication with an investigator regarding sample release.

 

A workbench or webclient plugin will be provided that will allow a user in any i2b2 project to drag and drop an existing patient set and 'broadcast' it to the EMSI/sample cell to request samples on the patients it describes (for retrospective repositories). The user will have the ability to explicitly append, replace or refresh the existing sample within their project, thereby preserving the temporal state of their project data.

 

(3) EMSI - Enterprise Master Specimen Index -- stores instances of samples as broadcast from one or more source LIMS. It also maintains parent-child relationships between parent samples and any aliquots or derivatives. A prototype EMSI is in use at Partners and can receive sample messages from the Sunquest LIS and Crimson LIMS. A specification will be provided should sites wish to connect other LIMS, e.g. caTissue, others.

 

The source LIMS can broadcast any new samples or updates to samples (changes in availability, volume, etc.). The EMSI also tracks an instance of a sample if it is shipped/received across multiple LIMS, where each LIMS frequently assigns a different unique sampleID. Sample messages include the availability of the sample, whether it belongs to a "public" or "private"/study-specific repository, and whether it originated from a dedicated/consented or discarded sample – with flavors of anon, de-ID or consented.

 

The EMSI will be capable of broadcasting sample data into the CRC, so this information may be queried with other patient data (e.g. find patients with Lupus who have a DNA sample). Should time/resources on our grant permit, a webclient plugin would let an i2b2 user select a PDO to broadcast to the EMSI for the purposes of generating a "picklist" - namely a list of potentially matching sampleIDs, which could be forwarded to the corresponding repository as a request for samples.

 

As with the regulatory cell, existing ontology and CRC webservices will be exploited where possible to manage sample definitions. However, for performance a direct database import mechanism will also be considered for the 'bulk' transfer of large samples sets into the i2b2 hive – in this manner, sites could perform a “batch” upload/update of samples in the event source systems lack an appropriate webservice or other communication layer.

The ETL process for importing samples will include a mechanism to validate the raw metadata and provide a mean to map and transform the concepts provided by the external LIMS systems to a controlled sample metadata ontology maintained by the sample cell. When mapped a synonym will be created for the raw concept. This will ensure that samples can be located within the hive using either the raw metadata concept or via the preferred i2b2 hive term.

In the case of both cells, to get sample-related data into the CRC, and make it available as ontology concepts for use in the Query Tool, we are considering persisting a representation of the 'protocol' and 'sample' concepts within the c_METADATAXML field of the ontology table, using a format that adheres to the ISO/IEC 11179-1 (https://www.nescent.org/wg/dryad/images/c/c5/ISO_IEC_11179-1_2004(E)_Metadata_Registries_Framework.pdf) standard, specifically the caBIG implementation of this standard - Common Data Element. This could potentially help foster closer integration between i2b2 and caBIG platforms.

 

 

On 07/06/10 6:52 PM, Lynn Bry wrote:

 

Website with "Example Scenarios" for the demo webclient UI:

http://i2b2crimson.partners.org/

 

Demo webclient UI -

http://i2b2crimson.partners.org/i2b2crimson/index.php

 

 

I. "Example Scenarios" goes through a test script to search for samples in the

Query Tool.

 

II. To get to the IRB/sample management components in the webclient --

 

(1) Click "Sample Management" in the upperRH menu.

(2) Page opens with "Authorities", "Protocols", "Cohorts" and "Samples" as options.

(3) Click any entry under a tab to see a detailed view.

(4) This is a demo pre-populated with dummy data, you won't be able to create/modify existing information.

 

 

 

Thoughts, feedback appreciated…

 

 

 


 

 

Linking samples within i2b2  [07-06-2010]

 

On 07/06/10 6:49 PM, Lynn Bry wrote:

 

Hi all -

For those with interest in managing samples within i2b2, let me give an update from my group on the SAMP project --

 

We received an ARRA grant to implement sample management features in i2b2, namely the ability to (1) broadcast existing sample inventories into i2b2, and (2) facilitate creation of cohort maps to enable prospective collection from Clinical Lab/Pathology Depts.

 

One thing I've learned is every academic center is different, having one or more preferred LIMS that often support multiple repositories. Our goal is to let sites leverage what they have. We'll provide a minimum data specification for sites to load samples from their favorite LIMS into i2b2, plus tools to let users generate a "picklist" of materials that could go back to the source LIMS/repositories that own them. For anyone who runs a biorepository, this is not an end-to-end solution, but it would allow use of i2b2 as a "store-front" to search for materials and start a process to request them.

 

Thanks go to Brian Wilson, the senior programmer and analyst on the BWH i2b2 team who architected some elegant solutions to maximize use of i2b2's existing infrastructure for sample queries.

 

I'll forward links to the demo website + more detailed description of the proposed cells in subsequent emails.

 

Please give us your feedback. In particular, we'd be interested in issues other sites face with sample handling, IRB oversight, + LIMS in use at various places.

Thanks!

 

-Lynn

 

 

 


 

 

Securing Apache Web Server  [06-23-2010]

 

On 06/23/10 12:55 PM, Phillip Reeder wrote:

 

We have the i2b2 web services working using Apache AJP from HTTP to Tomcat/Jboss.  If you use a self signed cert, you will have to import that cert into your local desktop machine’s java to be able to use the thick client.  If you need instructions, I can provide this.

 

Phillip

 

 

On 06/23/10 12:54 PM, Mike Mendis wrote:

 

Yes it will work fine if you specify https on the apache webserver for the webclient.

 

You can also have https on the cells in jboss, just make sure that the pm cell section have the cells as https instead of http.  If you are using a self-signed cert than you need to load that cert on the server.

 

 

On 06/23/10 12:49 PM, Arvinder Choudhary wrote:

 

Does i2b2 application works as required if we enable SSL for secure connections on Apache webserver and has anybody done that?

 

 

 


 

 

Exporting Patient Set  [06-22-2010]

 

On 06/22/10 3:24 PM, Mike Mendis wrote:

 

If you use the rich client, then you can add the feature of export tool in the

1.4 client.  This is under the help menu.

 

-mike

 

 

On 06/22/10 11:47 AM, Jack London wrote:

 

We have need to export the patient set defined by the i2b2 web query tool.  Have others already solved this problem?  For example, developed a means to write a file with i2b2 identifiers for a patient set?

 

Thanks,

Jack

 

 

 

 


 

 

i2b2 - v1.4  Query by Value (number)  [06-18-2010]

 

On 06/18/10 2:34 PM, Shawn Murphy wrote:

 

Thanks very much Peter, I'll follow up with Raj.  We could still sneak a fix in just before release of 1.5

Shawn.

 

 

On 06/18/10 2:24 PM, Lynn Bry wrote:

 

FYI - in clinical lab systems we'd treat results such as "< 0.5" as an alphanumeric result -- effectively "result is below the threshold of detection" or "... above the range of detection", versus as a numeric result.

 

When searching in an LIS, regexp are used to query alphanumeric results; numeric operators for numeric results. I presume something comparable could be setup in i2b2 by validating the data-type of the result as it is being loaded, and setting it as a numeric or string/text result?

 

It's also important to allow query of a numeric lab result against the reference range endpoints, as most folks don't know what these are - e.g. SODIUM > NORMAL_HIGH or GLUCOSE < PANIC_LOW.. not certain how such is handled in i2b2. However, any LIS can export the reference range endpoints as part of the dataset associated with a result... as we have to show them when reporting for clinical purposes.

 

 

On 06/18/10 2:09 PM, Peter Beninato wrote:

 

Hi,

It appears there is a bug in v1.4 on QBV searches for the GreaterThanEquals, and LessThanEquals operations when at least tval_char=’E’.

FYI.

-Peter

 

 

On 06/18/10 2:01 PM, Shawn Murphy wrote:

 

Hi Peter,

The problem is that the numbers often come in from the laboratory that way, i.e. "Dilantin level < 0.5", "ETOH > 3000".  In order to represent what the lab truly reported, we need to allow for several different operators that can accompany the values.

Thanks,

Shawn.

 

 

On 06/18/10 1:16 PM, Peter Beninato wrote:

 

Hi,

So I ran query BMI GTE 25 with a tval_char = ‘E’.

Here is the panel tag from i2b2_request_xml:

 

<panel>

<panel_number>1</panel_number>

<invert>0</invert>

<total_item_occurrences>1</total_item_occurrences>

<item>

<hlevel>2</hlevel>

<item_name>Visit BMI</item_name>

<item_key>\\i2b2\i2b2\Visits\BMI\</item_key>

<tooltip>Visit \ BMI \ </tooltip>

<class>ENC</class>

<constrain_by_date>

</constrain_by_date>

<item_icon>FA</item_icon>

<item_is_synonym>false</item_is_synonym>

<constrain_by_value>

<value_unit_of_measure>US</value_unit_of_measure>

<value_operator>GTEQ</value_operator>

<value_constraint>25</value_constraint>

</constrain_by_value>

</item>

</panel>

Here is the panel tag from the request_xml:

 

<panel>

<panel_number>1</panel_number>

<panel_accuracy_scale>0</panel_accuracy_scale>

<invert>0</invert>

<total_item_occurrences>1</total_item_occurrences>

<item>

<hlevel>2</hlevel>

<item_name>Visit BMI</item_name>

<item_key>\\i2b2\i2b2\Visits\BMI\</item_key>

<item_icon>FA</item_icon>

<tooltip>Visit \ BMI \ </tooltip>

<class>ENC</class>

<constrain_by_value>

<value_constraint>25</value_constraint>

<value_unit_of_measure>US</value_unit_of_measure>

<value_type>NUMBER</value_type>

</constrain_by_value>

<constrain_by_date/>

<item_is_synonym>false</item_is_synonym>

</item>

</panel>

And here is the generated_sql:

 

INSERT INTO octrii2b2data.QUERY_GLOBAL_TEMP (patient_num, panel_count)

SELECT patient_num, 1 FROM (

SELECT /*+ index(observation_fact fact_cnpt_pat_enct_idx) */patient_num  FROM octrii2b2data.observation_fact  WHERE (((concept_cd IN (select concept_cd from octrii2b2data.concept_dimension c   where concept_path LIKE '\i2b2\Visits\BMI\%'))   ))

 group by patient_num having count(*) >=1) t

<*>

INSERT INTO octrii2b2data.DX (patient_num) SELECT * FROM (

SELECT DISTINCT t.patient_num FROM octrii2b2data.QUERY_GLOBAL_TEMP t WHERE panel_count = 1

) q

<*>

 

On 06/18/10 12:51 PM, Raj Kuttan wrote:

 

The tval_char used to record the actual observed value. For example

 

OBSERVED_VALUE

TVAL_CHAR

NVAL_NUM (Range)

<100

L

100

>=100.1

GE

100.1

<>99.999

NE

99.999

 

So now if the query constrain is >1, only the second row will be selected.  

 

 

On 06/18/10 12:31 PM, Peter Beninato wrote:

 

Can you elaborate more about the values for tval_char and the relationship to nval_num like provide a map?

 

TVAL_CHAR

NVAL_NUM (Range)

L, LE, E

<100

E, G, GE

>=100.1

NE

NOT SURE

 

This is very confusing. If a user is presented with a range of operation like LESS THAN, LESS THAN EQUAL, EQUAL, BETWEEN, GREATER THAN, GREATER THAN EQUAL, what value does the application functionality provide, by making the ETL process set the tval_char column and thereby influence what operation is performed?

To me, it would make more sense **not** to even require anything in tval_char and just to do a comparison based on the operation selected.

OPERATION

WHERE CLAUSE

LESS THAN

WHERE nval_num < ***NUMBER***

LESS THAN EQUAL

WHERE nval_num <= ***NUMBER***

EQUAL

WHERE nval_num  = ***NUMBER***

BETWEEN

WHERE nval_num BETWEEN ***NUMBER1*** AND ***NUMBER2***

GREATER THAN

WHERE nval_num > ***NUMBER***

GREATER THAN EQUAL

WHERE nval_num >= ***NUMBER***

 

The value in the tval_char must provide some application value that I don’t understand, can you elaborate on its function?

Thanks.

 

 

On 06/17/10 8:40 PM, Raj Kuttan wrote:

 

Can you check for the query definition’s <value_operator> in the database? (qt_query_master.i2b2_request_xml)

 

<item>

        <hlevel>4</hlevel>

        <item_name>CSF Total Protein (Group:CSF-TP)</item_name>

<item_key>\\i2b2\i2b2\Labtests\LAB\(LLB16) <file:///\\i2b2\i2b2\Labtests\LAB\(LLB16)>  Chemistry\(LLB26) CSF Chemistries\CSF-TP\</item_key>

<item_icon>FA</item_icon>

<tooltip>Labtests \ Chemistry \ CSF Chemistries \ CSF Total Protein (Group:CSF-TP)</tooltip>

<constrain_by_value>

<value_operator>LE</value_operator>

<value_constraint>99.99</value_constraint>

<value_unit_of_measure>mg/dl</value_unit_of_measure>

<value_type>NUMBER</value_type>

</constrain_by_value>

<item_is_synonym>false</item_is_synonym>

</item>

 

 

For Less than equal to QBV:

 

valtype_cd = 'N' AND nval_num <= NN.NN AND tval_char IN ('L','E','LE')

SELECT patient_num FROM bservation_fact  WITH(NOLOCK) WHERE (((concept_cd IN (select concept_cd from concept_dimension c  WITH(NOLOCK)  where concept_path like '\i2b2\Labtests\LAB\(LLB16) Chemistry\(LLB26) CSF Chemistries\CSF-TP\%'))   AND  

valtype_cd = 'N' AND nval_num <= 99.99 AND tval_char IN ('L','E','LE')))

group by patient_num having count(*) >=1) t

 

 

For Greater than equal to QBV:

 

valtype_cd = 'N' AND nval_num >= NN.NN AND tval_char IN (G','E','GE')

SELECT patient_num FROM observation_fact  WITH(NOLOCK) WHERE (((concept_cd IN (select concept_cd from concept_dimension c  WITH(NOLOCK)  where concept_path like '\i2b2\Labtests\LAB\(LLB16) Chemistry\(LLB26) CSF Chemistries\CSF-TP\%'))    AND   valtype_cd = 'N' AND nval_num >= 99.99 AND tval_char IN ('G','E','GE')))

group by patient_num having count(*) >=1) t

 

Raj

 

 

On 06/17/10 7:16 PM, Peter Beninato wrote:

 

Hi,

I was in a meeting regarding i2b2, and went to run a query using the query-by-value functionality.

For this part of the ontology (VISIT|BMI) there is an entry in i2b2.c_metadataxml enabling the QBV functionality.

There are observations made about Body Mass Index BMI where

tval_char= ’E’

valtype_cd = ‘N’

and nval_num has a numeric BMI value populated.

I may need some help in understanding the role of the tval_char field in doing QBV.

I see in the i2b2 Clinical Research Chart (CRC) Design Document where the values for this field can be:

E = Equals

L = Less Than

G= Greater Than

When I look in qt_query_master.generated_sql,  the query run by i2b2 is sometimes looking for ‘LE’ or ‘GE’.

What are the allowable values for this field?

 

I need a better understanding of the function of this field as I am experiencing an issue with the QBV functionality.

 

Basically, the “LESS THAN OR EQUAL TO (<=)” and the “GREATER THAN OR EQUAL TO (>=)” operators don’t work.

 

I ran queries against all the different operators with observation_fact set as described above (tval_char=”E”). Below is a listing of the operation, WHERE clause, and outcome.

The LTE and GTE operator do not append the WHERE CLAUSE for nval_num etc.

Is there a way to have all the operators work for QBV?

 

LESS THAN 25          - where concept_path LIKE '\i2b2\Visits\BMI\%'))  

                             AND ((  valtype_cd = 'N' AND nval_num < 25

                              AND tval_char IN ('LE','E')) OR  (  valtype_cd = 'N'

                                AND nval_num <= 25 AND tval_char = 'L')) - ***OK***

LESS THAN EQUAL 25    - where concept_path LIKE '\i2b2\Visits\BMI\%  - ***NO GOOD***

EQUAL = 25            - where concept_path LIKE '\i2b2\Visits\BMI\%'))    

                          AND   valtype_cd = 'N' AND nval_num = 25

                           AND  tval_char = 'E' - ***OK***

BETWEEN 25 AND 25     - where concept_path LIKE '\i2b2\Visits\BMI\%'))  

                        AND   valtype_cd = 'N' AND nval_num BETWEEN 25

                          and 25 AND tval_char = 'E' - ***OK***

GREATER THAN 25       - where concept_path LIKE '\i2b2\Visits\BMI\%'))    

                       AND ((  valtype_cd = 'N' AND nval_num > 25

                        AND tval_char IN ('GE','E'))

                          OR  (  valtype_cd = 'N' AND nval_num >= 25 AND tval_char = 'G' - ***OK***

GREATER THAN EQUAL 25 - where concept_path LIKE '\i2b2\Visits\BMI\%' - ***NO GOOD***

Please let us know if there is workaround to get all the QBV operators to work.

If this issue can be replicated will there be bug fix?

Peter Beninato

 

 

 


 

 

Hierarchy Data Issue  [06-17-2010]

 

On 06/17/10 1:04 PM, Arvinder Choudhary wrote:

 

Team:

Finally I figured out. When yesterday I was putting slash in the end of c_dimcode in the metadata.i2b2 table. It already had "\" in the end. So now it had "\\"  instead of "\" so I removed one and now I get results while running the webclient ...attaching the snapshots to make it more clear...

Arvinder

 

 

On 06/17/10 10:54 AM, Arvinder Choudhary wrote:

 

Yesterday I loaded test data for CPT testing in the system.  (loaded concept_dimension, visit_dimension and observation_fact tables ). Some how it does show total counts under root level but it returns 0 records when I choose sub category under the root.(I ran the queries on the Sqlplus with different CPTs and they returned counts so data is there under various sub directories).

 

Metathesaurus CPT Hierarchical Terms (Root)  - returns 1962 patients

 

If I select any one or multiple of these below groups under root ...the query on the webclient returns 0 patients (attaching snap shot for your reference)

 

(Sub directories)

 

1. Anesthesia Procedures

 http://bmidev1/webclient/#

 

2. Emerging Technology, Services & Procedure Codes (Category III, Temporary)

 http://bmidev1/webclient/#

 

3. Evaluation and Management Procedures

 

4. Medicine Services and Procedures

 

5. ..........

 

 

On 06/16/10 11:46 AM, Vivian Gainer wrote:

 

Yes, I think you need  ‘\’ in both c_fullname and c_dimcode.

Vivian

 

On 06/16/10 11:40 AM, Arvinder Choudhary wrote:

 

My gut feeling says that we might have to put trailing '\' in the end of c_fullname and c_dimcode...   please advice

 

 

On 06/16/10 11:38 AM, Arvinder Choudhary wrote:

 

Here are the snapshots from both ICD9 and CPT with c_dimcode

 

 

On 06/16/10 11:36 AM, Donglu Xie wrote:

 

It depends on the configuration with/without the trailing "\". Both can make app work.

 

How about c_dimcode? did you populate them all in this column? The screen shot you sent didn't have it.

 

 

On 06/16/10 11:32 AM, Lori Phillips wrote:

 

Looks like the C_FULLNAME is missing the trailing '\'

 

Lori

 

 

On 06/16/10 11:25 AM, Phillip Reeder wrote:

 

Can you send me 5-10 lines of the terminology from Oracle?  I want to look at all the columns real quick to see if there is something wrong in it.  You can just paste them into an email, or an excel file.

 

Thanks,

Phillip

 

 

On 06/16/10 10:20 AM, Parth Divekar wrote:

 

Arvinder,

 

I used to get this issue in the JAVA WORKBENCH.

But generally there will be an error in the app server error log for this.

 

Regards

 

Parth Divekar

 

 

On 06/16/10 11:17 AM, Arvinder Choudhary wrote:

 

We are having an issue.  (after clicking on the '+' sign ..it does not expand to the next level)

 

Here are the steps we did

 

1. Loaded the CPT data into i2b2demodata.concept_dimension and i2b2metadata.i2b2 tables.

 

2. Inserted row in the schemas table in i2b2metadata (CPT:, CPT and Current Procedural Terminology)

 

Attaching the snapshot. Please advice..if we are doing right or missed any step

 

 

 


 

 

Using VALTYPE_CD and TVAL_CHAR in query by value / filtering  [06-11-2010]

 

On 06/11/10 6:54 AM, Shawn Murphy wrote:

 

Thanks Brian, we'll take a look at 1.5 RC to see if there is a problem.

Shawn.

 

 

On 06/10/10 5:25 PM, Brian Eliason wrote:

 

Hi Shawn,

Thanks for the reply.  When I change the <DataType> to “Enum” and then include “NEG” as one of the enumerated values, the interface acts as expected (allow me to select “NEG” instead of freehand it), but I’m still getting the incorrect patient count.  

When using <DataType> of “String”, the interface also behaves as expected (letting me freehand the search text), but that, too, produces an incorrect patient count.

Has anyone had success (or failure?) with either of these approaches (String or Enum for filtering)?  I’m trying to implement this in 1.5 rc1.

Thanks,

 

Brian Eliason

 

 

On 06/10/10 3:00 PM, Shawn Murphy wrote:

 

Hi Brian,

It looks like the <DataType> should be "Enum"

Thanks,

Shawn.

 

On 06/10/10 4:12 PM, Brian Eliason wrote:

 

I’m trying to leverage the query by value feature to filter on the TVAL_CHAR (can’t get working) instead of the NVAL_NUM (works just fine, tested).

When looking at the data model and the interface it seems possible, but when I check the logs the expected SQL is not being generated and the results (patient count) are not accurate.  It appears to be ignoring any QBV and generating a count simply based on the concept_cd, which is not the expected behavior.

As I understand it, in order to run a query by value (filtering for a text value) the following is needed:

1 – adjust the i2b2.c_metadataxml column xml value to include this element/value:  <DataType>String</DataType>

 

2- the observation_fact.valtype_cd = ‘T’ and TVAL_CHAR = ‘NEG (whatever relevant value)’

The numeric/flag filtering is working fine, but we’re not having success with the text filtering.  Has anyone been successful in implementing QBV as it relates to text filtering?    

Thanks,

Brian Eliason

 

 

 


 

 

CPT Hierarchical Terms in i2b2 [06-09-2010]

 

On 06/09/10 5:32 PM, Dustin Key wrote:

 

Hi---I've just joined the AUG.  There had been a recent post from Arvinder Choudhary about developing CPT ontologies for I2B2.  I wanted to mention that we've just gone through an exercise in this, successfully utilizing the UMLS to gather CPT hierarchical terms and then importing them into I2B2 meta and concept data tables via SAS and SQL. I'd be happy to share experiences on this if anyone were interested. 

 

The basic approach was to extract 'HT' terms from MRCONS and import those into a SAS format for each level (I think there were 7 levels possible.)  Then we applied the relevant formats to each leaf or folder node in order to build up the c_fullpath string in the metadata table. 

 

Dustin Key

 

 

On 06/08/10 2:48 PM, Arvinder Choudhary wrote:

 

We have loaded the Rich release format of CPT hierarchical Terms into sql server database. We now trying to extract the data from MR tables and build hierarchies and load into Concept Dimension table in oracle database, Has anyone done this.

 

Regards

Arvinder Choudhary

 

 

 

 


 

 

Extracting Data from Cerner RadNet  [06-08-2010]

 

On 06/08/10 2:20 PM, Phillip Reeder wrote:

 

Our hospital IT staff is working to extract radiology reports from Cerner RadNet and to ship them over to us in a bulk extract.  Do any of you have experience in extracting notes from Cerner RadNet?  They’ve looked at several possible solutions and have even contacted Cerner but have not gotten a good answer yet as to the best way to get the data out of RadNet for querying.

On the plus side, they have been able to extract demographics, diagnosis, procedures, medication orders/admin, labs, and vital signs for us so they are making progress.  If anyone needs help on getting that information out of Cerner Care4, let me know and I can put you in touch with the local group.

Thanks,

Phillip Reeder

 

 

 


 

 

Running i2b2 Web Service Under Windows 2008  [06-02-2010]

 

On 06/02/10 8:38 PM, Brian Eliason wrote:

 

Jian,

 

It looks like Arnold got it working with Java 6, but in my experience it only worked under Java 5.  If you've exhausted other options, I would try running with Java 5.  Also, you might want to verify that you unpacked the axis2 zip file as per the instructions (in the right directory, producing the right files, etc).

 

It may not be needed, but to be safe I would redeploy the PM using Java 5.  You know how to set the path to use a different JDK/JVM, right?

 

Thanks,

 

Brian

 

 

On 06/02/10 7:50 PM, Garth Arnold wrote:

 

We are running i2b2 1.4 with JDK 6 (1.6.0_16) and axis2 version 1.1.

 

Garth

 

 

On 06/02/10 5:50 PM, Jian Yang wrote:

 

Brian:

 

Thank you, I just verified that I have Java 6 running on my win2008 server, I will downgrade it to java 5 and see how it works, do you think I need to redeploy all web service after downgrading?

 

Thank you for your help.

 

Jian Yang

 

 

On 06/02/10 4:42 PM, Brian Eliason wrote:

 

Your error is an axis2 error.

 

The documentation is scattered with java 5 and java 6 references for the linux install.  In our experience, however, this only runs on java 5 in a Windows XP/Server 2008 environment (which is now harder to get from sun/oracle because they're pushing java 6).  I'd be interested to hear if others could, in fact, make it run in java 6 for windows.

 

A simple troubleshooting technique: make sure you're running this on Java 5.  Go to the command line and run java -v.  There may be other problems, but I would start there first.

 

Thanks,

 

Brian Eliason

 

 

On 06/02/10 7:34 PM, Brian Eliason wrote:

 

Hi Jian,

 

We have a working instance of i2b2 (v 1.5 rc1) built from source running on Windows Server 2008 on Oracle.  We plan to port from Oracle to SQL Server towards the end of the week and anticipate no problems doing so.

 

We've done many installs in both linux and windows, and there are some changes (not immediately obvious building from source) that must be made when switching between environments.

 

We had success in windows xp and server 2008 by the following:

 

Make sure the jboss path (in the .properties source files) is setup for a windows environment, NOT linux.  Escape the slashes in the JBOSS_HOME reference by adding another slash within the path.

 

In our experience, we've found that if this is incorrect, the ant build will declare success but not deploy the configuration files within the jboss conf directory.  This leaves the person installing i2b2 completely confused because there are no errors!

 

When working with the web services package (axis2) that is manually deployed to jboss, we were only able to successfully run it under java 5, NOT java 6.  It is an older axis library they are working with and it must have some dependencies on java 5.

 

This is just my experience.  Others may have found different results.

 

Thanks,

 

Brian

 

 

On 06/02/10 5:25 PM, Jian Yang wrote:

 

Thank you, the environment I have is win2008 + sql server 2008, I deployed the common web service and edu.harvard.i2b2.pm<http://edu.harvard.i2b2.pm> first, and I was able to log into web client to view and edit the hive information. The next step I did is to deploy the ontology web service, after deployment, and verfying the web serivice is runing, I tried to login with workbench, then got this error in the log, which is showing as database connection error, but the ontology web service is using the same connection string as pm service, and it appears pm service works fine with the database connection.

 

Your advise is appreciated.

 

Thanks

Jian Yang

 

 

11582

main

ERROR

org.apache.axis2.transport.http.RESTSender

Error in processing POST Request

 

org.apache.axis2.AxisFault: Transport error 500 . Error Message is <soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><faultcode>soapenv:Client</faultcode><faultstring>Database error; nested exception is: edu.harvard.i2b2.common.exception.I2B2DAOException: Database error; nested exception is: org.apache.axis2.AxisFault: Database error; nested exception is: edu.harvard.i2b2.common.exception.I2B2DAOException: Database error</faultstring><detail /></soapenv:Fault>

   at org.apache.axis2.transport.http.RESTSender.sendViaPost(RESTSender.java:295)

   at org.apache.axis2.transport.http.RESTSender.send(RESTSender.java:141)

   at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:334)

   at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:205)

   at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:670)

   at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:365)

   at org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:295)

   at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:579)

   at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:508)

   at edu.harvard.i2b2.eclipse.plugins.ontology.ws.OntServiceDriver.sendREST(OntServiceDriver.java:339)

   at edu.harvard.i2b2.eclipse.plugins.ontology.ws.OntServiceDriver.getCategories(OntServiceDriver.java:136)

   at edu.harvard.i2b2.eclipse.plugins.ontology.views.TreeNode.updateCategories(TreeNode.java:348)

   at edu.harvard.i2b2.eclipse.plugins.ontology.views.TreeNode.getCategories(TreeNode.java:324)

   at edu.harvard.i2b2.eclipse.plugins.ontology.views.NodeBrowser.populateRootNode(NodeBrowser.java:536)

   at edu.harvard.i2b2.eclipse.plugins.ontology.views.NodeBrowser.createTreeViewer(NodeBrowser.java:214)

   at edu.harvard.i2b2.eclipse.plugins.ontology.views.NodeBrowser.<init>(NodeBrowser.java:68)

   at edu.harvard.i2b2.eclipse.plugins.ontology.views.TreeComposite.populateControl(TreeComposite.java:35)

   at edu.harvard.i2b2.eclipse.plugins.ontology.views.TreeComposite.<init>(TreeComposite.java:27)

   at edu.harvard.i2b2.eclipse.plugins.ontology.views.OntologyView.createPartControl(OntologyView.java:98)

   at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:367)

   at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:226)

   at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)

   at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:313)

   at org.eclipse.ui.internal.ViewPane.setVisible(ViewPane.java:529)

   at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180)

   at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270)

   at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)

   at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473)

   at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1256)

   at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:668)

   at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:576)

   at org.eclipse.ui.internal.PartSashContainer.createControl(PartSashContainer.java:568)

   at org.eclipse.ui.internal.PerspectiveHelper.activate(PerspectiveHelper.java:272)

   at org.eclipse.ui.internal.Perspective.onActivate(Perspective.java:981)

   at org.eclipse.ui.internal.WorkbenchPage.onActivate(WorkbenchPage.java:2626)

   at org.eclipse.ui.internal.WorkbenchWindow$27.run(WorkbenchWindow.java:2964)

   at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)

   at org.eclipse.ui.internal.WorkbenchWindow.setActivePage(WorkbenchWindow.java:2945)

   at org.eclipse.ui.internal.WorkbenchWindow$21.runWithException(WorkbenchWindow.java:2262)

   at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)

   at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)

   at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)

   at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855)

   at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476)

   at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)

   at org.eclipse.ui.internal.Workbench$28.runWithException(Workbench.java:1384)

   at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)

   at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)

   at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)

   at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855)

   at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476)

   at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2316)

   at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)

   at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)

   at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

   at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)

   at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)

   at edu.harvard.i2b2.eclipse.Application.run(Application.java:135)

   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

   at java.lang.reflect.Method.invoke(Unknown Source)

   at org.eclipse.equinox.internal.app.EclipseAppContainer.callMethodWithException(EclipseAppContainer.java:574)

   at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)

   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)

   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)

   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)

   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)

   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

   at java.lang.reflect.Method.invoke(Unknown Source)

   at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)

   at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)

   at org.eclipse.equinox.launcher.Main.run(Main.java:1311)

 

 

On 06/02/10 4:05 PM, Garth Arnold wrote:

 

Hello Jian -

 

Yes, it's possible - but not easy.  With the help of a consultant my group has an i2b2 (windows 2003 +sql server 2005) install working.  I'm partway through creating a second working system (same OS+SQL 2008) but so far working alone I've not been successful.  I have a heavily annotated copy of the i2b2 linux install docs but my notes are not 'share-ready' - I'm happy to answer any specific questions on- or off-list.

 

To respond to your specific comment, I do not believe we needed to edit any .java files for our working i2b2 system.

 

Garth

 

 

On 06/02/10 3:53 PM, Jian Yang wrote:

 

Good Afternoon:

 

Anybody tried deploy I2b2 web service under windows server 2008? the deploy guide is for Linux, but is it possible to have it running on Jboss under windows? I checked the code and it appears that some parts need to be updated such as file path in Ontologyutility.java needs to be changed to accommodate windows file path, are there any other places in the code need to be modified? anybody has a "Windows" ready code?

 

Thank you

 

Jian Yang

 

 

 


 

 

Creation script for MS SQL DB [06-02-2010]

 

On 6/2/10 6:54 PM, Garth Arnold wrote:

 

Hi Lisa -

Are you asking about creating empty databases and users in SQL Server?  Everything *but that* is done for you by the ant scripts that are part of i2b2demodata-14.zip.  Following the corresponding PDF install guide (Data Installation Guide_104.pdf, found in i2b2core-doc-14.zip), you will edit config files to choose SQL Server (rather than default Oracle) as your db; running the scripts will then create the db objects needed by i2b2.  

I installed i2b2 for SQL Server recently - my approach was to create the dbs and users by hand and then use SSMS to script out the creation steps for the *next* i2b2 install...

Hope that helps,

Garth

 

 

On 6/2/10 3:22 PM, Lisa Dahm wrote:

 

Hi Everyone,

Is there a creation script available for the i2b2 DB for MS SQL 2008?

Thanks,

Lisa

 

 


 

 

Paging Implementation for CRC PDO requests  [5-28-2010]

 

On 5/28/10 9:54 AM, Jeremy Nix wrote:

 

Mike,

 

I did see that in the schema, but I was not sure what it was being used for.  Glad to see the patient and encounter based paging functionality exists.  Is it possible to page based on the observation_facts?

 

 

On 5/28/10 9:34 AM, Mike Mendis wrote:

 

Jeremy,

 

If I am missreading your email I am sorry.  But I think that this functionally exists in our current release 1.4.  By using the min and max feature of the pdo request you can do the paging.

 

Lets say you have a pdo that has 1000 patients, you make the following calls:

 

  1. get <patient_list max=”1000” min=”0”>

The server can only send 250

 

  1. next call <patient_list max=”1000” min=”250”>

The server can only send 250

 

  1. <patient_list max=1000” min=”500”

This time the server is actually able to send the rest, which is 500

 

You can specify on the server side what the paging size should be at.

 

-mike

 

 

On 5/28/10 9:04 AM, Jeremy Nix wrote:

 

Has there been any discussions regarding the inclusion of paging functionality for CRC PDO requests?  If not, is there any interest within this group to have this type of functionality implemented?  In the interface we are developing, we allow privileged users access to view the patients that apart of the resulting cohort.  From there, we then allow them to drill into a given encounter.  If we had the ability to page based on patients when viewing the patient cohort, we could cut down significantly the amount of information that has to be buffered within our web server while the users page through the patient cohort.  Once they drill into a patient, having the ability to page based on the observation_facts would again relieve some of the memory requirements needed in order to render/display the patient/encounter/facts to the user.

 

I'm thinking that this paging functionality could be added to the "output_optionType" complexType within the CRC_PDO_QRY_request.xsd file.  This would mean that any type of output would have to implement paging (patient/encounter/fact/concept).  From a simple PDO query with a single (paged) output, the idea would be pretty straight forward.  I believe the more complex scenario would be what happens when somebody introduces more than one output that is paged.  For instance, you choose to enable paging on Patient and Facts.  The queries would have to be paging aware so that the paged subset of Facts returned are ones applicable to the subset of Patients returned.  I'm sure more complex scenarios could be listed as well.

 

I was going to take a stab at designing/implementing this functionality, but wanted to make sure that this type of functionality did not already exist in one way shape or another.  I was also curious if there is any desire amongst this community to have this functionality as well?

 

Jeremy Nix

 

 

 


 

 

Modifier_CD  [05-28-2010]

 

On 5/28/10 6:46 PM, Shawn Murphy wrote:

 

Hi Davera, Keith, and Philip,

Here is the database representation specification (i2b2_modifiers.pdf).  Let me know if it is unclear.

Thanks,

Shawn.

 

 

On 5/28/10 3:25 PM, Davera Gabriel wrote:

 

Shawn:

 

Is it possible to store (to pass) a string (possibly containing a composition) and if so what length, are there special characters included / excluded?  

 

Here are a couple of SNOMED CT examples:

 

"183944003 | procedure refused | : 363589002 | associated procedure | = 367336001 | chemotherapy | "

 

"373572006 | clinical finding absent | : 246090004 | associated finding | = 372288004 | local tumour invasion | : 363698007 | finding site | = 68171009 | axillary lymph node structure| "

 

"429685005 | radiotherapy by body site | : 405813007 | procedure site - Direct | = 245325004 | entire supraclavicular lymph node | "

 

Best,

 

Davera Gabriel

 

 

On 5/28/10 9:39 AM, Shawn Murphy wrote:

 

Yes, The modifier_cd column will be searchable in the Version 1.6 API in the following manner:

 

The column in the database is similar in setup and use to the concept_cd column.

 

This means that various modifier codes are described in a vocabulary and the use of values to express them is permitted.  This is used in conjunction with the instance_num column, which is able to separate various facts into clusters that allow several modifiers to be attached to the same fact.

 

The modifier table in the ontology cell is organized a bit differently from the regular tables to help specify what concepts the modifiers can be attached to.

 

I can send out the full specification out when I get back to the office.

 

Thanks,

Shawn.

 

 

On 5/28/10 11:38 AM, Phillip Reeder wrote:

 

I don't think it's currently usable(Searchable) through the i2b2 API, but for codes like CPT,  there is a modifier code that can be assigned.  For example if the procedure is done on the right arm, the modifier would be "RT".

 

Here's a link to a document that describes all the CPT modifiers.

 

http://hrsa.dshs.wa.gov/download/BillingInstructions/Physician-Related_Services_ <http://hrsa.dshs.wa.gov/download/BillingInstructions/Physician-Related_Services_>

Jan2009/Section%20L_July2009.pdf

 

Phillip

 

 

On 5/28/10 10:28 AM, Keith Marsolo wrote:

 

Can someone provide a (hopefully) short description on the current use of the modifier_cd column?  Also, is there a plan to add/remove functionality around this column?

 

Thanks.

 

Keith

 

 

 


 

 

Establish values for  i2b2 concepts  [05-19-2010]

 

On 5/19/10 11:44 AM, Peter Beninato wrote:

 

Hi,

 

To use the text value or number value columns in the observation fact, in i2b2metadata.i2b2 (the metadata table), info needs to be added information in the c_metadataxml field.

 

There are tags in that field also to list values.

 

Do you have the i2b2 demo loaded in some DB schemas?

 

If so, you might want to look for c_metadataxml with non-null values then join that through the i2b2data.concept_dimension and observation_fact where there are entries for that concept_cd in the observation fact.

 

 

Peter Beninato

 

 

 

On 5/19/10 8:26 AM, Jack London wrote:

 

Hello everyone,

 

I am new to the i2b2 world, and have the following question:

 

When a concept has a value, for example a diagnosis that can be "PRIMARY" or "SECONDARY," where is it noted in the i2b2 database that this concept has a value, and what the possible values are?

 

I see that in the OBSERVATION_FACT table you can specify that a fact has a numeric or text value, and whether a numeric value is =, <, or >.  You can also store a numeric value and/or an abnormal flag.

 

But, where do you specify that a concept has a value, and therefore if you "right-click" on it in the 12b2 query tool, a window pops up asking you to set the value?

 

Thanks,

 

Jack

 

 

 


 

 

HIPAA Data Obfuscation Question  [05-18-2010]

 

On 5/18/10 4:16 PM, Vivian Gainer wrote:

 

Hi Peter,

At Partners Healthcare, we are extremely concerned about the issues surrounding sensitive data; so for research, for the i2b2 de-id role to view de-identified data, a specific IRB approval for the project is required, while operations work requires sign-off by the Partners privacy board.

Vivian Gainer

 

 

 

On 5/17/10 4:55 PM, Peter Beninato wrote:

 

Hello,

A colleague requested that I attempt to determine how other institutions might handle some scenarios with regards to data obfuscation and what HIPAA might suggest as a remedy.

 

In the specific scenario the concern was that from a de-identified dataset,  a particular combination of columns  indicates a “rare” disease then it might defeat the de-identification.

 

I know that i2b2 has user privileges that enforce security and data obfuscation.

 

My understanding that with the Data_Obfuscation role, then all “counts” are obfuscated. And that if a query returns 10 or less rows, then “<10” is the only information forthcoming.

 

If the person has the “De-identification” role, then any fields returned with PHI is encrypted.

 

But in other environment, where your institution might be providing de-identified datasets, is this concerning?

 

Are there steps your institution is taking to safeguard against this? (Like not loading patient into your Data Warehouse that have rare diseases).

 

Is this something your institution IRB is concerned about?

 

Thanks in advance for your replies.

 

Peter Beninato

 

 

 


 

 

Data Load  [05-17-2010]

 

On 5/17/10 3:36 PM, Vojtech Huser wrote:

 

When we tried our experiments, we loaded some data into fact table, but they never showed up in any of the queries.

 

After some experimentation, we found out, that in order for the new facts to be “found” by the queries, all patient_ids for which we loaded some facts, must be in the patient dimension table – and then it worked as we were expecting when querying.

 

I would suggest perhaps some sort of ‘manual for loading local data’ produced by i2b2 authors for new adopters. I am sure there are several catches like this one above out there. Is there a second on that?

 

Vojtech

 

 

On 5/12/10 5:36 PM, Shawn Murphy wrote:

 

Hi Arvinder,

 

The provider_id does not need to be a number and can be an external code, though usually needs to have a prefix to make sure is unique.

 

The query by provider will be available in the next release (1.5) in the query tool.

Thanks,

Shawn

 

 

 

 

On 5/12/10 4:37 PM, Arvinder Choudhary wrote:

 

 

Dear Team:

 

We have loaded the real data into i2b2.  We did the following.

 

1. Preloaded the concept_dimension table from existing i2b2demodata schema.

 

2. Loaded patient_dimension table from raw data table.

 

3. Loaded visit_dimension and observation_fact table with ICD diagnosis code. Each of these codes entered as a record in both tables and they had their own encounter_number even when it has the same patient_number. Multiple encounters for the single patient).

 

4. Loaded observation_fact table with all 8 categories of Demographic data as a separate record from patient_dimension (got rest of the information) and visit_dimension (got encounter_num) table.

 

We have not inserted data into the provider_dimension table because we could not find any example in the demo data.

 

How can we insert in the provider_dimension table. Does it have its own encounter_num in the observation_fact table.

 

Are we doing it in a right way... Please Advice

 

Regards

 

Arvinder Choudhary

 

 

 

 


 

 

i2b2 Client Timeout  [05-14-2010]

 

On 5/14/20 10:56 AM, Mike Mendis wrote:

 

Rob,

 

There are two places where you can specify the timeout.

1) In the request message from the client.

         <request_header>

                <result_waittime_ms>180000</result_waittime_ms>

        </request_header>

 

Increasing the result_waittime_ms will tell the server how long to wait for the response from the server.

 

 

2) Depending on the cell, you can specify timeout in by modifying the properties files, such as in the crc:

 

   /opt/jboss/server/default/conf/crcapp/crc.properties

         edu.harvard.i2b2.crc.jms.small.timeoutsec=180

 

 

-mike

 

 

 

On 5/14/10 9:30 AM, Arvinder Choudhary wrote:

 

Rob:

To my knowledge you have to modify the parameter "connectionTimeout" parameter in the run.conf file in the JBOSS_HOME/bin  directory

Arvinder

 

 

 

 

On 5/13/10 8:00 PM, Rob Wynden wrote:

 

Hello everyone,

 

How should we extend the i2b2 client timeout past 3 minutes (180+) seconds?

 

Thanks!!

Rob Wynden

 

 

 


 

 

Procedures CPT  [5-13-2010]

 

On 5/13/10 6:13 PM, Nigam Shah wrote:

 

PS: A little history and future work ...Last fall, we (NCBO and i2b2) did a bunch of tests - which led to the prototype Shawn mentioned - primarily to make sure that our web service outputs contain all the information that the i2b2 ontology cell would need. The plan for future work is to make an ontology manager that can do the steps I mentioned from within the i2b2 workbench. Till, that happens using the services directly will do the job... support@bioontology.org will answer questions if you get stuck etc.

 

-Nigam.

 

 

 

On 5/13/10 5:41 PM, Nigam Shah wrote:

 

Thanks Shawn. The prototype code is still available and will dump out any ontology in NCBO in the i2b2 format. Conceptually it is very simple and does the following:

 

1 - you specify an ontology to extract (or a root node that you want to extract the branch under)

 

2 - the code simply calls the services at:

 

http://www.bioontology.org/wiki/index.php/NCBO_REST_services

<http://www.bionotology.org/wiki.index.php/NCBO_REST_services>

 

- specifically “get term”

http://www.bioontology.org/wiki/index.php/NCBO_REST_services#Get_term_for_Iatest_ontology_version_id

 

- and then recursively “get children”

http://www.bioontology.org/wiki/index.php/NCBO_REST_services#Get_parents.2Fchildren_of_a_given_concept_in_the_latest_version_of_a_given_ontology

 

<http://www.bioontology.org/wiki/index.php/NCBO_REST_services#Get_parents.2Fchildren_of_a_given_concept_in_the_latest_version_of_a_given_ontology>

 

3 - parses the XML using a few XPATH expressions and writes out the information the information in the i2b2 format.

 

That's about it. I am happy to share the code... but its simple enough that most people can just write their own routines in their favorite language.

 

Regards,

Nigam.

 

 

 

On 5/13/10 4:19 PM, Keith Marsolo wrote:

 

You can also find the CPT terminology in the UMLS. I think you can extract the CPT hierarchy from the Metathesaurus, though there are restrictions on how it can be used/disseminated.

 

http://www.nlm.nih.gov/research/umls/

 

 

 

On 5/13/10 1:09 PM, Shawn Murphy wrote:

 

Hi Venkata,

 

The only way to add vocabulary items through tools is in the "Edit" View of the ontology of the i2b2 workbench that was added in 1.5.  We will be adding a more robust ontology manager in the future working with the NCBO team.

 

For now, you can contact Nigam (NCBO) and see what state a prototype tool he made for us might be in.

 

Thanks,

Shawn.

 

 

 

On 5/13/10 12:21 PM, Venkata Pagadala wrote:

 

Hello everyone,

 

We are using I2B2 version 1.4 and we are trying to setup CPT's in the procedures hierarchy in addition to ICD9 hierarchical levels. Can anyone please guide us how to set up the hierarchy or do we have a place we can download the hierarchical levels to our concept_dimension and i2b2metadata tables?

 

Thanks for your help,

Venkata Pagadala

 

 

 


 

 

How to enable synonyms in “Find Terms”  [05-13-2010]

 

On 5/13/10 4:31 PM, Vivian Gainer wrote:

 

The ontology tool won't return synonyms unless you tell it to.

 

One way to do this is the way you did it, via the PM cell.

 

Another way to do this is to open the gear icon on the find tool and check the 'show synonyms' button.

The navigate terms view works the same way.

 

Having said all that, the 'search by name' feature has a bug. We have fixed it and it will be available in the next release.

 

The 'search by code' should work.

 

Vivian

 

 

On 5/13/10 10:07 AM, Haijun Qiu wrote:

 

Hello everyone,

 

In Ontology cell, we specify cell variable ontSynonyms=true in gridsphere. In i2b2 workbench - "Navigate Terms", we do see synonyms, but in "Find Terms", search words are still limited to original terms only.

 

Is there a way we can enable synonyms search in "Find Terms" by words?

 

We are still running version 1.3.

 

Thanks,

 

Haijun Qiu

 

 

 


 

 

A new tool: i2b2 Wizard  [05-10-2010]

 

On 5/10/10 12:51 PM, Sebastian Mate wrote:

 

Hello i2b2 AUG,

 

Some of you have shown great interest in our i2b2 Wizard.

 

I have fixed a few critical bugs:

 

        - Support for Ubuntu 10.04 Server

        - Using different passwords for I2B2PM and I2B2HIVE

 

Note that you cannot update from 1.01 (it's possible, but difficult), you'll have to start over again.

 

I will continue to upload new snapshots to this location:

http://wwwcip.informatik.uni-erlangen.de/~sisemate/

 

This will happen frequently, because I'm upgrading our aging Hospital's 1.3 instance to 1.4 with this thingy.

 

I will do this silently from now on (to reduce e-mail traffic), so simply check out this place if you want to bite in the bullet and try "the Wizard" out ... :-)

 

Greetings,

Sebastian

 

 

On 5/5/10 8:51 AM, Sebastian Mate wrote:

 

Subject: A new tool: i2b2-Wizard

Date: Wednesday, May 5, 2010 8:51 AM

From: Sebastian Mate <Sebastian.Mate@imi.med.uni-erlangen.de>

To: <members@i2b2aug.org>

Conversation: A new tool: i2b2-Wizard

 

Dear AUG members,

 

As advertised some weeks ago, we were working on a small tool for a "automatic" installation and administration of i2b2 instances.

 

We call it "i2b2 Wizard" and because we believe it could be useful to others, we have decided to make it freely available (free as in "beer" and "freedom" => GPL2). In fact I believe that this effort is a vital builing-stone in order to deploy i2b2 to other sites who are not "i2b2 experts". There is a great interest in i2b2 over here in Germany, but most of the people have fear to work with the source code. The overall goal of it is to turn the i2b2 source code into a "self-managing application".

 

Special Features:

 

(1) Automated installation of i2b2, including automatic software-download, etc.

 

(2) Loading and dropping of the "Boston Demodata"

 

(3) Creation and removal of i2b2 projects. The tool handles the JBoss datasources and the creation of the database users. For every new project, a simple "ETL" template SQL-file is created which can be used to load data into into the i2b2 hive. This is a very simple approach, however, it turned out to be sufficient for small i2b2 projects/experiments. Those scripts load some sample data as well and show how to build simple i2b2 ontologies.

 

(4) Creation of i2b2 users and the assignments to projects. So this part mimics the new PM-portal (I mean the administration tool in the webclient) to a certain degree, but it's not meant to replace it. I like it a lot and highly appreciate Mike's efforts ... but I think it's nice to have everything in one place as well.

 

The tool is small and simple and - as stated above - somehow still experimental. Remember, this an initial release. But it worked great for us in some tests. Currently, it only works with Ubuntu 10.04 and Oracle. A small 20-page documentation is included.

 

If you are interested, please drop me a mail. The tool is ~500 kb. I hope we can make it available through other channels later...

 

-- Sebastian

 

 


 

 

i2b2 Project User Roles (1.4) Fix [4-29-2010]

 

 

On 4/29/10 1:27 PM, Mike Mendis wrote:

 

It appears that some mail servers are rejecting the file I sent as a possible virus, don’t like the included .js file.

 

I have posted on https://www.i2b2.org/downloads/1-4sp1.zip as an alternate download link.

 

Thanks

Mike

 

 

On 4/29/10 12:38 PM, Mike Mendis wrote:

 

I want to thank everyone for the help in finding this.

 

I have attached a file, which contains 3 files in it that will address 2 issues:

 

 1) On Oracle sometime the create triggers are not created correctly for the PM Params

     FIX:

       a) Replace the create_oracle_trigger.sql from zip to {BUILD_DIR}/edu.harvard.i2b2.data/NewInstall/Pmdata/scripts

       b) goto edu.harvard.i2b2.data/NewInstall/Pmdata

       c) run ant f data_build.xml create_triggers_release_1-4

 

 2) The Project User Roles in the webclient not working as designed.  

   FIX:

       a) Replace the PM_admin_ctrlr.js from zip to /var/www/html/js-i2b2/cells/PM  {/var/www/html – is the root http directory}

       b) Replace the PMDbDao.java from zip top {BUILD_DIR}/edu.harvard.i2b2.pm/src/edu/harvard/i2b2/pm/dao

       c) goto {BUILD_DIR}/edu.harvard.i2b2.pm

       d) run ant f master_build.xml clean dist deploy

 

Than restart your browser and restart i2b2.

 

Thanks again for all the help

 

-mike

 

 

On 4/29/10 10:52 AM, Mike Mendis wrote:

 

That is the experience I have recently noticed.  I do need to do some more testing, but I believe that I will have a new js file PM_admin_ctrlr.js in the webclient, which is located in js-i2b2/cells/PM later today that will resolve the issue.

 

-mike

 

 

On 4/28/10 5:17 PM, Brian Wilson wrote:

 

Experiencing similar behavior in 1.5 RC1.

 

Although not tried the specific combo you have outlined.

 

 

On 4/28/10 5:09 PM, Brian Eliason wrote:

 

Thanks Mike.

This is helpful instruction.

I’m assuming that the release candidate for 1.5 also behaves in the same way.  For some reason, however, when going through the ajax PM admin area, I’m unable to add any roles under the Hive Management Track.  The “data protection track” seems to be working well, but the “hive management track” never returns any roles; no matter what I do within the interface, I am unable to successfully add ADMIN, MANAGER, or USER.  I’ve confirmed this within the i2b2pm.PM_PROJECT_USER_ROLES table, and when trying to login to i2b2 under that user, the permissions prevent said user from running any queries.

I’ve talked with a few of you out there with the same experience.  Has anyone else tested the 1.5 vm or source code?  What have your experiences been?

Thanks,

 

Brian Eliason

 

 

On 4/28/10 1:01 PM, Mike Mendis wrote:

 

Hello,

 

There are been a lot of issues regarding the project_user_roles.  I have just identified a flaw in the 1.4 release, which I will describe in more detail later in the message.  I hope to fully test my fix and provide updated patch file to existing 1.4 users and will release a newer 1.4.1(?) that has the fix.  

 

Let me try to explain how the system should work

In 1.4, there are 2 tracks, a Hive Management and a Data Protection track, and a user needs have at least one role in each.  Each track is a hieratical nature, such that the user assigned with the current role also gets the roles below it.

 

Lets take the Hive Management Track, if you assign a user MANAGER and click on ‘Save’, the system should save it as ‘MANAGER’, ‘USER’.  The ‘USER’ role will automatically be added.

 

In the webclient, a user should be able to do the following scenarios:

 

1) Selected:    MANAGER and DATA_OBFSC

   Got back:  MANAGER, USER, DATA_OBFSC

 

2) Selected: MANAGER, USER, DATA_OBFSC, DATA_PROT

    Got Back:  MANAGER, USER, DATA_PROT, DATA_DEID, DATA_LDS, DATA_AGG, DATA_OBFSC

 

3) Selected:    MANAGER and DATA_OBFSC

   Got back:  MANAGER, USER, DATA_OBFSC

 

4) Selected: MANAGER, USER, DATA_OBFSC, DATA_PROT

    Got Back:  MANAGER, USER, DATA_PROT, DATA_DEID, DATA_LDS, DATA_AGG, DATA_OBFSC

 

I agree the UI needs some improvements to deal with the hieratical nature of the roles.  Take the second example; there I selected DATA_OBFSC and DATA_PROT.  The server will take the highest level and automatically assign the roles under it.  

 

So because I selected DATA_PROT, I was automatically assigned all the roles.  In the third example, I selected the lowest level (DATA_OBFSC) and than had all the roles revoked except for DATA_OBFSC.  

 

What currently I found

The way the webclient is working is that when you make any changes to the roles, it first deletes all the roles for that user and than adds the ones that was selected back.  What appears to be happening is the webclient is sending the delete roles to the PM, but when this is a new user, the PM server is saying ‘cant delete because user does not exist’ and the webclient is handling this a fault coming from the server and not continuing.  It should go to the next step, which is add the roles, because this is true, they don’t exist.

 

Thanks

mike

 

 


 

 

i2b2 Installation Done and Where to find 1.5-RC1 [4-29-2010]

 

 

On 4/29/10 12:01 PM, Brian Wilson wrote:

 

https://www.i2b2.org/RC

 

 

On 4/29/10 12:01 PM, Mike Mendis wrote:

 

You can get the 1.5 RC1 from

https://www.i2b2.org/RC/

 

If you don’t have an account, click on the ‘Register here’

 

-mike

 

 

On 4/29/10 11:58 AM, Shawn Murphy wrote:

 

It is available in the RC1 release, Arvinder.

 

 

On 4/29/10 11:53 AM, Arvinder Choudhary wrote:

 

Brian:

 

Looks like we have 1.4 client installed and Yes I do not see Edit Terms and Import Data under Show View.

 

How can we have client Workbench 1.5.

 

Arvinder

 

 

On 4/29/10 10:43 AM, Brian Wilson wrote:

 

Avinder

First check the following: From the Main Menu (in the rich client)

   Window -> Show View -> (select the view your looking for)

Note however, I believe the Importer is only available in the 1.5 client (?)

(Taken from 1.5RC1)

 

 

On 4/29/10 11:47 AM, Shawn Murphy wrote:

 

Hi Arvinder,

The "core" i2b2 workbench does not come with those "optional" plug-ins (note that many may not have privileges to run them).  They can be downloaded as "features" in the Eclipse framework from the Harvard site (except not the import which is not officially released yet, will be in 1.5).  I think that how to use the download capabilities is in the i2b2 workbench documentation.

 

Thanks very much for assisting with the documentation.

 

Shawn.

 

 

On 4/29/10 11:16 AM, Arvinder Choudhary wrote:

 

Hello Team:

First of all my Special thanks to Mike Mendis, Brian Wilson and Brian Eliason for being patient and helpful. It was great learning curve for me specially I was hands on after awhile.  Now the real work starts.

 

i2b2 requires update on the documentation and will be more than happy to assist in it.

 

The last issue that we encountered was as per documentation once we install File Repository Cell I should see Export and Import Data Tab (Next to Timeline View) in the workbench client view but we get is Analysis view (Screen shot attached)

 

Regards

Arvinder Choudhary

 

 


 

 

New Cell Development [4-28-2010]

 

 

On 4/28/10 9:44 AM, Daniele Segagni wrote:

 

Ok, thanks!

I'm going to try these steps, I'll tell you about the results.

 

Daniele

 

 

On 4/28/10 at 9:31 AM, Mike Mendis wrote:

 

The approach you most likely want to do it:

 

1.  edit the i2b2/js-i2b2/ i2b2_loader.js

 

Add an entry like

{ code:    "MyProject",

          forceLoading: true,

          forceConfigMsg: { params: [] },

         forceDir: "cells/plugins/examples"

 },

2.  In the i2b2/js-i2b2/cells/plugins/examples copy save ExamplePDO to MyProject

3. In the PM (which I think you already did) register your new cell.

4. Relogin to the webclient and hopefully you should see your plugin in the example section of the anaylsis tools.  If so, than start modifing the javascript and html code to reflect your needs.

 

-mike

The redirect url is needed for the webclient code to communicate with the pm and all the cells.  I would leave it to what it was originally.

 

On 4/28/10 3:40 AM, Daniele Segagni wrote:

 

Ok, I've just developed one web Plug-in, and I call my cell service using this tag in the XML Request:

 

<proxy>

<redirect_url>http://myurl:myport/i2b2/rest/TestCell/myMethod</redirect_url>

</proxy>

 

Is this the right way?  Using this approach I exclude all the PMCell controls, right?  I suppose that my Plug-in have to call the PM Cell, that replies with the WebService URL that the Plug-in have to call for use the TestCell service, but I don't know how to implement these calls.

Thanks,

Daniele

 

 

On 4/27/10 at 2:52 PM, Vincent Yip wrote:

 

Hi all,

 

I also interested in information regarding development of plug-ins for the webclient.

 

Do you all know any documentation/ tutorials/ powerpoint slides about developing plugins?

 

Thanks,

Vince.

 

On 4/27/10 at 2:41 PM, Mike Mendis wrote:

 

If you want to use the webclient to test against this cell, than your best bet is to take one of the ‘Analysis tools’ aka Plugins and create a new one based on that.  I think that Griffin might have a powerpoint presentation on this.

-mike

On 4/27/10 12:02 PM, Daniele Segagni wrote:

 

Hi Mike,

 

As per your suggestion I used the PFT Cell as a template and I developed my first test cell. Now I've some doubts about how I can call my cell services from the i2b2 web client.

 

I registered my cell via gridsphere application with these parameters:

 

ID

TESTCELL

Name

My Test Cell

Base URL

http://ipAddress:Port/axis2/rest/TestCell

Web Service Method

REST

 

 

Under the Base URL I've 2 services:  getGenderFromPatientList and getAgeFromPatientList.

How can call a specific service for a specific cell from i2b2 web client? I want to call only the method getGenderFromPatientList from my Test Cell...is it possible? If no, if my cell have only one service onder my cell, how can I call it from the web client?

Thanks,

Daniele

 

 

On 4/20/10 11:32 AM, Daniele Segagni wrote:

 

Ok, I'll try to use the PFT client/server as a template.

 

Thank you very much

Daniele

 

On 4/20/10 at 10:34 AM, Mike Mendis wrote:

 

Is there a guide that explain how to develop a new core cell?

Currently your best bet, is to download the PFT client/server and use that as a template for developing and learning about new cells.

We are discussing internally about better methods of educating on cell development.

 

How can I add a new REST Web Service into the i2b2 hive? Once you create a new cell, you need to assign it a unique ID such as (PFT) for the Pulmonary Function Test example.  With this ID, you can add it via webclient as a new Cell, using the URL as the location of the REST service.

 

-mike

 

 

On 4/20/10 10:24 AM, Daniele Segagni wrote:

 

Hi all,

I've been working with i2b2 for a couple of months and I've some questions related to the i2b2 core cells development.

 

Is there a guide that explains how to develop a new core cell?

 

How can I add a new REST Web Service into the i2b2 hive?

 

Thanks,
Daniele

 

 

 


 

 

i2b2 Installation Help [4-27-2010]

 

 

On 4/28/2010 7:10 PM, Venkata Pagadala wrote:

 

Yes the popups disappeared once we installed the cells, thank you for the help

-Venkat

 

 

On 4/28/10 12:07 PM, Mike Mendis wrote:

 

This will explain why Arvinder was getting all of these popups messages.  Once you install the Ontology, CRC, Workplace Cell and register them, these popups should disappear.

 

 

On 4/28/10 12:47 PM, Venkata Pagadala wrote:

 

We haven't installed the Ontology cell yet, the things we are able to navigate are all the links on top of the page (Find Patient, Admin, Analysis Tools, Message Log, Find Patients, Help)

 

In the Admin Page we were able to access Hive, Projects and Manage Users...we also created users and also associated users to a project with roles.

-Venkat

 

 

On 4/28/10 11:36 AM, Brian Eliason wrote:

 

What does this mean?  “Even though we got these alerts we were able to navigate.”

Were you able to bring up the ontology and navigate through the ontology in the webclient?

 

 

On 4/28/2010 10:32 AM, Arvinder Choudhary wrote:

 

xmllib  was already there but adding libcurl did the trick,  

 

Thank you all for your support. we were able to login into the Webclient

 

But encountered the following error when we tried to login into the webclient

 

Here is what we captured in the log file

 

09:22:45,000 ERROR [AxisRESTServlet] org.apache.axis2.AxisFault: Service not found operation terminated !!; nested exception is:

org.apache.axis2.AxisFault: Service not found operation terminated !!

09:22:45,104 ERROR [AxisRESTServlet] org.apache.axis2.AxisFault: Service not found operation terminated !!; nested exception is:

org.apache.axis2.AxisFault: Service not found operation terminated !!

09:22:47,020 ERROR [AxisRESTServlet] org.apache.axis2.AxisFault: Service not found operation terminated !!; nested exception is:

org.apache.axis2.AxisFault: Service not found operation terminated !!

09:22:47,023 ERROR [AxisRESTServlet] org.apache.axis2.AxisFault: Service not found operation terminated !!; nested exception is:

 

We pressed f12 as per instruction in the alert message and we got another window (attaching the screen shot of that window)

 

Even though we got these alerts we were able to navigate.

 

Please Advice to eliminate the error; also make sure to copy Venkata Pagadala.

 

Arvinder

 

 

On 4/27/10 3:30 PM, Brian Eliason wrote:

 

Hello Vojtech,

 

I encountered this a few months back as well.  If your setup is like mine (compiled apache and php from source), you may also need to bring in the xmllib2 before curl will work.

 

This got mine working:

 

./configure --prefix=/opt/i2b2web/php --with-apxs2=/opt/i2b2web/apache/bin/apxs   --with-libxml-dir=/opt/i2b2web/xmllib2 --with-config-file-path=/opt/i2b2web/apache/lib --with-curl=/opt/i2b2web/

 

In addition to being error free for the build, you can also check the results of your phpinfo() function (Mike mentioned this earlier) to see if curl is being used.

 

Brian Eliason

 

 

On 4/27/10 12:13 PM, Brian Wilson wrote:

 

You made need to rebuild php w/ curl option enabled

 

./configure --with-apxs2=/var/www/bin/apxs --with-curl

 

Brian Wilson

 

 

On 4/27/10 2:07 PM, Lars Reimann wrote:

 

Hi,

 

if I may jump in here...

 

If your curl_init() function is not found you should check your php installation. maybe version requirements and mod_php. The webclient may have specific version requirements.

 

Maybe a test php file could give you a lot of info. E.g. calling that function and see what happens.

 

Greetings,

Lars

 

 

On 4/27/2010 8:00 PM, Arvinder Choudhary wrote:

 

Brian:

 

After the web client login failed; I looked into the logs directory in the Apache web server (Webclient sits in this directory /usr/local/apache2/htdocs/webclient)

 

Logs directory is in /usr/local/apache2  folder  and has 4 files

 

-rw-r--r-- 1 root root  52010-04-27 08:24 httpd.pid

-rw-r--r-- 1 root root  315196 2010-04-27 11:34 mod_jk.log

-rw-r--r-- 1 root root 1900847 2010-04-27 11:46 error_log

-rw-r--r-- 1 root root 4571071 2010-04-27 11:56 access_log

 

The file error.log has

 

[Tue Apr 27 11:37:47 2010] [error] [client 10.17.8.62] PHP Fatal error:  Call to undefined function curl_init() in /usr/local/apache2/htdocs/webclient/index.php on line 165, referer: http://bmidev1/webclient/default.htm

 

 

In the access.log file we have

 

10.22.6.238 - - [27/Apr/2010:11:45:05 -0600] "HEAD / HTTP/1.0" 200 –

10.22.6.238 - - [27/Apr/2010:11:46:04 -0600] "HEAD / HTTP/1.0" 200 –

10.17.8.62 - - [27/Apr/2010:11:46:11 -0600] "POST /webclient/index.php HTTP/1.1" 500 –

 

Arvinder

 

 

On 4/27/2010 9:34 AM, Venkata Pagadala wrote:

 

Mike,

 

Adding the threshold param changes the jboss log to INFO mode according to the documentation. Please let me know if you want me to change it to INFO mode.

 

Also, we installed edu.harvard.i2b2.common prior to installing the PM cell by running the steps you mentioned and everything went fine without any error.

 

I think we followed everything in the same sequence and all the steps as provided in the documentation, still no luck.

 

One more thing, we installed JBOSS on /usr instead of /opt, does the folder matter

 

Our JBOSS_HOME = /usr/jboss-4.2.2.GA

 

 

Thanks,

Venkat

 

 

On 4/26/10 4:39 PM, Arvinder Choudhary wrote:

 

Dear Brian:

 

I am getting one record with the values for the command   SELECT * FROM i2b2pm.PM_HIVE_DATA    in oracle datatbase

 

DOMAIN_ID                                =  i2b2

HELPURL                                = http://www.i2b2.org

DOAMIN_NAME                        = i2b2demo

ENVIRONMENT_CD        = DEVELOPMENT

ACTIVE                                        = 1

STATUS_CD                        = A

 

Rest other fields CHANGE_DATA, ENTRY_DATE and CHANGEBY_CHAR  are empty

 

I have changed the i2b2_config_data.js  file  in the Apache webserver home/htdocs/webclient directory

 

{

urlProxy: "index.php",

urlFramework: "js-i2b2/",

//-------------------------------------------------------------------------------------------

// THESE ARE ALL THE DOMAINS A USER CAN LOGIN TO

lstDomains: [

{ name: "bmidev1",

 domain: "i2b2demo",

 debug: true,

 urlCellPM: "http://bmidev1/i2b2/rest/PMService/"

}

]

//-------------------------------------------------------------------------------------------
}

 

Still getting same alert log

 

here is the Log contents

 

2010-04-26 14:36:25,629 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] Periodic recovery - first pass <Mon, 26 Apr 2010 14:36:25>

2010-04-26 14:36:25,629 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] StatusModule: first pass

2010-04-26 14:36:25,629 DEBUG [com.arjuna.ats.txoj.logging.txojLoggerI18N] [com.arjuna.ats.internal.txoj.recovery.TORecoveryModule_3] - TORecoveryModule - first pass

2010-04-26 14:36:25,630 DEBUG [com.arjuna.ats.jta.logging.loggerI18N] [com.arjuna.ats.internal.jta.recovery.info.firstpass] Local XARecoveryModule - first pass

 

 

Regards

Arvinder

 

 

On 4/26/10 4:22 PM, Brian Wilson wrote:

 

Correction DOMAIN_NAME

 

Brian Wilson

 

 

On 4/26/10 4:21 PM, Brian Wilson wrote:

 

Avinder

 

One possible check you might like to try is to execute the following SQL against your database and check the value of the DOMAIN_FIELD field. It should match the domain value in your i2b2_config_data.js file.

 

SELECT * FROM [i2b2pm].[PM_HIVE_DATA]

 

 

Brian Wilson

 

 

On 4/26/10 3:16 PM, Arvinder Choudhary wrote:

 

We did remove the comma but same error alert while trying to log through webclient

 

Here is the log after the change

 

2010-04-26 13:13:14,916 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] Periodic recovery - first pass <Mon, 26 Apr 2010 13:13:14>
2010-04-26 13:13:14,916 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] StatusModule: first pass
2010-04-26 13:13:14,916 DEBUG [com.arjuna.ats.txoj.logging.txojLoggerI18N] [com.arjuna.ats.internal.txoj.recovery.TORecoveryModule_3] - TORecoveryModule - first pass
2010-04-26 13:13:14,916 DEBUG [com.arjuna.ats.jta.logging.loggerI18N] [com.arjuna.ats.internal.jta.recovery.info.firstpass] Local XARecoveryModule - first pass
2010-04-26 13:13:24,916 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] Periodic recovery - second pass <Mon, 26 Apr 2010 13:13:24>
2010-04-26 13:13:24,916 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] AtomicActionRecoveryModule: Second pass
2010-04-26 13:13:24,917 DEBUG [com.arjuna.ats.txoj.logging.txojLoggerI18N] [com.arjuna.ats.internal.txoj.recovery.TORecoveryModule_6] - TORecoveryModule - second pass
2010-04-26 13:13:24,917 DEBUG [com.arjuna.ats.jta.logging.loggerI18N] [com.arjuna.ats.internal.jta.recovery.info.secondpass] Local XARecoveryModule - second pass

 

Arvinder

 

 

On 4/26/10 2:05 PM, Mike Mendis wrote:

 

Try removing the extra comma in your config file, I colored it as blue, fourth line from the bottom

 

-mike

 

 

On 4/26/10 3:01 PM, Venkata Pagadala wrote:

 

Mike,

 

Here is our i2b2_config_data.js

 

{

urlProxy: "index.php",

urlFramework: "js-i2b2/",

//-------------------------------------------------------------------------------------------

// THESE ARE ALL THE DOMAINS A USER CAN LOGIN TO

lstDomains: [

{ name: "bmidev1",

 domain: "bmid",

 debug: true,

 urlCellPM: "http://bmidev1/i2b2/rest/PMService/"

},

]

//-------------------------------------------------------------------------------------------

}

 

 

Just an FYI...

 

bmid is the SID for Oracle database..

 

This file is in apache webserver under /usr/local/apache2/htdocs/webclient where /usr/local/apache2 is the home directory for apache webserver

 

-Venkat

 

 

On 4/26/10 1:56 PM, Mike Mendis wrote:

 

From the log it appears as if the server never got the request from the client.  On the webclient, what does your i2b2_config_data.js file look like?

 

This file is located in the apache webserver

 

-mike

 

 

On 4/26/10 2:53 PM, Venkata Pagadala wrote:

 

Mike,

 

Sorry about the confusion, we now changed the server log level to DEBUG
when we tried to access the following page is...

 

http://bmidev1/webclient/default.htm

 

We got the following recorded in server.log

 

2010-04-26 12:43:00,709 DEBUG [org.jboss.logging.Log4jService] Installed System.out adapter

2010-04-26 12:43:00,711 DEBUG [org.jboss.logging.Log4jService] Installed System.err adapter

2010-04-26 12:43:58,542 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] Periodic recovery - first pass <Mon, 26 Apr 2010 12:43:58>

2010-04-26 12:43:58,548 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] StatusModule: first pass

2010-04-26 12:43:58,548 DEBUG [com.arjuna.ats.txoj.logging.txojLoggerI18N] [com.arjuna.ats.internal.txoj.recovery.TORecoveryModule_3] - TORecoveryModule - first pass

2010-04-26 12:43:58,549 DEBUG [com.arjuna.ats.jta.logging.loggerI18N] [com.arjuna.ats.internal.jta.recovery.info.firstpass] Local XARecoveryModule - first pass

2010-04-26 12:44:08,549 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] Periodic recovery - second pass <Mon, 26 Apr 2010 12:44:08>

2010-04-26 12:44:08,549 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] AtomicActionRecoveryModule: Second pass

2010-04-26 12:44:08,549 DEBUG [com.arjuna.ats.txoj.logging.txojLoggerI18N] [com.arjuna.ats.internal.txoj.recovery.TORecoveryModule_6] - TORecoveryModule - second pass

2010-04-26 12:44:08,549 DEBUG [com.arjuna.ats.jta.logging.loggerI18N] [com.arjuna.ats.internal.jta.recovery.info.secondpass] Local XARecoveryModule - second pass

2010-04-26 12:46:08,549 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] Periodic recovery - first pass <Mon, 26 Apr 2010 12:46:08>

2010-04-26 12:46:08,550 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] StatusModule: first pass

2010-04-26 12:46:08,550 DEBUG [com.arjuna.ats.txoj.logging.txojLoggerI18N] [com.arjuna.ats.internal.txoj.recovery.TORecoveryModule_3] - TORecoveryModule - first pass

2010-04-26 12:46:08,550 DEBUG [com.arjuna.ats.jta.logging.loggerI18N] [com.arjuna.ats.internal.jta.recovery.info.firstpass] Local XARecoveryModule - first pass

2010-04-26 12:46:18,550 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] Periodic recovery - second pass <Mon, 26 Apr 2010 12:46:18>

2010-04-26 12:46:18,550 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] AtomicActionRecoveryModule: Second pass

2010-04-26 12:46:18,550 DEBUG [com.arjuna.ats.txoj.logging.txojLoggerI18N] [com.arjuna.ats.internal.txoj.recovery.TORecoveryModule_6] - TORecoveryModule - second pass

2010-04-26 12:46:18,551 DEBUG [com.arjuna.ats.jta.logging.loggerI18N] [com.arjuna.ats.internal.jta.recovery.info.secondpass] Local XARecoveryModule - second pass

 

Yes, we did install edu.i2b2.common first before installing the PM cell

 

-Venkat

 

 

On 4/26/10 1:45 PM, Mike Mendis wrote:

 

When you did the install, did you install the edu.i2b2.common prior to installing the PM cell?

 

This error message is kind of a general axis2 error, so it does not pinpoint to an exact problem.

 

-mike

 

 

On 4/26/10 2:39 PM, Venkata Pagadala wrote:

 

Mike,

 

Based on that error are we missing anything on our side with regards to configuration?

 

Thanks for your patience,

 

Venkat

 

 

On 4/26/10 1:34 PM, Arvinder Choudhary wrote:


Mike:

 

We were just inquiring based on the error search as mentioned in our previous email.

 

Arvinder

 

 

On 4/26/10 1:27 PM, Mike Mendis wrote:

 

That appears to be part of the Apache Rampart 1.1 which is a toolkit that provides implementations of the WS-Sec* specifications for Apache Axis2 <http://ws.apache.org/axis2/>  1.1, based on Apache WSS4J <http://ws.apache.org/wss4j/>  1.5.1 and the Apache AXIOM-DOOM 1.2.1 implementation.

 

This toolkit is not needed for the i2b2 server install, and has never been tested with it.  Where did it come from?

 

-mike

 

 

On 4/26/10 2:10 PM, Arvinder Choudhary wrote:

 

Mike:

We did not find the following file

 

/WEB-INF/modules/rampart-1.1.mar

the following Servlet classes were also not found in WEB-INF/classes directory

 

org.apache.axis2.transport.http.AxisRESTServlet

org.apache.axis2.transport.http.AxisAdminServlet

org.apache.axis2.transport.http.AxisServlet

 

Please advice if they are required as we found them in one of the google search ( http://mail-archives.apache.org/mod_mbox/ws-axis-user/200701.mbox/%3CBAY133-DAV15FB639FE706FA49C69466AEBE0@phx.gbl%3E ) based on the server.log error message

 

"ERROR [org.apache.axis2.transport.http.AxisRESTServlet] org.apache.axis2.AxisFault:

I can not find a service for this request to be serviced. Check the WSDL and the request URI; nested exception is:"

 

Arvinder

 

 

On 4/26/10 9:59 AM, Mike Mendis wrote:

 

Ok, so it appears as if the service is setup correctly.  Can you try logging in and monitor your jboss log file.  You can do this by:

 

tail –f /opt/jboss-4.2.2GA/server/default/deploy/log/server.log

 

And send me what is displayed?   This will tell us if it is on the client side or the server side.

 

Thanks

Mike

 

 

On 4/26/10 10:54 AM, Arvinder Choudhary wrote:

 

Mike:

 

Thank you Mike.  I guess than this is not the issue in our case.  But we are still not able to login through Webclient screen and get the same error alert "Your account does not have access to any i2b2 Projects".  Please Advice

 

Regards

 

Arvinder

 

 

On 4/26/2010 10:40 AM, Mike Mendis wrote:

 

The i2b2workbench.properties file is only needed on the client side.  There is no i2b2workbench.properties file on the server side.

 

The Webclient does have a i2b2_config_data.js which is located in the root directory where the index.php is also located.  This should have something like:

 

{

name: "bmidev1",

domain: "****",

urlCellPM: "http://bmidev1/i2b2/rest/PMService/",

allowAnalysis: true,

debug: true

}

 

Where the domain (****) is the name of the domain you defined in the hive.  In the demo data it is i2b2demo.

 

 

Lets turn on jboss log debugging by going to jboss-log4j.conf file in /opt/jboss/server/default/conf

 

1.  Edit $JBOSS_HOME/server/default/conf/jboss-log4j.xml file and add the ‘Threshold’ <param>

 

<appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">

<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>

<param name="File" value="${jboss.server.home.dir}/log/server.log"/>

<param name="Append" value="false"/>

<param name="Threshold" value="INFO"/>

<!-- Rollover at midnight each day --> <param name="DatePattern" value="'.'yyyy-MM-dd"/>

<layout class="org.apache.log4j.PatternLayout">

<!-- The default pattern: Date Priority [Category] Message\n -->

<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> ...

</layout>

</appender>

 

Then try to login in again to see if you get more detailed information.  Also did you install the edu.harvard.i2b2.common prior to install the PM cell?  This includes doing the following:

 

Steps:

 

  1. cd source_directory/edu.harvard.i2b2.common

 

  1. Edit the build.properties file and set jboss.home and axis2.war.name properties.

jboss.home=YOUR_JBOSS_HOME_DIR

axis2.war.name=i2b2.war

 

  1. Run ant clean deploy jboss_pre_deployment_setup

 

 

On 4/26/2010 11:22 AM, Venkata Pagadala wrote:

 

Mike,

 

Thanks for the reply.

 

Yes, we got the error when we tried to go to the page (http://bmidev1/i2b2/rest/PMService) directly from the web browser.

When we listed the services we got exactly the same you mentioned

 

PMService

Service EPR : http://bmidev1/i2b2/services/PMService

Service REST epr : http://bmidev1/i2b2/services/PMService

: http://bmidev1/i2b2/rest/PMService

Service Description: PMService

Service Status: Active

Available Operations

getVersion

getServices

 

Yes we are trying to have our web communication through apache web server.

 

Regarding the other emails

 

-- Location of i2b2.properties file, can you please mention where does the file go for linux SUSE OS?

 

-- In the logs we are getting the following error

 

2010-04-26 08:55:58,365 ERROR [org.apache.axis2.transport.http.AxisRESTServlet] org.apache.axis2.AxisFault: I can not find a service for this request to be serviced. Check the WSDL and the request URI; nested exception is: org.apache.axis2.AxisFault: I can not find a service for this request to be serviced. Check the WSDL and the request URI

 

Thanks again,

Venkat

 

 

On 4/26/2010 9:52 AM, Mike Mendis wrote:

 

If you are going to that page ( http://bmidev1/i2b2/rest/PMService ) directly from a browser, then this message is ok.

 

To verify that the service is setup correctly, goto:

( http://bmidev1/i2b2/services/listServices ) and you should see something like:

 

PMService <http:// bmidev1/i2b2/services/PMService?wsdl>

Service EPR : http:/ bmidev1/i2b2/services/PMService

Service REST epr : http:// bmidev1/i2b2/services/PMService

: http:// bmidev1/i2b2/rest/PMService

 

 

If you don’t see that or it says error or fault, that you will nee to check the jboss log file to see why it did not load correctly.

 

Sorry about the apache jboss confusion.  Are you trying to have all your web communication going through apache webserver?    So that the ajp13 connector will connect the apache webserver to the i2b2 jboss instance?    So that the end user will only need to go through port 80 instead of 8080?   If that is the case,  yes this is a good method to use.  I have been meaning to write up a little doc on doing this.

 

-mike

 

 

On 4/26/10 9:38 AM, Mike Mendis wrote:

 

On the Mac the i2b2workbench.properties file resides:

 

i2b2workbench.app/Contents/MacOS/i2b2workbench.properties

 

On the Windows

 

It resides in the  root directory where the i2b2workbench.exe is.

 

On 4/22/10 4:51 PM, Arvinder Choudhary wrote:

 

Mike:

 

Where does the i2b2.properties file reside.

 

In the client's i2b2.properties file:

I2b2.1=demo,REST,http://webservices:9090/axis2/rest/PMService/

I2b2.2=HarvardDemo,REST,http://services.i2b2.org/PM/rest/PMService/

#I2b2.3=YourSite,REST,http://tomcatHost:tomcatPort/axis2/rest/PMService/

 

Regards

Arvinder

 

 

On 4/21/2010 3:38 PM, Venkata Pagadala wrote:


Mike,

 

We are getting the following error when we tried to call the service with the uri http://bmidev1/i2b2/rest/PMService which is used for login I guess. Can you let us know the reason for this error and also any configuration in the axis should be done for it to work?

 

This XML file does not appear to have any style information associated with it. The document tree is shown below.

 


<soapenv:Fault>

<faultcode/>

-

<faultstring>

I can not find a service for this request to be serviced. Check the WSDL and the request URI; nested exception is: org.apache.axis2.AxisFault: I can not find a service for this request to be serviced. Check the WSDL and the request URI

</faultstring>

<detail/>

</soapenv:Fault>

 

 

Also, in your prior email you mentioned that we need not use the apache webserver then in that case where can we put the webclient folder and also the php code

 

Thanks for your help,

Venkata Pagadala

 

 

On 4/20/2010 5:12 PM, Arvinder Choudhary wrote:

 

Mike:

     This is the pm-ds.xml  file that sits under pm_folder/etc/jboss  directory

<datasources>

 <!-- sample sqlserver PMBootStrapDS  -->

   <local-tx-datasource>

     <jndi-name>PMBootStrapDS_SQLSERVER</jndi-name>

     <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>

     <connection-url>jdbc:sqlserver://localhost:1433</connection-url>

     <user-name>i2b2pm</user-name>

     <password>i2b2pm_pswd</password>

     <metadata>

       <type-mapping>MS SQLSERVER2000</type-mapping>

     </metadata>

   </local-tx-datasource>

 <!-- sample oracle PMBootStrapDS  -->

 <local-tx-datasource>

   <jndi-name>PMBootStrapDS</jndi-name>

     <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>

     <connection-url>jdbc:oracle:thin:@127.0.0.1:1521:bmid</connection-url>

     <user-name>i2b2pm</user-name>

     <password>demouser</password>

   </local-tx-datasource>

</datasources>

and the Copied the webclient folder into the APACHE_HOME/htdocs folder  and made the following changes to the i2b2_config_data.js file

 

{

       urlProxy: "index.php",

       urlFramework: "js-i2b2/",

       //-------------------------------------------------------------------------------------------

       // THESE ARE ALL THE DOMAINS A USER CAN LOGIN TO

       lstDomains: [

               { name: "bmidev1",

                 domain: "bmid",

                 debug: true,

                 urlCellPM: "http://bmidev1/i2b2/rest/PMService/"

               },

               { name: "i2b2.org",

                 domain: "HarvardDemo",

                 debug: true,

                 urlCellPM: "http://webservices.i2b2.org/i2b2/rest/PMService/"

               }

       ]

       //-------------------------------------------------------------------------------------------

}

Am I putting the Webclient folder in the right place.  

 

Arvinder

 

 

On 4/20/2010 4:36 PM, Arvinder Choudhary wrote:

 

Mike:

 

We cleaned the script that you sent and we are getting the below mentioned Info and also the document that I sent you in my earlier email

 

PHP Test

An Example of PHP in Action

The Current Date and Time is:

3:30 PM Tuesday, April 20 2010

 

Arvinder

 

 

On 4/20/10 4:28 PM, Arvinder Choudhary wrote:

 

Dear Mike:

 

I followed the install instructions http://laffers.net/howtos/howto-install-php and Installed php-5.2.13  and also added the line (/usr/local/php/lib/php) to the file php.ini as a include path.

 

Re installed the PM and still getting the same results,  Please Advice

 

Arvinder

 

 

On 4/20/2010 3:32 PM, Mike Mendis wrote:

 

Not sure if php is fully configured,

 

Put the following in a php file called test.php

 

<html>

<head>

<title>PHP Test&amp;lt;/title>

<meta http-equiv="Content-Type" content="text/html; ">

</head>

 

<body>

<h1>PHP Test</h1> &amp;lt;p>

<b>An Example of PHP in Action</b><br />

<?php echo "The Current Date and Time is: <br />";

echo date("g:i A l, F j Y.");?> &amp;lt;/p>

<h2>PHP Information</h2>

<p> <?php phpinfo(); ?> </p>

</body>

</html>

 

 

It should print out the current date.  If not than php is not fully configured.

 

-mike

 

 

On 4/19/10 12:16 PM, Arvinder Choudhary wrote:

 

Mike:

 

I doing a research to find php for download on our Linux SUSE 11 box. On the php.net website it does have binaries for the linux box.

Regards

Arvinder

 

 

On 4/19/2010 11:10 AM, Mike Mendis wrote:


For the standard i2b2 install, the onnection for the mod_jk is not needed to connect the apache web server to the jboss server.

 

The reason is the webclient communicates with web services, and in order to do this, it uses a proxy written in php.   Based on your screen shot for the default port 80.  It appears as if php is not installed.

 

Can you try install php.  I am not sure the install method for SUSE.  But if you goto your default port 80, it should automatically goto the login screen.

 

-mike

 

 

On 4/19/10 11:57 AM, Arvinder Choudhary wrote:

 

Dear Mike:

 

Thank you for your support and help.  I am attaching screenshots and also a screen shot with the port 80.  Since we have made Apache as the web server for this application; so I had installed Mod_jk connector to  connect  Jboss App server with Apache web server.

 

Also please find  4 files required to make the mod_jk work.  They all sit on the apache conf directory

 

  1. Mod_jk.conf
  2. uriworkermap.properties
  3. httpd.conf
  4. workers.properties

 

 

We have

Apache 2.2.15,

Ant 1. 8.0,

Jboss 4.2.2.GA,

Apache Axis2 1.1

Enterprise Oracle Database 10.2.0.4  on Linus SUSE 11.

 

I have uploaded the data as per the instructions. It went fine.

 

Regards

Arvinder Choudhary

 

 

On 4/19/2010 8:27 AM, Mike Mendis wrote:


Arvinder,

Can you resend the screenshot images.

 

Question, A few suggestions, make sure that php is installed.  (yum install php)

 

If you go to port 80 on that machine, do you see the login screen?


-mike

 

 

On 4/16/10 3:54 PM, Arvinder Choudhary wrote:

 

Mike:

 

I think somehow the Apache through default.htm page cannot talk to the oracle database.  Did see anything that I have not covered.   Also do think mod_jk setup between Apache and Jboss has an issue

 

Arvinder

 

 

On 4/14/10 3:14 PM, Arvinder Choudhary wrote:

 

Dear Mike:

 

We were successful in loading data into different schemas in Oracle.   Now while setting up PM cell we got stuck.

 

These are the changes made to pm-ds.xml file in etc/jboss directory under edu.harcard.12b2.pm directory

 

        <local-tx-datasource>

                        <jndi-name>PMBootStrapDS</jndi-name>

                                <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>

                                <connection-url>jdbc:oracle:thin:@127.0.0.1:1521:bmid</connection-url>

                                <user-name>i2b2pm</user-name>

                                <password>demouser</password>

        </local-tx-datasource>

 

</datasources>

In the install webclient section.  Document says to deploy it under web server (httpd) directory.  So I went ahead and put the webclient folder in the /usr/httpd-2.2.15 directory of the Apache Web server.  Changed the following in  i2b2_config_data.js file.

 

 

lstDomains: [

{ name: "bmidev1",

 domain: "i2b2demo",

 debug: true,

 urlCellPM: "http://127.0.0.1:9090/i2b2/services/PMService/"

},

{ name: "i2b2.org",

 domain: "HarvardDemo",

 debug: true,

 urlCellPM: "http://webservices.i2b2.org/i2b2/rest/PMService/"

}

]

when trying to login through webclient, I got an error.

 

I am sending you 3 snap shots of the screen.   (Also you will notice that we do not have PM in the directory path but have i2b2  in the PM Services web page snap shot under PMServices Tab).

 

Please help  us, where are we making the error.  Did we miss on any configuration setting  etc.  Also  Services page displays on IE and does not work on Mozilla firefox.

 

Regards

Arvinder

 

 


 

 

i2b2 1.4 VM Image – Using SQL instead of Oracle [4-19-2010]

 

On 4/19/10 at 6:21 AM, Mike Mendis wrote:


Jian,

I assume you are referring to the switching the vmImage from using oracle to sql server. The easiest way, which I do need to add to the documentation is:
In the /opt/jboss/server/default/deploy:


Change all *
ds* files from localhost oracle to your new database.  These include crc-ds.xml, crc-jms-ds.xml, ont-ds.xml, pm-ds.xml and work-ds.xml

 

Also in the /opt/jboss/server/default/conf/crcapp/

 

Change the CRCApplicationContentext.xml from Oracle to your new database.

 


Then
restart the jboss /etc/init.d/jboss/stop and /etc/init.d/jboss/start


-mike

 

 On 4/17/10 12:27 PM, Jian Yang wrote:

 

Mike:

 

It was nice to talk to you during the I2b2 workshop!

 

I just wanna get some help from you, I just downloaded I2b2 v1.4 vm image, and set it up running, and instead of using the Oracle express database, I need it to be connecting to a SQL Server database, do you have instruction on how to do that?  I checked the documentation but could not find it.

 

Your help is greatly appreciated.

 

Thanks

Jian Yang

 

 

 


 

 

1.4 Final [4-19-2010]

 

On 4/19/10 9:32 AM, Mike Mendis wrote:

 

The best location for the final 1.4 source is: https://www.i2b2.org/software/index.html select the i2b2 source and download i2b2core-src-14.zip

In the AUG section is where you can find the RC1 and RC2, which will be labeled like that on the filename.

Also now that 1.5 RC1 is almost done, will take a look at this webclient roles not changing properly.  

-mike

 

 

On 4/15/10 12:11 PM, Brian Eliason wrote:


Thanks for checking on this.  Where is the best place to download the i2b2 1.4 final source code?  Or to verify which version I’m working with?  Is there any master file that says RC1 or RC2 or final?
 
I know of one person that seems to have a good install (they grabbed it from i2b2.org/software/source code), but most others I’ve talked with have expressed the same symptoms as me (roles not changing within the project for a given user).
 
I’m interested to hear a report of your findings.
 
Thanks,
Brian Eliason

 

 

On 4/12/10 8:15 AM, Mike Mendis wrote:

 

I have recently noticed a few issues with the roles on the admin tool.  We are planning on releasing 1.5 RC1 in the beginning of this week.  Let me take a look at the roles and is what I can find.

Thanks
Mike

 

On 4/9/10 12:10 PM, Brian Eliason wrote:


Mike,
 
I know you’re busy.  I just want to know if the current 1.4 release will update/add roles within the ajax PM.  I’ve installed the software through the 1.4 RCs on to current final and haven’t been able to get it to work yet (the SQL is good, just an issue with the logic).
 
In the release notes/known issues (only found under the RC download folder, NOT on the final download area), it mentions this is an issue with this, but the final release doesn’t have any release notes/known issues.  Could you please let me know, either way, if the ajax PM works for adding/updating roles?
 
Thanks,
Brian Eliason

 

 

On 4/6/10 4:03 PM, Brian Eliason wrote:

 

Hi Mike,
 
I’ve installed the final 1.4 version (from software link of i2b2.org) and don’t see any errors coming through.  However, I still can’t seem to add roles from the ajax PM.  As I scour through the i2b2 log file, I’m seeing the errors and that there is a key constraint being violated; it looks as if it is trying to re-insert the roles (even those already found within the PM_PROJECT_USER_ROLES table).  Can you let me know how I might be able to get around this?  Perhaps there’s another release that will fix this?  I’m anxious to hear your thoughts.
 
Thanks,
Brian Eliason

 

 

 


 

 

Concept Paths and HOM [4-7-2010]

 

On 4/7/10 4:52 PM, Rob Wynden wrote:

 

Hello,

 

  1. I am wondering if i2b2 provides any service to loading data or do we need to use ETL tools to load data ourselves?

 

No the i2b2 grant did not include ETL.  Filling that gap is the purpose of the HOM UETL project.  We will have a live demo of that UETL system on the next HOM Concall at 11am Tuesday Pacific.

 

  1. And how can we determine the concept paths? Will the health ontology mapper (HOM) can help on this? Say I have 5 concepts co- responding to patient A, and will HOM able to determine the concept path for me?

 

Yes, the UETL will manufacture concept paths based on the source schema.  Then the HOM instance map interpreter can transform those paths into standard ontologies.  The first example of that is the RxNorm script that can normalize formulary records to the RxNorm reference standard.  That script can be run on live formulary data and we are working through a demonstration of that as part of the CICTR grant over the next 2 or 3 weeks.

 

  1. Also, will HOM able to do batch processing? Like process 1000+ concepts at one time?

 

Yes.  Right now you run HOM manually.  But Prakash Lakshminarayanan is working as we speak on integration with an agent based framework that will allow us to run the maps automatically in the background and that will also allow maps to interact with each other when needed as well.

 

  1. I noticed from the installation document that we need to input the "sourceConceptPath" in the RxNormMapper.xml, is that means the path needs to be provided from users before the HOM starts working?

 

Yes.  But that is changing:  Right now Hari Rekapalli is extending the SHRIMP terminology (from Harvard SHRINE) workbench to allow it to specify the local paths that HOM will to operate on.  Once that work is done then you will be able to run HOM maps without the requirement to hand edit the source concept paths.

 

Regards,

Rob Wynden - UCSF

 

 

On 4/7/10 1:16 PM, "Vincent" <inhoue@gmail.com> wrote:

 

Hi all,

 

I have couple of questions related to the HOM needs some insights:

 

  1. I am wondering if i2b2 provides any service to loading data or do we need to use ETL tools to load data ourselves?

 

  1. And how can we determine the concept paths? Will the health ontology mapper (HOM) can help on this? Say I have 5 concepts co- responding to patient A, and will HOM able to determine the concept path for me?

 

  1. Also, will HOM able to do batch processing? Like process 1000+ concepts at one time?

 

  1. I noticed from the installation document that we need to input the "sourceConceptPath" in the RxNormMapper.xml, is that means the path needs to be provided from users before the HOM starts working?

 

Thanks,

Vince.

 

 

 


 

 

RxNorm [3-29-2010]

 

On 3/29/10 2:11 PM, Rob Wynden wrote:

 

Hello Vojtech,

 

We would be happy to.  The download, source and documentation are all available on:

http://www.ontomapper.org.

 

HOM is under BSD license so it won't cost you anything.

I got approval for the BSD license and it should be posted on that same site later today.

 

But if you register for the site then you can download and try it out right now.  Prakash will help if you have any questions.

 

Regards,

Rob Wynden

 

 

On 3/29/10 10:51 AM, Vojtech Huser, MD wrote:

 

Dear AUG members,

 

We have implemented i2b2 at our organization and we are looking at feasibility of using SHRINE for integrating data from two institutions within our CTSA.

 

SHRINE sites have agreed on set of terminologies and RxNorm is used for drugs.

 

We would like to load RxNorm terminology into our i2b2 concept table.

 

Would any of the members of the SHRINE project willing to share with us the RxNorm SQL insert script for loading RxNorm into i2b2 ontology layer?

 

Vojtech

 

 

I would recommend that we switch to a community support model for the databases.

Rob

 

 

 


 

 

i2b2 V1.4 on MySQL [3-29-2010]

 

On 3/24/10 7:00 AM, Shawn Murphy wrote:

 

It would be difficult for us to support, each database flavor has unique ways of performing query optimization and handling stored procedures that needs to be accounted for, and MySQL did not scale well with large tables having multiple indexes when we tested it several years ago.

 

 

On 3/23/10 1:54 PM, Rob Wynden wrote:

 

I think that it might be helpful to test these releases on 4 databases actually ... Not just Oracle and SQL Server... We should add Sybase IQ and MySQL.

Rob Wynden

 

 

On 3/23/10 10:36 AM, Mike Mendis wrote:

 

Sorry, but the 1.4 current only works with Oracle and MS SqlServer.

 

-mike

 

 

On 3/23/10 1:33 PM, Dipendra Kaur wrote:

 

Does I2b2 V1.4 be installed with MySQL database?

 

We are planning on moving to Linux/MySQL. The I2b2 V1.4 installation guides talk of Oracle and MS SqlServer only.

 

Thanks,

 

Deep

 

 

 


 

 

An Install Script for i2b2 [3-29-2010]

 

On 3/29/10 11:07 AM, Sebastian Mate wrote:

 

Hello everybody,

 

As some of you know, it has always been a tradition for me to create scripts for everything unhandy...

 

I have compiled a small script that installs i2b2 1.4 including the Boston Demodata on Ubuntu 9.10 without any user interaction. This is a very simple script which gives you almost no options, but we are working on better tools to automatically create i2b2 projects, etc. They will be needed very soon when we update our 1.3 to 1.4. We will make them available for you.

 

Please note that this creates a "reference" installation by strictly following the i2b2 documentation. There are no German modifications included this time. ;-)

 

The file can be found in the Google group: http://sites.google.com/a/i2b2aug.org/discussions/Home/release-discussions-postings/smallscriptfor14

 

I will post future versions there, not in this mailing list.

 

I really hope this might be helpful for those who still have trouble with 1.4. I think the final 1.4 is GREAT, there were absolutely no problems during install.

 

Sebastian

 

PS: Feedback is - as always - highly appreciated.

 

 

 


 

 

CRC Install [3-29-2010]

 

Hi Mike,

 

Please see if you can find something wrong in this CRCApplicationContext.xml copied below (pswd obfuscated) in relation to the jboss server log error. Thank You for your help.

 

Error: [org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$ConstructorResolverAdapter] Ignoring constructor [public java.lang.String(byte[],int,int,int)] of bean 'defaultSetfinderResultType': Error creating bean with name 'defaultSetfinderResultType' defined in URL [file:C:/i2b21_4/jboss/server/default/conf/crcapp/CRCApplicationContext.xml]: Unsatisfied dependency expressed through constructor argument with index 0 of type [byte[]]: Ambiguous constructor argument types - did you specify the correct bean references as constructor arguments?

 

 

File: C:\i2b21_4\jboss\server\default\conf\crcapp\ CRCApplicationContext.xml

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

 

<!--

- Application context definition for i2b2 with spring jdbc template.

-->

<beans>

<!--

<bean id="querytool_properties" class="org.spf.beans.factory.config.PropertiesFactoryBean">

<property name="location" value="queryprocessor.properties"/>

</bean>

<bean id="clobType" class="edu.harvard.i2b2.crc.datavo.pdo.ClobType">

</bean>

-->

 

<bean id="jaxbPackage" class="org.springframework.beans.factory.config.ListFactoryBean">

<property name="sourceList">

<list>

<value>edu.harvard.i2b2.crc.datavo.i2b2message</value>

<value>edu.harvard.i2b2.crc.datavo.pdo</value>

<value>edu.harvard.i2b2.crc.datavo.pdo.query</value>

<value>edu.harvard.i2b2.crc.datavo.setfinder.query</value>

<value>edu.harvard.i2b2.crc.datavo.pm</value>

<value>edu.harvard.i2b2.crc.datavo.ontology</value>

<value>edu.harvard.i2b2.crc.datavo.i2b2result</value>

</list>

</property>

</bean>

 

<bean id="appType" class="edu.harvard.i2b2.crc.datavo.i2b2message.ApplicationType">

<property name="applicationName" value="edu.harvard.i2b2.crc"/>

<property name="applicationVersion" value="1.4"/>

</bean>

 

 

<bean id="message_header" class="edu.harvard.i2b2.crc.datavo.i2b2message.MessageHeaderType">

<property name="sendingApplication" ref="appType"/>

</bean>

<bean id="TestDataSourceLookup" class="edu.harvard.i2b2.crc.datavo.db.DataSourceLookup">

<property name="dataSource" value="TestDataSource"/>

<property name="serverType" value="MS SQLSERVER2000"/>

<property name="fullSchema" value="asthma"/>

</bean>

 

<bean id="TestDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>

<property name="url" value="jdbc:sqlserver://localhost:1433"/>

<property name="username" value="i2b2demodata"/>

<property name="password" value="mypass"/>

</bean>

 

<bean id="CRCDataSourceLookup" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>

<property name="url" value="jdbc:sqlserver://localhost:1433;databasename=i2b2hive"/>

<property name="username" value="i2b2hive"/>

<property name="password" value=" mypass "/>

        </bean>

 

<bean name="defaultSetfinderResultType" class="java.lang.String">

<constructor-arg  index="0" type="java.lang.String"><value>PATIENTSET</value></constructor-arg>

</bean>

 

<bean name="setFinderResultGeneratorMap" class="org.springframework.beans.factory.config.MapFactoryBean">

<property name="sourceMap">

<map>

<entry>

<key>

<value>PATIENTSET</value>

</key>

<value>edu.harvard.i2b2.crc.dao.setfinder.QueryResultPatientSetGenerator</value>  

</entry>

<entry>

<key>

<value>PATIENT_COUNT_XML</value>

</key>

<value>edu.harvard.i2b2.crc.dao.setfinder.QueryResultPatientCountGenerator</value>

</entry>

<entry>

<key>

<value>PATIENT_GENDER_COUNT_XML</value>

</key>

<value>edu.harvard.i2b2.crc.dao.setfinder.QueryResultGenerator</value>

</entry>

<entry>

<key>

<value>PATIENT_RACE_COUNT_XML</value>

</key>

<value>edu.harvard.i2b2.crc.dao.setfinder.QueryResultGenerator</value>

</entry>

<entry>

<key>

<value>PATIENT_VITALSTATUS_COUNT_XML</value>

</key>

<value>edu.harvard.i2b2.crc.dao.setfinder.QueryResultGenerator</value>

</entry>

<entry>

<key>

<value>PATIENT_MORTALITY_COUNT_XML</value>

</key>

<value>edu.harvard.i2b2.crc.dao.setfinder.QueryResultGenerator</value>

</entry>

<entry>

<key>

<value>PATIENT_AGE_COUNT_XML</value>

</key>

<value>edu.harvard.i2b2.crc.dao.setfinder.QueryResultGenerator</value>

</entry>

</map>

</property>

</bean>

</beans>

 

 

Ok, let’s jump back to 1 & 2.

 

Can you look at the jboss log /opt/jboss/server/default/log/server.log

 

And see if you have any 'ERROR', and we can see why you are getting a 'Response from the server could not be understood'

 

Also on the client, on the timeline plugin can you click on the red&green icon which will bring up a list of the recent XML messages.  Is there one that failed, if so can you copy/paste it.

 

Thanks

mike

 

 

On 3/29/10 2:11 PM, Dipendra Kaur wrote:

 

Hi Mike, Thanks for your reply.

 

I built the server component, did not use VM Image.

 

The i2b2 has admin and data roles (Admin, user, manager, Data_Deid, Data_Lds, Data_agg, Data_obfsc, Data_prot).

 

For the new user, it does not save updates if I add any management roles.

 

Thanks,

 

Deep

 

 

 


 

 

i2b2 V1.4 [3-29-2010]

 

On 3/29/10 1:59 PM, Mike Mendis wrote:

 

Hi Deep,

 

1&2) Are you running from within the VM image or did you build the server component yourself?

 

3) We are working on getting a more detailed documentation for the PM, but in the meantime, try selecting a management role also, those include (User, ADMIN, or manager) with your data track (Data_Deid, Data_Lds, Data_agg, Data_obfsc)

 

-mike

 

 

On 3/29/10 1:48 PM, Dipendra Kaur wrote:

 

Hello All,

 

I recently installed i2b2 V1.4 and trying to familiarize myself with the analysis view on the workbench and user management. I am working with demodata on i2b2demo project. I have a few questions, I will appreciate your help.

 

Workbench questions:

 

I login as i2b2admin.

 

1. When I run a query 'Get everyone', I get 133 patients returned, but I also get a dialogue box that says "Response from the server could not be understood, you may wish to retry your last action". Please let me know why this happens. It happens every time I run this query.

 

2. When I run a query 'Asthma' with all the options checked on the analysis types (timeline, Age breakdown, Race breakdown, Vital status breakdown, Gender breakdown, Number of patients and Patient list), I get 0 patients returned, while if I uncheck all the above analysis types except timeline, number of patients and patient list, I get 133 patients returned. Why that difference in patients returned on the same query?

 

3. The graphical analyses only shows me number of patients graph only. How can I enable graphs for other analyses types?

 

 

User Management questions:

 

4. I login as i2b2admin. I tried to create new users using the webclient-Admin tab. I first created a user on the hive using 'Manage Users'; Then I created that same user on i2b2demo and assigned some roles (Data_Deid, Data_Lds, Data_agg, Data_obfsc); Save; Save Updates. The user got created but if I go back to assign 'User' role to this new user it keeps going back to the roles assigned earlier, the 'User' role doesn't get saved. Please let me know if there is a detailed documentation in user management on i2b2 V1.4.

 

Thanks for all your help.

 

Deep

 

 

 


 

 

Using i2b2 as a Disease Registry [3-21-2010]

 

Marc,

 

Thanks very much.  This is very helpful.

 

 

On 3/21/10 11:41 PM, Marc Natter wrote:

 

Hi Michael,

 

Happy to discuss. We have two registries in active development, JRA=Juvenile Rheumatoid Arthritis (actually covering all pediatric rheumatic diseases, target is to have 20,000 patients in it in 18 months) and a Harvard-wide registry in Inflammatory Bowel Disease.

 

We’ll be working on a lot of these query/tracking tools for pulling specific patients out by identifier. We’re coming up with IRB-friendly solutions to the unique-identifier problem within the scope of our project but are simplifying at the moment by coordinating issuance of a unique subject identifier across all 60 sites.

 

Shawn – haven’t actually looked at CAPS before, but interesting and I’ll take a closer look too. We were planning on what I think will be a lighter-weight app and interface that will be GPP pluggable/friendly, but haven’t had time to get past the conceptual phase for now…

 

- Marc

 

 

On 3/20/10 10:10 PM, Michael Kamerick wrote:

 

jra=joint replacement, by any chance?  That is an immediate opportunity for us.

 

In any case, I would like to discuss this if possible.

 

Marc, do you have any time Monday am?

 

 

On 3/20/10 5:23 PM, Isaac Kohane wrote:

 

Marc Natter is using i2b2
For a 60 site jra registry

He can fill you in

 

On Mar 20, 2010 7:43 AM, Shawn Murphy wrote:

 

Hi Michael,

 

The mappings of patients (and account numbers) to (encrypted) identifiers is maintained in the patient_mapping and encounter_mapping tables.  This is how patients are uniquely identified in i2b2.  There is no automated service currently available with i2b2 to resolve patients based upon demographics, etc. (although they exist in open source, such as Sun java CAPS at http://www.sun.com/solutions/landing/industry/healthcare/ihe_mpi/ihe_javacaps.pdf. Although I believe this is done manually in most registries.

 

Thanks,

Shawn.

 

 

On 3/19/10 7:42 PM, Michael Kamerick wrote:

 

Is anyone aware of i2b2 being used as a disease registry rather than as a clinical research db?

I’m not sure what all the distinctions would be, but one that comes to mind would be an effective Master/Patient index.  In state mandated registries, patients have to be indentified (and uniquely so.)

 

 

 


 

 

Pointing to Another Database from the Virtual Machine [3-22-2010]

 

On the topic of community experience, I had meant to post an update on our 1.4 VM installation issue, which Vojtech had mentioned during the AUG meeting a few weeks ago.  Thanks to Mike M. for confirming a few suspicions which pointed us in the right direction.  Sadly, this was something I ran into with the 1.3 VM, never documented (shame on me!) and completely forgot about.  Hopefully this can be of use to others in the future (although I'm sorry it doesn't address Deep's issue).

 

SETUP:

VMWare server running on Windows Server 2008, VM NIC set to Bridged, and assigned a static IP address.

 

SYMPTOMS:

Unable to log in to the i2b2 web client and workbench.

 

Reading the JBOSS logs uncovered the following exception:

2010-03-02 02:11:28,957 WARN  [org.jboss.resource.connectionmanager.JBossManagedConnectionPool] Throwable while attempting to get a new connection: null org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (java.sql.SQLException: Listener refused the connection with the following error:

ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was:

localhost:1521:xe

)

       at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:179)

       at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConnectionPool.java:577)

 

SOLUTION:

Change the Oracle tnsnames.ora and listener.ora to use the static IP address instead of localhost.  Make similar changes in all i2b2 configuration files.  Restart Oracle listener and JBOSS.

 

 

 


 

 

Using Active Directory in Project Management Cell  [3-22-2010]

 

On 3/15/10 1:59 PM, Phillip Reeder wrote:

 

I’ve taken a quick  look into the account management of 1.4 and here is what I’ve found.

 

They use jcifs to authenticate to active directory so if you want to use a windows AD,  you can just change a few settings to enable that.  From what I’ve read, you should, in theory be able to use jcifs to use LDAP as well, but I haven’t tried it yet.

 

 

From Mike Mendis, here are the parameters you would need to set to use AD authentication:

 

We are still woking on the documentation, but if you set a param to:
Param_name_cd                   VALUE
authentication_method       NTLM
domain                                    {Your pdc domain}
domain_controller               {Your ip/host of your domain controller)

You can assign a single user to use ADC  by adding these 3 params to that specific user’s param or if you set a hive_param than the all users use ADC/       

 

If you want to go more advanced, you will want to modify the PM Cell.  The PM Cell’s ServicesHandler.java file appears to handle the authentication using a SmbSession.logon function.

 

Hope that helps.  If you find more information,  please let me know.

 

Phillip

 

 

 


 

 

i2b2 User Database  [3-15-2010]

 

On 3/15/10 12:24 PM, Dipendra Kaur wrote:

 

Hello All,

 

I would like to know if there is any documentation on how i2b2 does user account management. We would like to integrate it with our custom user management utility that will be used to manage users for various resources within our domain.

 

Thanks

 

 

 


 

 

Healthflow Info  [3-22-2010]

 

On 3/11/10 3:28 PM, Nojtech Huser, MD PhD wrote:

 

Here is the info on HealthFlow

http://healthcareworkflow.wordpress.com/2010/03/11/healthflow-and-i2b2/

 

I will have a 15 min presentation on HealthFlow on Saturday (CRI summit). If you are not staying, slides will be posted on my LinkedIn profile.

Also at AMIA NOW – I will present a 1 hour workshop on workflow technology  (which is very relevant to HealthFlow).

 

Vojtech