Giter VIP home page Giter VIP logo

thebookofohdsi's People

Contributors

abedtashh avatar anthonysena avatar arnaudmiribel avatar cgreich avatar chandryou avatar clairblacketer avatar davidmadigan avatar djb2188 avatar fdefalco avatar graywh avatar jamesswiggins avatar jduke99 avatar jreps avatar keesvanbochove avatar kmkostka avatar msuchard avatar mustafaascha avatar pbr6cornell avatar prattn avatar prijnbeek avatar rwpark99 avatar s1lvester avatar schuemie avatar scossin avatar vojtechhuser avatar wibeasley avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

thebookofohdsi's Issues

METADATA section (in ETL chapter or elsewhere?)

the ETL chapter may discuss some relevant METADATA that should be created.

e.g., the CDM_SOURCE table
what version of vocab was used
short name for the dataset
how many patients were deleted (missing year of birth)

Line 432 of PatientLevelPrediction chapter

In the line 432 of PatientLevelPrediction chapter,

  • Measurement: Construct covariates for each measurement concept ID and time interval selected and if a patient has the concept ID recorded during the specified time interval prior to the cohort start date in the measurement table, the covariate value is 1, otherwise 0.
  • Measurement Value: Construct covariates for each measurement concept ID with a value and time interval selected and if a patient has the concept ID recorded during the specified time interval prior to the cohort start date in the measurement table, the covariate value is the measurement value, otherwise 0.

To my knowledge, the measurement value is 'continuous value' not a binary value. How do you think @PRijnbeek @jreps @schuemie ?

Exercises?

The patient-level prediction chapter draft currently doesn't have any exercises . Do we think chapters should have those, for example to be used in classroom settings?

@PRijnbeek ?

"Lauren's story" link outdated?

"Lauren's story" link in section 4.3.1 now just redirects to the main Endometriosis UK front page. Seems it's no longer anywhere on their website.

discrepancy in montherapy query

For the mono-therapy query in the cohort query, this is using the drug_exposure table rather than the drug_era table. The problem with using the drug exposure table directly is that it will exclude individuals who happen to have 2 records that provide exact same drug. It seems like this would need to be collapsed, and that's what the drug_era table does. The generated SQL uses the drug_era table when computing this particular condition.

Add json files to create the examples in the book

I suggest to add json files (or link to json files) to help with the ATLAS examples (cohorts, characterization, pathways, incidence and more).
In the current status, if I want to reproduce the pathway analysis examples of first line treatment for hypertension that is given in the book (Chapter 11.9), I need to define many concept sets and cohorts. Or I need to look for one that was created in the ATLAS-demo and make sure that it corresponds the description which is not a trivial task.

I would like to contribute, but I'm not sure what would be the best option. I thought of severals:

  1. Link to (or give the id of) the example in ATLAS-demo. The limitation - If someone change the example on the web if it is not locked.
  2. Create a json file and add as plain text to the book of OHDSI
  3. Create a json file and put a link in the Book. Q: Where to store the link? Under books's files (e.g. extras folder) or external location (personal repo?).
  4. Create a script that load a json file to the ATLAS using WebAPI. Limitation - I'm not sure if it's fully implemented for characterization, PLP etc., or it is only support cohort and concept sets upload.

Any suggestions?

Allow book readers to comment and ask questions or use github smartly for that

It would be super cool to have a platform, where book readers can annotate book sections with

  1. comments
  2. questions that arise

That would allow improving the books.
They can file an issue in github but that is a lot of steps.

Or, OK, use github for it but have tags for each chapter or chapter section so that they are easy to find when refresh of chapter is being authored.

http://howoften.org error 504

Because of the privacy-sensitive nature of healthcare data, fully open, comprehensive patient-level datasets are typically not available. However, it is possible to leverage OMOP mapped datasets to publish important aggregated data and results sets, such as the earlier mentioned http://howoften.org and other public result sets that are published to http://data.ohdsi.org. Also, the OHDSI community provides simulated datasets such as SynPUF for testing and development purposes, and the OHDSI Research Network (see \@ref(NetworkResearch)) can be leveraged to run studies in a network of available datasources that have mapped their data to OMOP. In order to make the mapping between the source data and the OMOP CDM transparent, it is encouraged for data sources to re-use the OHDSI ETL or 'mapping' tools and publish their mapping code as open source as well.

http://howoften.org is redirected to http://www.ohdsi.org/web/howoften/

config: Object { method: "GET", jsonpCallbackParam: "callback", url: "/seir_api/drug_list", … } ​data: "<html><body><h1>504 Gateway Time-out</h1>\nThe server didn't respond in time.\n</body></html>\n\n" ​headers: function xd(d) ​status: 504 ​statusText: "Gateway Time-out" ​xhrStatus: "complete" seir.js:18621:29

question about / 10.7.1 Exposure cohort

Hello. I was just scanning the chapter on SQL and was looking at 10.7.1 Exposure cohort. There are two discrepancies.

First, the text below says We take the first drug exposure per person but in fact, the SQL does not do exactly this -- it constructs a synthetic structure having the minimal begin and minimal dates for the given person that match the concept criteria. Now, this might be a case if exposures do not intersect.

Second, the SQL here doesn't do what the corresponding auto-generated SQL does. The auto-generated SQL for drug exposure criteria handles the possibility of a NULL end-date,
COALESCE(C.drug_exposure_end_date, (C.drug_exposure_start_date + 1*INTERVAL'1 day')), it also has slightly different logic, it ensures the end_date is within the observation period. This may not be relevant.

conditioned Cox regression after PS matching in the example

@schuemie

In the chapter 12. PLE, the example shows the conditioned Cox regression after PS matching
(PS matching in Figure 12.14 and Conditioned Cox regression in Fig 12.15)
Wouldn't it better to show 'Unconditioned Cox regression after PS matching' or 'Conditioned Cox regression after PS stratification'?

I know current ATLAS doesn't support 'unconditioned Cox regression' setting (I don't know the reason why I cannot set 'unconditioned Cox' in current ATLAS)

Do we need to modify fig 5.6?

In the Figure 5.6, the caption denotes that "Atrial fibrillation" is the main concept to be illustrate. However, "Atrial fibrillation" is denoted as [Descendant] and "Fibrillation" as [Concepts] in the figure.

To fix it,
Concepts to Atrial fibrillation; Descendant to Controlled atrial fibrillation ...

perhaps use drug_era for exposure cohort

For the exposure cohort consider using drug_era rather than occurrence? I suggest this since a bulk of this query is focused on normalizing for overlapping medications, which is something that drug_era does already (it is some sort of calculated table, no?). In particular, even as written, with overlapping drug_exposures, this query is now going to grab which ever end_date happens to be first...

Adding a chapter on NLP to the book of OHDSI

We are planning to add a chapter on NLP to the book of OHDSI. This is to start a discussion to know your thoughts in general, and comments on the content and specific topics to include.
[Posted on behalf of Hua Xu - OHDSI NLP WG lead]

Add hypothes.is to the Book Of Ohdsi website so anyone can annotate and comment on the book

Hypothes.is can add interactivity to a book created with Rmarkdown. Readers would be able to ask questions, suggest edits, and make comments all in their web browser.

Here are examples of Rmarkdown books that uses hypothesis.is:

Here is some documentation about how to add this to a book: https://www.crumplab.com/OER_bookdown/hypothes-is-1.html

This functionality might make it easier for more people in the community who are not familiar with Github and Rmarkdown to comment and suggest edits or highlight places for clarification.

Table 4.6 mistake ?

Hi

OHDSI newbie here. I am reading the doc and think there might be a mistake in table 4.6:

Column name Value Explanation
ADMITTED_FROM_ CONCEPT_ID 0 If known, this is contains a Concept representing where the patient was admitted from. This concept should have the domain "Visit". For example, if the patient were admitted to the hospital from home it would contain 8536 ("Home").
ADMITTED_FROM_ SOURCE_CONCEPT_ID NULL This is the value from the source that represents where the patient was admitted from. Using the above example, this would be "home".

Unless I got everything wrong, shouldn't it be ADMITTED_FROM_ SOURCE_VALUE instead of CONCEPT_ID ?

Also I spotted this possible mistake because the example mixes "NULL" and "0" for fields that are supposed to be ID's. Is there a reason why the value given in the examples is sometimes NULL and sometimes 0 ?

thanks
Thomas

question about fig 5.6

In fig 5.6, Fibrillation is represented as a child of Supraventricular arrhythmia

But, when you search for Fibrillation in ATLAS, you can find it is not.

The CDM v6 contains 15 Clinical Event tables (not 16 Clinical Event Table)?

The CDM contains 16 Clinical Event tables, 10 Vocabulary tables, 2 metadata tables, 4 health system data tables, 2 health economics data tables, 3 standardized derived elements, and 2 Results schema tables. These tables are fully specified in the CDM Wiki.[^cdmWikiUrl1]

I count 15 Clinical Event Tables, not 16!! Where are they coming from?
The rest is fine!

Figure 4.1: CDM version 6.0:

An overview of all the tables in the CDM is provided in Figure \@ref(fig:cdmDiagram). \index{Common Data Model!data model diagram}
```{r cdmDiagram, fig.cap="Overview of all tables in the CDM version 6.0. Note that not all relationships between tables are shown.",echo=FALSE, out.width="100%"}
knitr::include_graphics("images/CommonDataModel/cdmDiagram.png")

Add chapter on Broadsea

Add a chapter on Broadsea, to help new sites understand best practices around setting up OHDSI tool stack.

multi-language support

for example how to translate contents into chinese ,spanish?
is the best practise to fork another repo?
since the content is continuing to change

CONDITION_STATUS_ CONCEPT_ID description

|CONDITION_STATUS_ CONCEPT_ID|0|If known, the this tells the circumstance and . For example, a condition could be an admitting diagnosis, in which case the concept ID [4203942](http://athena.ohdsi.org/search-terms/terms/4203942) was used.|

The first sentence of the "CONDITION_STATUS_ CONCEPT_ID" description is incomplete : "If known, the this tells the circumstance and . "

Need chapters about mapping, but not sure where

Right now, we have a chapter about Usagi. That needs to be complemented with specific mapping processes we developed. Maybe like this:

Mapping and QA of codes to Standard Concepts

  • Mapping codes locally versus through the OHDSI Standard Vocabularies
  • Usagi
  • Systematic mapping of Drug codes
  • Systematic mapping of Condition codes
  • Systematic mapping of Procedure codes
  • Systematic mapping of other codes

Thoughts

Chapter 13 - PLE Edits

Just a couple of minor edits and suggestions as I read through the PLE chapter:

  • Sub-chapters 13.3 and 13.4 should be titled 'Implementing....' or 'Implementation of.....'not just 'Implementation.....'

  • I would be inclined to make the descriptive section (section 13.1) on propensity scores a sub-chapter (but beware that 13.4.4 is already a sub-header for propensity scores)

  • Having been part of the PLE workgroup at the OHDSI F2F, I can honestly say that it was a great experience being part of this collaboration. Great use of the screenshots especially the little icons - they really help the viewer navigate through their cohort.

document cohort exit magic

In the cohort exit section it talks about "magic". While the SQL's implementation may be magical and need not be further discussed, the exact logical algorithm that this query implements is not documented. This is quite important to understanding what it means to generate an exit cohort in OHDSI. The algorithm could be discussed informally, but it should express what considerations and/or cases are accounted for.

Consider refactoring this code so that previous queries populate a temporary cohort era table, with subject, begin/end. Then, a separate SQL fragment that might be more digestible could be written that collapses these eras. Doing both the era extraction and the collapse at the same time make the logic hard to follow. If these two operations were separated, perhaps both could be more easily explained.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.