-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdisease-info.js
84 lines (79 loc) · 2.12 KB
/
disease-info.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import React from 'react';
import { Component } from 'react';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faExternalLinkAlt } from '@fortawesome/free-solid-svg-icons';
import { toFixed } from 'hetio-frontend-components';
import { InfoTable } from 'hetio-frontend-components';
import tooltipText from './tooltip-text.json';
export class DiseaseInfo extends Component {
// display component
render() {
if (!this.props.disease)
return <></>;
const disease = this.props.disease;
const name = disease.disease_name;
const info = (this.props.diseaseInfo || {}).xref || {};
const bodyContents = [
[
'Dis. Ont. id',
tooltipText['disease_id'],
<a href={'http://www.disease-ontology.org/?id=' + disease.disease_code}>
{disease.disease_code}
<FontAwesomeIcon
className='external_link_icon'
icon={faExternalLinkAlt}
size='xs'
/>
</a>
],
[
'EFO id',
tooltipText['disease_efo_id'],
<a
href={
'https://www.ebi.ac.uk/ols/ontologies/EFO/terms?obo_id=EFO:' + info.EFO
}
>
{info.EFO}
<FontAwesomeIcon
className='external_link_icon'
icon={faExternalLinkAlt}
size='xs'
/>
</a>
],
['UMLS id', tooltipText['disease_umls_id'], info.UMLS_CUI],
[
'pathophysiology',
tooltipText['disease_pathophysiology'],
disease.pathophysiology
],
[
'associations',
tooltipText['disease_associations'],
disease.associations
],
[
'auroc',
tooltipText['auroc'],
toFixed(disease.auroc * 100) + '%',
disease.auroc
]
];
return (
<div
className='app_section'
style={{ display: this.props.visible ? 'block' : 'none' }}
>
<hr />
<p className='left'>
Info about{' '}
<b>
<i>{name}</i>
</b>
</p>
<InfoTable bodyContents={bodyContents} />
</div>
);
}
}