diff --git a/smash/web/templates/subjects/add.html b/smash/web/templates/subjects/add.html index c8e78745132d3fba7da0ac8307a74761ef8d5276..b3b490c6ce106a9797280c03ec61cc73521ef93f 100644 --- a/smash/web/templates/subjects/add.html +++ b/smash/web/templates/subjects/add.html @@ -89,6 +89,36 @@ $.get("{% url 'web.api.referrals' %}", function (data) { new Awesomplete(document.querySelector("#id_referral")).list = data.referrals; }); + + var checkDuplicates = function (e) { + var first_name = $("input[name='first_name']").val(); + var last_name = $("input[name='last_name']").val(); + if (last_name !== "") { + var url = "{% url 'web.api.subjects' 'GENERIC' %}" + url += "?columns[0][data]=first_name&columns[0][search][value]=" + first_name; + url += "&columns[1][data]=last_name&columns[1][search][value]=" + last_name; + $.get(url, function (data) { + subjects = []; + $.each(data.data, function (index, subject) { + if (subject.last_name.toUpperCase() === last_name.toUpperCase() && subject.first_name.toUpperCase() === first_name.toUpperCase()) { + subjects.push(subject); + } + }); + if (subjects.length > 0) { + $("#duplicate_warning").css("display", "block"); + var content = "There are possible duplicate(s) with the same name:<br/>" + $.each(subjects, function (index, subject) { + content += subject.first_name + " " + subject.last_name + ", born: " + subjects.date_born + ", screening number: " + subject.screening_number + "<br/>" + }); + $("#duplicate_warning").html(content); + } + }); + } + }; + $("input[name='last_name']").after("<div id='duplicate_warning' class='btn-warning' style='display:none'>message</div>"); + $("input[name='last_name']").on('keyup', checkDuplicates); + $("input[name='first_name']").on('keyup', checkDuplicates); + }); </script>