OHDSI Home | Forums | Wiki | Github

Developing customized analytics using OMOP

Hi Team,

Other than, the rich set of displays provided in Github, anyone had used OMOP CDM to develop organizational specific customized analytics displays? If you have created analytic displays for your organization, is it comparatively faster to create using OMOP vs other CDMs or CDISC model?

Please share your thoughts.


Hi @priagopal, could you share why you think developing an analytical tool might be faster/slower different data models? i.e. what are your current considerations?

A big benefit of OMOP CDM is the large number of open source analysis packages for observational health research that you can reuse for your custom analytics.

Hi Maxim,

There are use cases where we have to create displays that are more specific for certain inference analysis. Some of our team members feel that, since OMOP is a very normalized structure, it will take much longer to create customized analytical displays.

Based on what I have seen so far, I don’t think, it will take longer to create analytical displays using OMOP than using a de-normalized custom data model. I just wanted to see, if there are any experience within the community with this question.

If you have any insights, please share


When you talk about creating a display, do you mean the process of developing the analysis computer code or running the analysis? And what programming language does your team typically use?

With regards to developing; there you can leverage the existing OHDSI packages, like CohortMethod for effect estimation. If you are familiar with R and SQL, and with some training that multiple SMEs in Europe can offer, you should be able to use these packages for your own studies.

With regard to running the analysis; most of the analysis logic is in SQL and is done at the database level (e.g. selection of cohorts). This is relatively fast, but might require database tuning to optimise performance for your environment specs (memory/processors). Also, most OHDSI packages can be run in parallel mode to use all the available processor cores/threads.