OpenREM 1.0.0b2__py3-none-any.whl → 1.0.0b3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- openrem/locale/de/LC_MESSAGES/django.po +1060 -1059
- openrem/locale/django.pot +973 -972
- openrem/locale/es_MX/LC_MESSAGES/django.po +1049 -1048
- openrem/locale/it/LC_MESSAGES/django.po +1044 -1043
- openrem/locale/lt/LC_MESSAGES/django.po +989 -988
- openrem/locale/nb_NO/LC_MESSAGES/django.po +985 -984
- openrem/locale/pt_BR/LC_MESSAGES/django.po +1003 -1002
- openrem/manage.py +10 -10
- openrem/openremproject/__init__.py +1 -1
- openrem/openremproject/local_settings.py.linux +128 -128
- openrem/openremproject/local_settings.py.windows +144 -144
- openrem/openremproject/local_settings.py.windows-sqlite3 +129 -129
- openrem/openremproject/settings.py +278 -278
- openrem/openremproject/urls.py +32 -32
- openrem/openremproject/wsgi.py.example +28 -28
- openrem/remapp/__init__.py +2 -2
- openrem/remapp/admin.py +31 -31
- openrem/remapp/exports/ct_export.py +780 -753
- openrem/remapp/exports/dx_export.py +817 -805
- openrem/remapp/exports/export_common.py +931 -951
- openrem/remapp/exports/export_common_pandas.py +2422 -0
- openrem/remapp/exports/exportviews.py +815 -860
- openrem/remapp/exports/mg_csv_nhsbsp.py +292 -292
- openrem/remapp/exports/mg_export.py +673 -510
- openrem/remapp/exports/nm_export.py +796 -575
- openrem/remapp/exports/rf_export.py +1418 -1431
- openrem/remapp/extractors/ct_philips.py +424 -414
- openrem/remapp/extractors/ct_toshiba.py +2116 -2108
- openrem/remapp/extractors/dx.py +1033 -952
- openrem/remapp/extractors/extract_common.py +817 -817
- openrem/remapp/extractors/import_views.py +426 -426
- openrem/remapp/extractors/mam.py +685 -672
- openrem/remapp/extractors/nm_image.py +439 -431
- openrem/remapp/extractors/ptsizecsv2db.py +368 -368
- openrem/remapp/extractors/rdsr.py +667 -654
- openrem/remapp/extractors/rdsr_methods.py +1771 -1768
- openrem/remapp/extractors/rrdsr_methods.py +630 -622
- openrem/remapp/fixtures/openskin_safelist.json +11 -11
- openrem/remapp/forms.py +2286 -2277
- openrem/remapp/interface/chart_functions.py +2412 -2393
- openrem/remapp/interface/mod_filters.py +1241 -1243
- openrem/remapp/migrations/0001_initial.py.1-0-upgrade +1043 -1043
- openrem/remapp/models.py +3418 -3407
- openrem/remapp/netdicom/dicomviews.py +681 -683
- openrem/remapp/netdicom/qrscu.py +2646 -2646
- openrem/remapp/netdicom/tools.py +134 -134
- openrem/remapp/static/css/bootstrap-theme.css +587 -587
- openrem/remapp/static/css/bootstrap-theme.min.css +4 -4
- openrem/remapp/static/css/bootstrap.css +6800 -6800
- openrem/remapp/static/css/bootstrap.min.css +4 -4
- openrem/remapp/static/css/datepicker3.css +790 -790
- openrem/remapp/static/css/jquery.qtip.min.css +2 -2
- openrem/remapp/static/css/openrem-extra.css +442 -442
- openrem/remapp/static/css/openrem.css +96 -96
- openrem/remapp/static/css/registration.css +34 -34
- openrem/remapp/static/fonts/glyphicons-halflings-regular.svg +287 -287
- openrem/remapp/static/js/bootstrap-datepicker.js +1671 -1671
- openrem/remapp/static/js/bootstrap.js +2363 -2363
- openrem/remapp/static/js/bootstrap.min.js +6 -6
- openrem/remapp/static/js/charts/chartCommonFunctions.js +75 -75
- openrem/remapp/static/js/charts/chartFullScreen.js +41 -41
- openrem/remapp/static/js/charts/ctChartAjax.js +331 -331
- openrem/remapp/static/js/charts/dxChartAjax.js +290 -290
- openrem/remapp/static/js/charts/mgChartAjax.js +144 -144
- openrem/remapp/static/js/charts/nmChartAjax.js +64 -64
- openrem/remapp/static/js/charts/plotly-2.35.2.min.js +8 -0
- openrem/remapp/static/js/charts/rfChartAjax.js +128 -128
- openrem/remapp/static/js/chroma.min.js +32 -32
- openrem/remapp/static/js/datepicker.js +5 -5
- openrem/remapp/static/js/dicom.js +115 -115
- openrem/remapp/static/js/django_reverse/reverse.js +13 -13
- openrem/remapp/static/js/formatDate.js +7 -7
- openrem/remapp/static/js/html5shiv.min.js +8 -8
- openrem/remapp/static/js/jquery-1.11.0.min.js +4 -4
- openrem/remapp/static/js/npm.js +12 -12
- openrem/remapp/static/js/respond.min.js +4 -4
- openrem/remapp/static/js/skin-dose-maps/jquery.qtip.min.js +4 -4
- openrem/remapp/static/js/skin-dose-maps/rfSkinDoseMap3dHUDObject.js +112 -112
- openrem/remapp/static/js/skin-dose-maps/rfSkinDoseMap3dObject.js +367 -367
- openrem/remapp/static/js/skin-dose-maps/rfSkinDoseMap3dPersonObject.js +158 -158
- openrem/remapp/static/js/skin-dose-maps/rfSkinDoseMapColourScaleObject.js +153 -153
- openrem/remapp/static/js/skin-dose-maps/rfSkinDoseMapObject.js +367 -367
- openrem/remapp/static/js/skin-dose-maps/rfSkinDoseMapping.js +584 -584
- openrem/remapp/static/js/skin-dose-maps/rfSkinDoseMapping3d.js +255 -255
- openrem/remapp/static/js/skin-dose-maps/rfSkinDoseMappingAjax.js +267 -212
- openrem/remapp/static/js/skin-dose-maps/three.min.js +835 -835
- openrem/remapp/static/js/sorttable.js +495 -495
- openrem/remapp/templates/base.html +253 -253
- openrem/remapp/templates/registration/changepassword.html +25 -25
- openrem/remapp/templates/registration/changepassworddone.html +12 -12
- openrem/remapp/templates/registration/login.html +42 -42
- openrem/remapp/templates/remapp/backgroundtaskmaximumrows_form.html +29 -29
- openrem/remapp/templates/remapp/base.html +1 -1
- openrem/remapp/templates/remapp/ctdetail.html +235 -235
- openrem/remapp/templates/remapp/ctfiltered.html +310 -310
- openrem/remapp/templates/remapp/dicomdeletesettings_form.html +31 -31
- openrem/remapp/templates/remapp/dicomqr.html +147 -147
- openrem/remapp/templates/remapp/dicomquerydetails.html +83 -83
- openrem/remapp/templates/remapp/dicomqueryimages.html +49 -49
- openrem/remapp/templates/remapp/dicomqueryseries.html +109 -109
- openrem/remapp/templates/remapp/dicomquerysummary.html +48 -48
- openrem/remapp/templates/remapp/dicomremoteqr_confirm_delete.html +60 -60
- openrem/remapp/templates/remapp/dicomremoteqr_form.html +32 -32
- openrem/remapp/templates/remapp/dicomstorescp_confirm_delete.html +53 -53
- openrem/remapp/templates/remapp/dicomstorescp_form.html +48 -48
- openrem/remapp/templates/remapp/dicomsummary.html +257 -257
- openrem/remapp/templates/remapp/displaychartoptions.html +184 -184
- openrem/remapp/templates/remapp/displayhomepageoptions.html +57 -57
- openrem/remapp/templates/remapp/displayname-count.html +6 -6
- openrem/remapp/templates/remapp/displayname-last-date.html +3 -3
- openrem/remapp/templates/remapp/displayname-modality.html +86 -105
- openrem/remapp/templates/remapp/displayname-skinmap.html +18 -18
- openrem/remapp/templates/remapp/displaynameupdate.html +100 -100
- openrem/remapp/templates/remapp/displaynameview.html +222 -219
- openrem/remapp/templates/remapp/dxdetail.html +176 -176
- openrem/remapp/templates/remapp/dxfiltered.html +324 -324
- openrem/remapp/templates/remapp/exports-active.html +25 -25
- openrem/remapp/templates/remapp/exports-complete.html +35 -35
- openrem/remapp/templates/remapp/exports-error.html +26 -26
- openrem/remapp/templates/remapp/exports-queue.html +18 -18
- openrem/remapp/templates/remapp/exports.html +191 -191
- openrem/remapp/templates/remapp/failed_summary_list.html +27 -27
- openrem/remapp/templates/remapp/filteredbase.html +162 -162
- openrem/remapp/templates/remapp/highdosemetricalertsettings_form.html +76 -76
- openrem/remapp/templates/remapp/home-list-modalities.html +94 -94
- openrem/remapp/templates/remapp/home.html +202 -202
- openrem/remapp/templates/remapp/list_filters.html +24 -24
- openrem/remapp/templates/remapp/mgdetail.html +160 -138
- openrem/remapp/templates/remapp/mgfiltered.html +311 -311
- openrem/remapp/templates/remapp/nmdetail.html +300 -300
- openrem/remapp/templates/remapp/nmfiltered.html +255 -255
- openrem/remapp/templates/remapp/notpatient.html +190 -190
- openrem/remapp/templates/remapp/notpatientindicators_form_base.html +81 -81
- openrem/remapp/templates/remapp/notpatientindicatorsid_confirm_delete.html +54 -54
- openrem/remapp/templates/remapp/notpatientindicatorsid_form.html +23 -23
- openrem/remapp/templates/remapp/notpatientindicatorsname_confirm_delete.html +54 -54
- openrem/remapp/templates/remapp/notpatientindicatorsname_form.html +23 -23
- openrem/remapp/templates/remapp/notpatientindicatorsname_form_base.html +85 -85
- openrem/remapp/templates/remapp/openskinsafelist_add.html +130 -130
- openrem/remapp/templates/remapp/openskinsafelist_confirm_delete.html +100 -100
- openrem/remapp/templates/remapp/openskinsafelist_form.html +207 -207
- openrem/remapp/templates/remapp/patientidsettings_form.html +83 -83
- openrem/remapp/templates/remapp/populate_summary_progress.html +83 -83
- openrem/remapp/templates/remapp/populate_summary_progress_error.html +36 -36
- openrem/remapp/templates/remapp/review_failed_imports.html +157 -157
- openrem/remapp/templates/remapp/review_failed_study.html +41 -41
- openrem/remapp/templates/remapp/review_studies_delete_button.html +20 -20
- openrem/remapp/templates/remapp/review_study.html +19 -19
- openrem/remapp/templates/remapp/review_summary_list.html +245 -245
- openrem/remapp/templates/remapp/rf_dose_alert_email_template.html +14 -1
- openrem/remapp/templates/remapp/rfalertnotificationsview.html +59 -59
- openrem/remapp/templates/remapp/rfdetail.html +547 -543
- openrem/remapp/templates/remapp/rfdetailbase.html +18 -18
- openrem/remapp/templates/remapp/rffiltered.html +404 -404
- openrem/remapp/templates/remapp/sizeimports.html +119 -119
- openrem/remapp/templates/remapp/sizeprocess.html +96 -96
- openrem/remapp/templates/remapp/sizeupload.html +110 -110
- openrem/remapp/templates/remapp/skindosemapcalcsettings_form.html +28 -28
- openrem/remapp/templates/remapp/standardname-modality.html +69 -69
- openrem/remapp/templates/remapp/standardnames_confirm_delete.html +71 -71
- openrem/remapp/templates/remapp/standardnames_form.html +87 -87
- openrem/remapp/templates/remapp/standardnamesettings_form.html +41 -41
- openrem/remapp/templates/remapp/standardnamesrefreshall.html +92 -92
- openrem/remapp/templates/remapp/standardnameview.html +103 -103
- openrem/remapp/templates/remapp/study_confirm_delete.html +147 -147
- openrem/remapp/templates/remapp/task_admin.html +265 -265
- openrem/remapp/templates/remapp/tasks.html +76 -76
- openrem/remapp/templatetags/formfilters.py +13 -13
- openrem/remapp/templatetags/proper_paginate.py +38 -38
- openrem/remapp/templatetags/remappduration.py +36 -36
- openrem/remapp/templatetags/sigdig.py +38 -38
- openrem/remapp/templatetags/sort_class_property_value.py +15 -15
- openrem/remapp/templatetags/update_variable.py +20 -20
- openrem/remapp/templatetags/url_replace.py +25 -25
- openrem/remapp/tests/test_charts_common.py +202 -202
- openrem/remapp/tests/test_charts_ct.py +7111 -7111
- openrem/remapp/tests/test_charts_dx.py +3513 -3513
- openrem/remapp/tests/test_charts_mg.py +1116 -1115
- openrem/remapp/tests/test_dcmdatetime.py +189 -189
- openrem/remapp/tests/test_dicom_qr.py +2580 -2580
- openrem/remapp/tests/test_display_name.py +274 -274
- openrem/remapp/tests/test_export_ct_xlsx.py +272 -248
- openrem/remapp/tests/test_export_dx_xlsx.py +137 -134
- openrem/remapp/tests/test_export_mammo_csv.py +242 -242
- openrem/remapp/tests/test_export_rf_xlsx.py +246 -246
- openrem/remapp/tests/test_files/DX-Im-DRGEM.dcm +0 -0
- openrem/remapp/tests/test_files/MG-RDSR-GEPristina-2D.dcm +0 -0
- openrem/remapp/tests/test_files/MG-RDSR-GEPristina-DBT.dcm +0 -0
- openrem/remapp/tests/test_files/MG-RDSR-Giotto-DBT.dcm +0 -0
- openrem/remapp/tests/test_files/skin_map_alphenix.py +590 -590
- openrem/remapp/tests/test_files/skin_map_zee.py +354 -354
- openrem/remapp/tests/test_filters_ct.py +321 -321
- openrem/remapp/tests/test_filters_dx.py +92 -92
- openrem/remapp/tests/test_filters_mammo.py +183 -183
- openrem/remapp/tests/test_filters_rf.py +118 -118
- openrem/remapp/tests/test_get_values.py +72 -72
- openrem/remapp/tests/test_hash_id.py +65 -65
- openrem/remapp/tests/test_import_ct_esr_ge.py +3034 -3034
- openrem/remapp/tests/test_import_ct_philips_rdsr.py +42 -42
- openrem/remapp/tests/test_import_ct_rdsr_multiple.py +256 -256
- openrem/remapp/tests/test_import_ct_rdsr_siemens.py +827 -827
- openrem/remapp/tests/test_import_ct_rdsr_spectrumdynamics.py +91 -91
- openrem/remapp/tests/test_import_ct_rdsr_toshiba_dosecheck.py +67 -67
- openrem/remapp/tests/test_import_ct_rdsr_toshiba_multivaluesd.py +33 -33
- openrem/remapp/tests/test_import_ct_rdsr_toshiba_pixelmed.py +118 -118
- openrem/remapp/tests/test_import_ct_sc_philips.py +44 -44
- openrem/remapp/tests/test_import_dual_rdsr.py +110 -110
- openrem/remapp/tests/test_import_dx.py +1267 -1191
- openrem/remapp/tests/test_import_dx_rdsr.py +1250 -1253
- openrem/remapp/tests/test_import_mam.py +438 -438
- openrem/remapp/tests/test_import_mg_im_hol_proj.py +46 -46
- openrem/remapp/tests/test_import_mg_rdsr.py +586 -586
- openrem/remapp/tests/test_import_nm_image.py +420 -420
- openrem/remapp/tests/test_import_nm_siemens_rdsr.py +396 -396
- openrem/remapp/tests/test_import_px.py +161 -161
- openrem/remapp/tests/test_import_rf_rdsr.py +420 -418
- openrem/remapp/tests/test_missing_date.py +42 -42
- openrem/remapp/tests/test_not_patient.py +60 -60
- openrem/remapp/tests/test_openskin.py +272 -272
- openrem/remapp/tests/test_patient_id_settings.py +72 -72
- openrem/remapp/tests/test_pt_size_import.py +232 -232
- openrem/remapp/tests/test_rf_detail.py +113 -113
- openrem/remapp/tests/test_rf_high_dose_alert.py +361 -361
- openrem/remapp/tools/background.py +361 -361
- openrem/remapp/tools/check_standard_name_status.py +47 -0
- openrem/remapp/tools/check_uid.py +70 -70
- openrem/remapp/tools/dcmdatetime.py +248 -248
- openrem/remapp/tools/default_import.py +44 -47
- openrem/remapp/tools/get_values.py +230 -230
- openrem/remapp/tools/hash_id.py +58 -58
- openrem/remapp/tools/make_skin_map.py +448 -406
- openrem/remapp/tools/not_patient_indicators.py +72 -72
- openrem/remapp/tools/openskin/calc_exp_map.py +173 -173
- openrem/remapp/tools/openskin/geomclass.py +475 -475
- openrem/remapp/tools/openskin/geomfunc.py +433 -432
- openrem/remapp/tools/openskin/skinmap.py +417 -417
- openrem/remapp/tools/populate_summary.py +185 -193
- openrem/remapp/tools/save_skin_map_structure.py +73 -73
- openrem/remapp/tools/send_high_dose_alert_emails.py +238 -207
- openrem/remapp/urls.py +456 -448
- openrem/remapp/version.py +11 -11
- openrem/remapp/views.py +1147 -1052
- openrem/remapp/views_admin.py +3876 -3936
- openrem/remapp/views_charts_ct.py +2110 -2058
- openrem/remapp/views_charts_dx.py +1906 -1836
- openrem/remapp/views_charts_mg.py +1349 -1196
- openrem/remapp/views_charts_nm.py +535 -535
- openrem/remapp/views_charts_rf.py +1219 -1241
- openrem/remapp/views_openskin.py +379 -384
- openrem/sample-config/openrem-consumer.service +12 -12
- openrem/sample-config/openrem-gunicorn.service +13 -13
- openrem/sample-config/openrem-server +14 -13
- openrem/sample-config/openrem_orthanc_config_linux.lua +454 -454
- openrem/sample-config/openrem_orthanc_config_windows.lua +455 -455
- openrem/sample-config/queue-init.bat +73 -73
- openrem/scripts/openrem_ctphilips.py +25 -25
- openrem/scripts/openrem_cttoshiba.py +28 -28
- openrem/scripts/openrem_dx.py +22 -22
- openrem/scripts/openrem_mg.py +22 -22
- openrem/scripts/openrem_nm.py +22 -22
- openrem/scripts/openrem_ptsizecsv.py +17 -17
- openrem/scripts/openrem_qr.py +12 -12
- openrem/scripts/openrem_rdsr.py +25 -25
- {OpenREM-1.0.0b2.dist-info → openrem-1.0.0b3.dist-info}/METADATA +39 -29
- openrem-1.0.0b3.dist-info/RECORD +379 -0
- {OpenREM-1.0.0b2.dist-info → openrem-1.0.0b3.dist-info}/WHEEL +1 -1
- {OpenREM-1.0.0b2.dist-info → openrem-1.0.0b3.dist-info/licenses}/COPYING-GPLv3 +674 -674
- {OpenREM-1.0.0b2.dist-info → openrem-1.0.0b3.dist-info/licenses}/LICENSE +22 -22
- OpenREM-1.0.0b2.dist-info/RECORD +0 -373
- openrem/remapp/static/js/charts/plotly-2.17.1.min.js +0 -8
- {OpenREM-1.0.0b2.data → openrem-1.0.0b3.data}/scripts/openrem_ctphilips.py +0 -0
- {OpenREM-1.0.0b2.data → openrem-1.0.0b3.data}/scripts/openrem_cttoshiba.py +0 -0
- {OpenREM-1.0.0b2.data → openrem-1.0.0b3.data}/scripts/openrem_dx.py +0 -0
- {OpenREM-1.0.0b2.data → openrem-1.0.0b3.data}/scripts/openrem_mg.py +0 -0
- {OpenREM-1.0.0b2.data → openrem-1.0.0b3.data}/scripts/openrem_nm.py +0 -0
- {OpenREM-1.0.0b2.data → openrem-1.0.0b3.data}/scripts/openrem_ptsizecsv.py +0 -0
- {OpenREM-1.0.0b2.data → openrem-1.0.0b3.data}/scripts/openrem_qr.py +0 -0
- {OpenREM-1.0.0b2.data → openrem-1.0.0b3.data}/scripts/openrem_rdsr.py +0 -0
- {OpenREM-1.0.0b2.dist-info → openrem-1.0.0b3.dist-info}/top_level.txt +0 -0
|
@@ -1,312 +1,312 @@
|
|
|
1
|
-
{% extends "remapp/filteredbase.html" %}
|
|
2
|
-
|
|
3
|
-
{% block navmg%}<li class="active">{% endblock %}
|
|
4
|
-
|
|
5
|
-
{% block toprow %}
|
|
6
|
-
<p>
|
|
7
|
-
There are {{ study_list.paginator.count }} studies in this list.
|
|
8
|
-
</p>
|
|
9
|
-
{% endblock %}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
{% block col2 %}
|
|
14
|
-
<div class="panel panel-info small">
|
|
15
|
-
<div class="panel-heading">
|
|
16
|
-
<h3 class="panel-title">Data export</h3>
|
|
17
|
-
</div>
|
|
18
|
-
<div class="panel-body">
|
|
19
|
-
{% if admin.exportgroup %}
|
|
20
|
-
<p><strong>Note:</strong> Apply the exam filter first to refine what is exported.</p>
|
|
21
|
-
<p>
|
|
22
|
-
<a href="{% url 'mgcsv1' 0 0 %}?{{ request.GET.urlencode }}"
|
|
23
|
-
class="btn btn-default btn-sm" role="button">Export to CSV </a>
|
|
24
|
-
{% if admin.pidgroup %}
|
|
25
|
-
<a href="{% url 'mgcsv1' 1 0 %}?{{ request.GET.urlencode }}"
|
|
26
|
-
class="btn btn-default btn-sm" role="button">With names</a>
|
|
27
|
-
<a href="{% url 'mgcsv1' 0 1 %}?{{ request.GET.urlencode }}"
|
|
28
|
-
class="btn btn-default btn-sm" role="button">With ID</a>
|
|
29
|
-
<a href="{% url 'mgcsv1' 1 1 %}?{{ request.GET.urlencode }}"
|
|
30
|
-
class="btn btn-default btn-sm" role="button">With both</a>
|
|
31
|
-
</p>
|
|
32
|
-
<p>
|
|
33
|
-
{% endif %}
|
|
34
|
-
<a href="{% url 'mgxlsx1' 0 0 %}?{{ request.GET.urlencode }}"
|
|
35
|
-
class="btn btn-default btn-sm" role="button">Export to
|
|
36
|
-
{% if admin.pidgroup %}
|
|
37
|
-
<a href="{% url 'mgxlsx1' 1 0 %}?{{ request.GET.urlencode }}"
|
|
38
|
-
class="btn btn-default btn-sm" role="button">With names</a>
|
|
39
|
-
<a href="{% url 'mgxlsx1' 0 1 %}?{{ request.GET.urlencode }}"
|
|
40
|
-
class="btn btn-default btn-sm" role="button">With ID</a>
|
|
41
|
-
<a href="{% url 'mgxlsx1' 1 1 %}?{{ request.GET.urlencode }}"
|
|
42
|
-
class="btn btn-default btn-sm" role="button">With both</a>
|
|
43
|
-
</p>
|
|
44
|
-
<p>
|
|
45
|
-
{% endif %}
|
|
46
|
-
<a href="{% url 'mgnhsbsp' %}?{{ request.GET.urlencode }}"
|
|
47
|
-
class="btn btn-default btn-sm" role="button">Export to CSV using the NHSBSP format</a>
|
|
48
|
-
</p>
|
|
49
|
-
|
|
50
|
-
{% else %}
|
|
51
|
-
<p>
|
|
52
|
-
No export permissions
|
|
53
|
-
</p>
|
|
54
|
-
{% endif %}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
</div>
|
|
58
|
-
</div>
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
{{ studyfilter }}
|
|
62
|
-
|
|
63
|
-
<form action="" method="get" class="form-horizontal" role="form">
|
|
64
|
-
<div class="panel panel-info small">
|
|
65
|
-
<div class="panel-heading">
|
|
66
|
-
<h3 class="panel-title">Exam filter</h3>
|
|
67
|
-
</div>
|
|
68
|
-
<div class="panel-body">
|
|
69
|
-
<em>Date format yyyy-mm-dd</em>
|
|
70
|
-
{% for field in filter.form %}
|
|
71
|
-
<div class="form-group">
|
|
72
|
-
<div class="col-xs-4">
|
|
73
|
-
<label>{{ field.label_tag }}</label>
|
|
74
|
-
</div>
|
|
75
|
-
<div class="col-xs-8">
|
|
76
|
-
{{ field.errors }}
|
|
77
|
-
{{ field }}
|
|
78
|
-
</div>
|
|
79
|
-
</div>
|
|
80
|
-
{% endfor %}
|
|
81
|
-
<input class="btn btn-default" name="submit" type="submit" />
|
|
82
|
-
</div>
|
|
83
|
-
|
|
84
|
-
<div class="panel-heading">
|
|
85
|
-
<h3 class="panel-title">Chart options</h3>
|
|
86
|
-
</div>
|
|
87
|
-
|
|
88
|
-
<div class="panel-body">
|
|
89
|
-
|
|
90
|
-
{% csrf_token %}
|
|
91
|
-
{% regroup chartOptionsForm by field.group as field_groups %}
|
|
92
|
-
|
|
93
|
-
{% for field_group in field_groups %}
|
|
94
|
-
|
|
95
|
-
{% if field_group.grouper == 'PlotCharts' %}
|
|
96
|
-
<div class="panel panel-default">
|
|
97
|
-
<div class="panel-heading">
|
|
98
|
-
<h4 class="panel-title">
|
|
99
|
-
<label style="font-weight: normal" for="{{ field_group.list.0.auto_id }}">{{ field_group.list.0.label }}</label> {{ field_group.list.0 }}
|
|
100
|
-
</h4>
|
|
101
|
-
</div>
|
|
102
|
-
</div>
|
|
103
|
-
{% else %}
|
|
104
|
-
<div class="panel panel-default">
|
|
105
|
-
|
|
106
|
-
<div class="panel-heading">
|
|
107
|
-
<h4 class="panel-title">
|
|
108
|
-
<a class="no-decoration" data-toggle="collapse" data-target="#{{ field_group.grouper|cut:" " }}">{{ field_group.grouper }}</a>
|
|
109
|
-
</h4>
|
|
110
|
-
</div>
|
|
111
|
-
|
|
112
|
-
<div id="{{ field_group.grouper|cut:" " }}" class="panel-collapse collapse in">
|
|
113
|
-
<div class="panel-body">
|
|
114
|
-
|
|
115
|
-
<table class="table table-condensed">
|
|
116
|
-
{% for field in field_group.list %}
|
|
117
|
-
<tr>
|
|
118
|
-
{% if field.field.widget.attrs.class == 'CheckboxSelectMultiple' %}
|
|
119
|
-
<td class="shaded_top_bottom_border"><label for="{{ field.auto_id }}">{{ field.label }}</label></td>
|
|
120
|
-
<td class="shaded_top_bottom_border">{{ field }}</td>
|
|
121
|
-
{% elif field.label == 'Acquisition frequency' or field.label == 'Study workload' or field.label == 'Time period' %}
|
|
122
|
-
<td class="top_border"><label for="{{ field.auto_id }}">{{ field.label }}</label></td>
|
|
123
|
-
<td class="top_border">{{ field }}</td>
|
|
124
|
-
{% else %}
|
|
125
|
-
<td><label for="{{ field.auto_id }}">{{ field.label }}</label></td>
|
|
126
|
-
<td>{{ field }}</td>
|
|
127
|
-
{% endif %}
|
|
128
|
-
</tr>
|
|
129
|
-
{% endfor %}
|
|
130
|
-
</table>
|
|
131
|
-
|
|
132
|
-
</div>
|
|
133
|
-
</div>
|
|
134
|
-
|
|
135
|
-
</div>
|
|
136
|
-
{% endif %}
|
|
137
|
-
|
|
138
|
-
{% endfor %}
|
|
139
|
-
|
|
140
|
-
<input class="btn btn-default" name="submit" type="submit" />
|
|
141
|
-
</div>
|
|
142
|
-
|
|
143
|
-
<div class="panel-heading">
|
|
144
|
-
<h3 class="panel-title">Table options</h3>
|
|
145
|
-
</div>
|
|
146
|
-
<div class="panel-body">
|
|
147
|
-
<table aria-describedby="Number of rows per page option">
|
|
148
|
-
{{ itemsPerPageForm }}
|
|
149
|
-
</table>
|
|
150
|
-
<input class="btn btn-default" name="submit" type="submit" />
|
|
151
|
-
</div>
|
|
152
|
-
</div>
|
|
153
|
-
</form>
|
|
154
|
-
|
|
155
|
-
<script src="{{ STATIC_URL }}js/datepicker.js"></script>
|
|
156
|
-
<script src="{{ STATIC_URL }}js/formatDate.js"></script>
|
|
157
|
-
|
|
158
|
-
{% endblock %}
|
|
159
|
-
|
|
160
|
-
{% block col1 %}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
<table class="table table-bordered table-hover row-clickable small" aria-describedby="Study summary table">
|
|
164
|
-
<tr>
|
|
165
|
-
<th scope="col">Institution</th>
|
|
166
|
-
<th scope="col">
|
|
167
|
-
<table aria-describedby="Make, model and display name">
|
|
168
|
-
<tr><td>Make</td></tr>
|
|
169
|
-
<tr><td>Model</td></tr>
|
|
170
|
-
<tr><td class="nowrap">Display name</td></tr>
|
|
171
|
-
</table>
|
|
172
|
-
</th>
|
|
173
|
-
<th scope="col">Date</th>
|
|
174
|
-
<th scope="col">
|
|
175
|
-
<table aria-describedby="Study description, procedure, requested procedure and accession number">
|
|
176
|
-
<tr><td class="nowrap">Study description</td></tr>
|
|
177
|
-
<tr><td class="nowrap">Procedure</td></tr>
|
|
178
|
-
<tr><td class="nowrap">Requested Procedure</td></tr>
|
|
179
|
-
<tr><td class="nowrap">Accession number</td></tr>
|
|
180
|
-
</table>
|
|
181
|
-
</th>
|
|
182
|
-
{% if showStandardNames %}
|
|
183
|
-
<th>Standard study names</th>
|
|
184
|
-
{% endif %}
|
|
185
|
-
<th scope="col">Number of events</th>
|
|
186
|
-
<th scope="col">Accumulated AGD (mGy)</th>
|
|
187
|
-
{% if admin.admingroup %}
|
|
188
|
-
<th scope="col">Delete?</th>
|
|
189
|
-
{% endif %}
|
|
190
|
-
</tr>
|
|
191
|
-
{% for exam in study_list %}
|
|
192
|
-
{% with equipment=exam.generalequipmentmoduleattr_set.get %}
|
|
193
|
-
{% with projection_set=exam.projectionxrayradiationdose_set.get %}
|
|
194
|
-
{% with accum_mammo_set=projection_set.accumxraydose_set.get.accummammographyxraydose_set.all %}
|
|
195
|
-
<tr>
|
|
196
|
-
<td>
|
|
197
|
-
<a href="{% url 'mg_detail_view' pk=exam.id %}">
|
|
198
|
-
{{ equipment.institution_name }}
|
|
199
|
-
</a>
|
|
200
|
-
</td>
|
|
201
|
-
<td>
|
|
202
|
-
<a href="{% url 'mg_detail_view' pk=exam.id %}">
|
|
203
|
-
<table onclick="window.location='{% url 'mg_detail_view' pk=exam.id %}';" aria-describedby="Manufacturer, model and display name">
|
|
204
|
-
<tr><td class="nowrap">{{ equipment.manufacturer }}</td></tr>
|
|
205
|
-
<tr><td class="nowrap">{{ equipment.manufacturer_model_name }}</td></tr>
|
|
206
|
-
<tr><td class="nowrap">{{ equipment.unique_equipment_name.display_name }}</td></tr>
|
|
207
|
-
</table>
|
|
208
|
-
</a>
|
|
209
|
-
</td>
|
|
210
|
-
<td>
|
|
211
|
-
<a href="{% url 'mg_detail_view' pk=exam.id %}">
|
|
212
|
-
{{ exam.study_date|date:"Y-m-d" }} {{ exam.study_time|date:"H:i" }}
|
|
213
|
-
</a>
|
|
214
|
-
</td>
|
|
215
|
-
<td>
|
|
216
|
-
<a href="{% url 'mg_detail_view' pk=exam.id %}">
|
|
217
|
-
<table onclick="window.location='{% url 'mg_detail_view' pk=exam.id %}';" aria-describedby="Study description, procedure and requested procedure name">
|
|
218
|
-
<tr><td class="nowrap">{{ exam.study_description }}</td></tr>
|
|
219
|
-
<tr><td class="nowrap">{{ exam.procedure_code_meaning }}</td></tr>
|
|
220
|
-
<tr><td class="nowrap">{{ exam.requested_procedure_code_meaning }}</td></tr>
|
|
221
|
-
{% if not exam.accession_hashed %}
|
|
222
|
-
<tr><td class="nowrap">{{ exam.accession_number }}</td></tr>
|
|
223
|
-
{% endif %}
|
|
224
|
-
</table>
|
|
225
|
-
</a>
|
|
226
|
-
</td>
|
|
227
|
-
{% if showStandardNames %}
|
|
228
|
-
<td>
|
|
229
|
-
<a href="{% url 'mg_detail_view' pk=exam.id %}">
|
|
230
|
-
<table onclick="window.location='{% url 'mg_detail_view' pk=exam.id %}';" aria-describedby="Standard study description, procedure and requested procedure names">
|
|
231
|
-
{% for std_name in exam.standard_names.all %}
|
|
232
|
-
<tr><td class="nowrap">{{ std_name.standard_name|default_if_none:"-" }}</td></tr>
|
|
233
|
-
{% endfor %}
|
|
234
|
-
</table>
|
|
235
|
-
</a>
|
|
236
|
-
</td>
|
|
237
|
-
{% endif %}
|
|
238
|
-
<td>
|
|
239
|
-
<a href="{% url 'mg_detail_view' pk=exam.id %}">
|
|
240
|
-
{{ projection_set.irradeventxraydata_set.count }}
|
|
241
|
-
</a>
|
|
242
|
-
</td>
|
|
243
|
-
<td>
|
|
244
|
-
<a href="{% url 'mg_detail_view' pk=exam.id %}">
|
|
245
|
-
{% for breast in accum_mammo_set %}
|
|
246
|
-
{% if breast.laterality.code_value in "T-04030,80248007,C0222601" %} <!-- CID 6023: Left breast -->
|
|
247
|
-
Left: {{ breast.accumulated_average_glandular_dose|floatformat:3 }}<br>
|
|
248
|
-
{% elif breast.laterality.code_value in "T-04020,73056007,C0222600" %} <!-- CID 6023: Right breast -->
|
|
249
|
-
Right: {{ breast.accumulated_average_glandular_dose|floatformat:3 }}<br>
|
|
250
|
-
{% elif breast.laterality.code_value in "T-04080,63762007,C0222605" %} <!-- CID 6023: Both breasts -->
|
|
251
|
-
Both: {{ breast.accumulated_average_glandular_dose|floatformat:3 }}<br>
|
|
252
|
-
{% endif %}
|
|
253
|
-
{% endfor %}
|
|
254
|
-
</a>
|
|
255
|
-
</td>
|
|
256
|
-
{% if admin.admingroup %}
|
|
257
|
-
<td>
|
|
258
|
-
<a href="{% url 'study_delete' exam.id %}">Delete</a>
|
|
259
|
-
</td>
|
|
260
|
-
{% endif %}
|
|
261
|
-
</tr>
|
|
262
|
-
{% endwith %}{% endwith %}{% endwith %}
|
|
263
|
-
{% endfor %}
|
|
264
|
-
</table>
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
{% endblock %}
|
|
269
|
-
|
|
270
|
-
{% block plotdata %}
|
|
271
|
-
|
|
272
|
-
{% if request.user.userprofile.plotCharts %}
|
|
273
|
-
|
|
274
|
-
<script src="{{ STATIC_URL }}js/django_reverse/reverse.js"></script>
|
|
275
|
-
|
|
276
|
-
<div class="ajax-progress"><img src="{{ STATIC_URL }}img/ajax-loader.gif"></div>
|
|
277
|
-
|
|
278
|
-
<!-- JavaScript to enable Plotly charts -->
|
|
279
|
-
<script src="{{ STATIC_URL }}js/charts/plotly-2.
|
|
280
|
-
<!-- End of JavaScript to enable Plotly charts -->
|
|
281
|
-
|
|
282
|
-
<!-- JavaScript Plotly chart resizing code. -->
|
|
283
|
-
<script src="{{ STATIC_URL }}js/charts/chartFullScreen.js"></script>
|
|
284
|
-
<!-- End of JavaScript Plotly chart resizing code. -->
|
|
285
|
-
|
|
286
|
-
<!-- JavaScript chart AJAX code. -->
|
|
287
|
-
<script src="{{ STATIC_URL }}js/charts/mgChartAjax.js"></script>
|
|
288
|
-
<!-- End of JavaScript chart AJAX code. -->
|
|
289
|
-
|
|
290
|
-
{% for chart in required_charts %}
|
|
291
|
-
<div class="panel-group" id="{{ chart.var_name }}accordion">
|
|
292
|
-
<div class="panel panel-default">
|
|
293
|
-
<div class="panel-heading">
|
|
294
|
-
<h4 class="panel-title">
|
|
295
|
-
<a data-toggle="collapse" data-parent="#{{ chart.var_name }}accordion" href="#collapse{{ chart.var_name }}" onclick="setTimeout(function() {triggerResizeEvent();}, 0);">
|
|
296
|
-
{{ chart.title }}
|
|
297
|
-
</a>
|
|
298
|
-
</h4>
|
|
299
|
-
</div>
|
|
300
|
-
<div id="collapse{{ chart.var_name }}" class="panel-collapse collapse">
|
|
301
|
-
<div id="{{ chart.var_name }}ChartParentDiv" class="panel-body">
|
|
302
|
-
<div id="{{ chart.var_name }}ChartDiv"></div>
|
|
303
|
-
<a onclick="enterFullScreenPlotly('{{ chart.var_name }}ChartDiv', '{{ chart.var_name }}ChartParentDiv');"
|
|
304
|
-
class="btn btn-default btn-sm" role="button">Toggle fullscreen</a>
|
|
305
|
-
</div>
|
|
306
|
-
</div>
|
|
307
|
-
</div>
|
|
308
|
-
</div>
|
|
309
|
-
{% endfor %}
|
|
310
|
-
{% endif %}
|
|
311
|
-
|
|
1
|
+
{% extends "remapp/filteredbase.html" %}
|
|
2
|
+
|
|
3
|
+
{% block navmg%}<li class="active">{% endblock %}
|
|
4
|
+
|
|
5
|
+
{% block toprow %}
|
|
6
|
+
<p>
|
|
7
|
+
There are {{ study_list.paginator.count }} studies in this list.
|
|
8
|
+
</p>
|
|
9
|
+
{% endblock %}
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
{% block col2 %}
|
|
14
|
+
<div class="panel panel-info small">
|
|
15
|
+
<div class="panel-heading">
|
|
16
|
+
<h3 class="panel-title">Data export</h3>
|
|
17
|
+
</div>
|
|
18
|
+
<div class="panel-body">
|
|
19
|
+
{% if admin.exportgroup %}
|
|
20
|
+
<p><strong>Note:</strong> Apply the exam filter first to refine what is exported.</p>
|
|
21
|
+
<p>
|
|
22
|
+
<a href="{% url 'mgcsv1' 0 0 %}?{{ request.GET.urlencode }}"
|
|
23
|
+
class="btn btn-default btn-sm" role="button">Export to CSV </a>
|
|
24
|
+
{% if admin.pidgroup %}
|
|
25
|
+
<a href="{% url 'mgcsv1' 1 0 %}?{{ request.GET.urlencode }}"
|
|
26
|
+
class="btn btn-default btn-sm" role="button">With names</a>
|
|
27
|
+
<a href="{% url 'mgcsv1' 0 1 %}?{{ request.GET.urlencode }}"
|
|
28
|
+
class="btn btn-default btn-sm" role="button">With ID</a>
|
|
29
|
+
<a href="{% url 'mgcsv1' 1 1 %}?{{ request.GET.urlencode }}"
|
|
30
|
+
class="btn btn-default btn-sm" role="button">With both</a>
|
|
31
|
+
</p>
|
|
32
|
+
<p>
|
|
33
|
+
{% endif %}
|
|
34
|
+
<a href="{% url 'mgxlsx1' 0 0 %}?{{ request.GET.urlencode }}"
|
|
35
|
+
class="btn btn-default btn-sm" role="button">Export to XLSX</a>
|
|
36
|
+
{% if admin.pidgroup %}
|
|
37
|
+
<a href="{% url 'mgxlsx1' 1 0 %}?{{ request.GET.urlencode }}"
|
|
38
|
+
class="btn btn-default btn-sm" role="button">With names</a>
|
|
39
|
+
<a href="{% url 'mgxlsx1' 0 1 %}?{{ request.GET.urlencode }}"
|
|
40
|
+
class="btn btn-default btn-sm" role="button">With ID</a>
|
|
41
|
+
<a href="{% url 'mgxlsx1' 1 1 %}?{{ request.GET.urlencode }}"
|
|
42
|
+
class="btn btn-default btn-sm" role="button">With both</a>
|
|
43
|
+
</p>
|
|
44
|
+
<p>
|
|
45
|
+
{% endif %}
|
|
46
|
+
<a href="{% url 'mgnhsbsp' %}?{{ request.GET.urlencode }}"
|
|
47
|
+
class="btn btn-default btn-sm" role="button">Export to CSV using the NHSBSP format</a>
|
|
48
|
+
</p>
|
|
49
|
+
|
|
50
|
+
{% else %}
|
|
51
|
+
<p>
|
|
52
|
+
No export permissions
|
|
53
|
+
</p>
|
|
54
|
+
{% endif %}
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
{{ studyfilter }}
|
|
62
|
+
|
|
63
|
+
<form action="" method="get" class="form-horizontal" role="form">
|
|
64
|
+
<div class="panel panel-info small">
|
|
65
|
+
<div class="panel-heading">
|
|
66
|
+
<h3 class="panel-title">Exam filter</h3>
|
|
67
|
+
</div>
|
|
68
|
+
<div class="panel-body">
|
|
69
|
+
<em>Date format yyyy-mm-dd</em>
|
|
70
|
+
{% for field in filter.form %}
|
|
71
|
+
<div class="form-group">
|
|
72
|
+
<div class="col-xs-4">
|
|
73
|
+
<label>{{ field.label_tag }}</label>
|
|
74
|
+
</div>
|
|
75
|
+
<div class="col-xs-8">
|
|
76
|
+
{{ field.errors }}
|
|
77
|
+
{{ field }}
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
{% endfor %}
|
|
81
|
+
<input class="btn btn-default" name="submit" type="submit" />
|
|
82
|
+
</div>
|
|
83
|
+
|
|
84
|
+
<div class="panel-heading">
|
|
85
|
+
<h3 class="panel-title">Chart options</h3>
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
<div class="panel-body">
|
|
89
|
+
|
|
90
|
+
{% csrf_token %}
|
|
91
|
+
{% regroup chartOptionsForm by field.group as field_groups %}
|
|
92
|
+
|
|
93
|
+
{% for field_group in field_groups %}
|
|
94
|
+
|
|
95
|
+
{% if field_group.grouper == 'PlotCharts' %}
|
|
96
|
+
<div class="panel panel-default">
|
|
97
|
+
<div class="panel-heading">
|
|
98
|
+
<h4 class="panel-title">
|
|
99
|
+
<label style="font-weight: normal" for="{{ field_group.list.0.auto_id }}">{{ field_group.list.0.label }}</label> {{ field_group.list.0 }}
|
|
100
|
+
</h4>
|
|
101
|
+
</div>
|
|
102
|
+
</div>
|
|
103
|
+
{% else %}
|
|
104
|
+
<div class="panel panel-default">
|
|
105
|
+
|
|
106
|
+
<div class="panel-heading">
|
|
107
|
+
<h4 class="panel-title">
|
|
108
|
+
<a class="no-decoration" data-toggle="collapse" data-target="#{{ field_group.grouper|cut:" " }}">{{ field_group.grouper }}</a>
|
|
109
|
+
</h4>
|
|
110
|
+
</div>
|
|
111
|
+
|
|
112
|
+
<div id="{{ field_group.grouper|cut:" " }}" class="panel-collapse collapse in">
|
|
113
|
+
<div class="panel-body">
|
|
114
|
+
|
|
115
|
+
<table class="table table-condensed">
|
|
116
|
+
{% for field in field_group.list %}
|
|
117
|
+
<tr>
|
|
118
|
+
{% if field.field.widget.attrs.class == 'CheckboxSelectMultiple' %}
|
|
119
|
+
<td class="shaded_top_bottom_border"><label for="{{ field.auto_id }}">{{ field.label }}</label></td>
|
|
120
|
+
<td class="shaded_top_bottom_border">{{ field }}</td>
|
|
121
|
+
{% elif field.label == 'Acquisition frequency' or field.label == 'Study workload' or field.label == 'Time period' %}
|
|
122
|
+
<td class="top_border"><label for="{{ field.auto_id }}">{{ field.label }}</label></td>
|
|
123
|
+
<td class="top_border">{{ field }}</td>
|
|
124
|
+
{% else %}
|
|
125
|
+
<td><label for="{{ field.auto_id }}">{{ field.label }}</label></td>
|
|
126
|
+
<td>{{ field }}</td>
|
|
127
|
+
{% endif %}
|
|
128
|
+
</tr>
|
|
129
|
+
{% endfor %}
|
|
130
|
+
</table>
|
|
131
|
+
|
|
132
|
+
</div>
|
|
133
|
+
</div>
|
|
134
|
+
|
|
135
|
+
</div>
|
|
136
|
+
{% endif %}
|
|
137
|
+
|
|
138
|
+
{% endfor %}
|
|
139
|
+
|
|
140
|
+
<input class="btn btn-default" name="submit" type="submit" />
|
|
141
|
+
</div>
|
|
142
|
+
|
|
143
|
+
<div class="panel-heading">
|
|
144
|
+
<h3 class="panel-title">Table options</h3>
|
|
145
|
+
</div>
|
|
146
|
+
<div class="panel-body">
|
|
147
|
+
<table aria-describedby="Number of rows per page option">
|
|
148
|
+
{{ itemsPerPageForm }}
|
|
149
|
+
</table>
|
|
150
|
+
<input class="btn btn-default" name="submit" type="submit" />
|
|
151
|
+
</div>
|
|
152
|
+
</div>
|
|
153
|
+
</form>
|
|
154
|
+
|
|
155
|
+
<script src="{{ STATIC_URL }}js/datepicker.js"></script>
|
|
156
|
+
<script src="{{ STATIC_URL }}js/formatDate.js"></script>
|
|
157
|
+
|
|
158
|
+
{% endblock %}
|
|
159
|
+
|
|
160
|
+
{% block col1 %}
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
<table class="table table-bordered table-hover row-clickable small" aria-describedby="Study summary table">
|
|
164
|
+
<tr>
|
|
165
|
+
<th scope="col">Institution</th>
|
|
166
|
+
<th scope="col">
|
|
167
|
+
<table aria-describedby="Make, model and display name">
|
|
168
|
+
<tr><td>Make</td></tr>
|
|
169
|
+
<tr><td>Model</td></tr>
|
|
170
|
+
<tr><td class="nowrap">Display name</td></tr>
|
|
171
|
+
</table>
|
|
172
|
+
</th>
|
|
173
|
+
<th scope="col">Date</th>
|
|
174
|
+
<th scope="col">
|
|
175
|
+
<table aria-describedby="Study description, procedure, requested procedure and accession number">
|
|
176
|
+
<tr><td class="nowrap">Study description</td></tr>
|
|
177
|
+
<tr><td class="nowrap">Procedure</td></tr>
|
|
178
|
+
<tr><td class="nowrap">Requested Procedure</td></tr>
|
|
179
|
+
<tr><td class="nowrap">Accession number</td></tr>
|
|
180
|
+
</table>
|
|
181
|
+
</th>
|
|
182
|
+
{% if showStandardNames %}
|
|
183
|
+
<th>Standard study names</th>
|
|
184
|
+
{% endif %}
|
|
185
|
+
<th scope="col">Number of events</th>
|
|
186
|
+
<th scope="col">Accumulated AGD (mGy)</th>
|
|
187
|
+
{% if admin.admingroup %}
|
|
188
|
+
<th scope="col">Delete?</th>
|
|
189
|
+
{% endif %}
|
|
190
|
+
</tr>
|
|
191
|
+
{% for exam in study_list %}
|
|
192
|
+
{% with equipment=exam.generalequipmentmoduleattr_set.get %}
|
|
193
|
+
{% with projection_set=exam.projectionxrayradiationdose_set.get %}
|
|
194
|
+
{% with accum_mammo_set=projection_set.accumxraydose_set.get.accummammographyxraydose_set.all %}
|
|
195
|
+
<tr>
|
|
196
|
+
<td>
|
|
197
|
+
<a href="{% url 'mg_detail_view' pk=exam.id %}">
|
|
198
|
+
{{ equipment.institution_name }}
|
|
199
|
+
</a>
|
|
200
|
+
</td>
|
|
201
|
+
<td>
|
|
202
|
+
<a href="{% url 'mg_detail_view' pk=exam.id %}">
|
|
203
|
+
<table onclick="window.location='{% url 'mg_detail_view' pk=exam.id %}';" aria-describedby="Manufacturer, model and display name">
|
|
204
|
+
<tr><td class="nowrap">{{ equipment.manufacturer }}</td></tr>
|
|
205
|
+
<tr><td class="nowrap">{{ equipment.manufacturer_model_name }}</td></tr>
|
|
206
|
+
<tr><td class="nowrap">{{ equipment.unique_equipment_name.display_name }}</td></tr>
|
|
207
|
+
</table>
|
|
208
|
+
</a>
|
|
209
|
+
</td>
|
|
210
|
+
<td>
|
|
211
|
+
<a href="{% url 'mg_detail_view' pk=exam.id %}">
|
|
212
|
+
{{ exam.study_date|date:"Y-m-d" }} {{ exam.study_time|date:"H:i" }}
|
|
213
|
+
</a>
|
|
214
|
+
</td>
|
|
215
|
+
<td>
|
|
216
|
+
<a href="{% url 'mg_detail_view' pk=exam.id %}">
|
|
217
|
+
<table onclick="window.location='{% url 'mg_detail_view' pk=exam.id %}';" aria-describedby="Study description, procedure and requested procedure name">
|
|
218
|
+
<tr><td class="nowrap">{{ exam.study_description }}</td></tr>
|
|
219
|
+
<tr><td class="nowrap">{{ exam.procedure_code_meaning }}</td></tr>
|
|
220
|
+
<tr><td class="nowrap">{{ exam.requested_procedure_code_meaning }}</td></tr>
|
|
221
|
+
{% if not exam.accession_hashed %}
|
|
222
|
+
<tr><td class="nowrap">{{ exam.accession_number }}</td></tr>
|
|
223
|
+
{% endif %}
|
|
224
|
+
</table>
|
|
225
|
+
</a>
|
|
226
|
+
</td>
|
|
227
|
+
{% if showStandardNames %}
|
|
228
|
+
<td>
|
|
229
|
+
<a href="{% url 'mg_detail_view' pk=exam.id %}">
|
|
230
|
+
<table onclick="window.location='{% url 'mg_detail_view' pk=exam.id %}';" aria-describedby="Standard study description, procedure and requested procedure names">
|
|
231
|
+
{% for std_name in exam.standard_names.all %}
|
|
232
|
+
<tr><td class="nowrap">{{ std_name.standard_name|default_if_none:"-" }}</td></tr>
|
|
233
|
+
{% endfor %}
|
|
234
|
+
</table>
|
|
235
|
+
</a>
|
|
236
|
+
</td>
|
|
237
|
+
{% endif %}
|
|
238
|
+
<td>
|
|
239
|
+
<a href="{% url 'mg_detail_view' pk=exam.id %}">
|
|
240
|
+
{{ projection_set.irradeventxraydata_set.count }}
|
|
241
|
+
</a>
|
|
242
|
+
</td>
|
|
243
|
+
<td>
|
|
244
|
+
<a href="{% url 'mg_detail_view' pk=exam.id %}">
|
|
245
|
+
{% for breast in accum_mammo_set %}
|
|
246
|
+
{% if breast.laterality.code_value in "T-04030,80248007,C0222601" %} <!-- CID 6023: Left breast -->
|
|
247
|
+
Left: {{ breast.accumulated_average_glandular_dose|floatformat:3 }}<br>
|
|
248
|
+
{% elif breast.laterality.code_value in "T-04020,73056007,C0222600" %} <!-- CID 6023: Right breast -->
|
|
249
|
+
Right: {{ breast.accumulated_average_glandular_dose|floatformat:3 }}<br>
|
|
250
|
+
{% elif breast.laterality.code_value in "T-04080,63762007,C0222605" %} <!-- CID 6023: Both breasts -->
|
|
251
|
+
Both: {{ breast.accumulated_average_glandular_dose|floatformat:3 }}<br>
|
|
252
|
+
{% endif %}
|
|
253
|
+
{% endfor %}
|
|
254
|
+
</a>
|
|
255
|
+
</td>
|
|
256
|
+
{% if admin.admingroup %}
|
|
257
|
+
<td>
|
|
258
|
+
<a href="{% url 'study_delete' exam.id %}">Delete</a>
|
|
259
|
+
</td>
|
|
260
|
+
{% endif %}
|
|
261
|
+
</tr>
|
|
262
|
+
{% endwith %}{% endwith %}{% endwith %}
|
|
263
|
+
{% endfor %}
|
|
264
|
+
</table>
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
{% endblock %}
|
|
269
|
+
|
|
270
|
+
{% block plotdata %}
|
|
271
|
+
|
|
272
|
+
{% if request.user.userprofile.plotCharts %}
|
|
273
|
+
|
|
274
|
+
<script src="{{ STATIC_URL }}js/django_reverse/reverse.js"></script>
|
|
275
|
+
|
|
276
|
+
<div class="ajax-progress"><img src="{{ STATIC_URL }}img/ajax-loader.gif"></div>
|
|
277
|
+
|
|
278
|
+
<!-- JavaScript to enable Plotly charts -->
|
|
279
|
+
<script src="{{ STATIC_URL }}js/charts/plotly-2.35.2.min.js"></script>
|
|
280
|
+
<!-- End of JavaScript to enable Plotly charts -->
|
|
281
|
+
|
|
282
|
+
<!-- JavaScript Plotly chart resizing code. -->
|
|
283
|
+
<script src="{{ STATIC_URL }}js/charts/chartFullScreen.js"></script>
|
|
284
|
+
<!-- End of JavaScript Plotly chart resizing code. -->
|
|
285
|
+
|
|
286
|
+
<!-- JavaScript chart AJAX code. -->
|
|
287
|
+
<script src="{{ STATIC_URL }}js/charts/mgChartAjax.js"></script>
|
|
288
|
+
<!-- End of JavaScript chart AJAX code. -->
|
|
289
|
+
|
|
290
|
+
{% for chart in required_charts %}
|
|
291
|
+
<div class="panel-group" id="{{ chart.var_name }}accordion">
|
|
292
|
+
<div class="panel panel-default">
|
|
293
|
+
<div class="panel-heading">
|
|
294
|
+
<h4 class="panel-title">
|
|
295
|
+
<a data-toggle="collapse" data-parent="#{{ chart.var_name }}accordion" href="#collapse{{ chart.var_name }}" onclick="setTimeout(function() {triggerResizeEvent();}, 0);">
|
|
296
|
+
{{ chart.title }}
|
|
297
|
+
</a>
|
|
298
|
+
</h4>
|
|
299
|
+
</div>
|
|
300
|
+
<div id="collapse{{ chart.var_name }}" class="panel-collapse collapse">
|
|
301
|
+
<div id="{{ chart.var_name }}ChartParentDiv" class="panel-body">
|
|
302
|
+
<div id="{{ chart.var_name }}ChartDiv"></div>
|
|
303
|
+
<a onclick="enterFullScreenPlotly('{{ chart.var_name }}ChartDiv', '{{ chart.var_name }}ChartParentDiv');"
|
|
304
|
+
class="btn btn-default btn-sm" role="button">Toggle fullscreen</a>
|
|
305
|
+
</div>
|
|
306
|
+
</div>
|
|
307
|
+
</div>
|
|
308
|
+
</div>
|
|
309
|
+
{% endfor %}
|
|
310
|
+
{% endif %}
|
|
311
|
+
|
|
312
312
|
{% endblock %}
|