Skip to content

Commit c4b68c9

Browse files
committed
Add readme.
1 parent 1a46ded commit c4b68c9

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

readme.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Health Data Analytics Demonstrator
2+
3+
## Capabilities
4+
- Value set generator that works with SNOMED subsumption with inclusion, exclusion and attribute constraints.
5+
- Data analysis tool which finds cohorts of patients with given conditions, procedures and/or prescriptions.
6+
- Statistical testing to measure how a procedure or drug affects the chances of a subsequent disorder.
7+
- Demo data generator which creates a large population of patients including disease associations and conditions.
8+
9+
## Background and strategic fit
10+
SNOMED CT’s distinguishing feature is its logical framework. Unlike ICD terms which are not based on Description Logic, SNOMED features the ability to do logical subsumption searches to find cohorts of patients, medications, or conditions.
11+
12+
Every kind of quality measure, outcomes measurement or retrospective research involving cohorts of patients depends on defining lists of clinical terms sometimes called “value sets”.
13+
14+
When these types of data analysis are done with ICD or other non-SNOMED terminologies, the creation of value sets requires human experts and is prone to errors. The humans creating the value sets must remember all the possible ways to refer to a condition, and ICD does not allow more than one parent, so Viral Pneumonia much be either a respiratory disease or an infectious disease but can’t be both.
15+
16+
In SNOMED because of its logical structure, you can search hierarchies and do logical role based searches. This allows you to create value sets without arbitrary knowledge of which synonyms are used to describe a term.
17+
18+
19+
20+
These data analysis tasks require three steps that we can define as a High Value Implementation of SNOMED.
21+
22+
First an organization must be able to create value sets by using SNOMED subsumption searches. This task is independent of any patient data. If the patient data is linked to SNOMED directly, then the cohort of patients can be found without any further processing. But if the EMR uses a non-SNOMED interface terminology, then there must be an intermediate step mapping the SNOMED value set to the interface terms. For the purposes of our demo tool, we will use SNOMED terms directly linked to patient data.
23+
24+
25+
26+
These principles are difficult to explain to clinicians, in order to demonstrate these advantages to them, it is necessary to have a tool that is populated with SNOMED coded patient data. With such a tool we can highlight the advantages of SNOMED compared to ICD (or any other terminology).
27+
28+
Real patient data (a large population linked to SNOMED) is practically impossible to get for a variety of reasons. Real data would contain expected associations between diseases, events, medications and conditions. For example, real data would show that fractured bones were more common after a motor vehicle accident. Real data would show that infections were more common after an immunosuppressive medication were given. Real data would also show these and other known links between conditions. Other obvious examples are patients with COPD would have pneumonia and bronchitis more often than patients in general. Diabetics would have more foot ulcers and more peripheral neuropathy.
29+
30+
## Summary
31+
This demo tool is a real tool. If we were to get some real patient data and stream it into the tool then we could explore for real associations.
32+
33+
## Technical Information
34+
35+
A frontend web application for this API is available [here](https://github.com/IHTSDO/health-data-analytics-frontend).
36+
37+
### Data Store
38+
The datasource is an embedded Elasticsearch instance which holds a Snomed Edition to support subsumption testing and the patient data.
39+
40+
### Data Model
41+
The data points are:
42+
- Patient
43+
- roleId
44+
- dob
45+
- dobYear (for optimisation)
46+
- gender (MALE / FEMALE)
47+
- encounters
48+
- ClinicalEncounter
49+
- date
50+
- conceptId
51+
- type (FINDING / MEDICATION / PROCEDURE)
52+
53+
### Load your own data
54+
If you create a new class which implements HealthDataIngestionSource which writes to the HealthDataOutputStream you could then replace the ExampleDataGenerator [here](https://github.com/IHTSDO/health-data-analytics/blob/1a46ded/src/main/java/org/snomed/heathanalytics/Application.java#L91).

0 commit comments

Comments
 (0)