// ==UserScript== // @name Demographics Copy // @description Adds a copy button to the OSCAR EMR Master Record Demographic view page to copy patient's name, DOB, HIN, address to clipboard to allow user to easily paste into OTN eConsult and WSIB TelusHealth portal webpages // @include *demographic/demographiccontrol.jsp?demographic_no* // @include *demographic/demographicaddarecordhtm.jsp?search_mode* // @include *econsult.otn.ca* // @include *providerportal.telushealth.com* // @include *ssopbas.telushealth.com* // @include *virtualcare.thinkresearch.com/patients* // @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js // ==/UserScript== var url = document.URL; window.addEventListener("load", function () { if (url.indexOf("demographic/demographiccontrol.jsp?demographic_no") != -1) { var input = document.createElement("input"); input.type = "button"; input.value = "Copy"; input.onclick = showAlert; input.setAttribute( "style", "font-size:18px;position:fixed;bottom:40px;left:20px;" ); document.body.appendChild(input); function showAlert() { var data = { firstname: $("input[name='first_name']").val(), lastname: $("input[name='last_name']").val(), year: $("input[name='year_of_birth']").val(), month: $("input[name='month_of_birth']").val(), day: $("input[name='date_of_birth']").val(), hin: $("input[name='hin']").val(), vc: $("input[name='ver']").val(), address: $("input[name='address']").val(), city: $("input[name='city']").val(), postal: $("input[name='postal']").val(), }; console.log(data); var copy = JSON.stringify(data); var highlight = $("").val(copy).appendTo("body").select(); document.execCommand("copy"); } } if (url.indexOf("econsult.otn.ca") != -1) { var input2 = document.createElement("input"); input2.type = "button"; input2.value = "Paste"; input2.onclick = showAlert2; input2.setAttribute( "style", "font-size:18px;position:fixed;bottom:40px;left:20px;" ); document.body.appendChild(input2); function showAlert2() { var content = prompt("Press Ctrl+V and Enter"); var parsed = JSON.parse(content); $("input[name='patientFirstName']").val(parsed.firstname); $("input[name='patientLastName']").val(parsed.lastname); $("input[name='patientOhip']").val(parsed.hin); $("input[id='txtPatientOhipVersion']").val(parsed.vc); $("input[id='txtPatientDob']").val( parsed.year + "-" + parsed.month + "-" + parsed.day ); } } if (url.indexOf("providerportal.telushealth.com") != -1) { var input3 = document.createElement("input"); input3.type = "button"; input3.value = "Paste"; input3.onclick = showAlert3; input3.setAttribute( "style", "font-size:18px;position:fixed;bottom:40px;left:20px;" ); document.body.appendChild(input3); function showAlert3() { var content = prompt("Press Ctrl+V and Enter"); var parsed = JSON.parse(content); $("input[name='dataElements(PatientFirstName)']").val(parsed.firstname); $("input[name='dataElements(PatientLastName)']").val(parsed.lastname); $("input[name='dataElements(street)']").val(parsed.address); $("input[name='dataElements(city)']").val(parsed.city); $("input[name='dataElements(postalCode)']").val(parsed.postal); $("input[name='dataElements(dateOfBirth)']").val( parsed.month + "/" + parsed.day + "/" + parsed.year ); document.querySelector("select[name='dataElements(province)']").value = "ON"; document.querySelector("select[name='dataElements(countryCode)']").value = "CAN"; document.querySelector("select[name='dataElements(workerLang)']").value = "lang_Eng"; } } if (url.indexOf("demographic/demographiccontrol.jsp?demographic_no") != -1) { var input5 = document.createElement("input"); input5.type = "button"; input5.value = "Paste"; input5.onclick = showAlert5; input5.setAttribute( "style", "font-size:18px;position:fixed;bottom:40px;left:80px;" ); document.body.appendChild(input5); function showAlert5() { var content = prompt("Press Ctrl+V and Enter"); var parsed = JSON.parse(content); $("input[name='phone']").val(parsed.phone); $("input[name='phone2']").val(parsed.phone2); $("input[name='demo_cell']").val(parsed.phone3); $("input[name='email']").val(parsed.email); $("input[name='address']").val(parsed.address); $("input[name='city']").val(parsed.city); $("input[name='postal']").val(parsed.postal); } } if ( url.indexOf("demographic/demographicaddarecordhtm.jsp?search_mode") != -1 ) { var input6 = document.createElement("input"); input6.type = "button"; input6.value = "Paste"; input6.onclick = showAlert6; input6.setAttribute( "style", "font-size:18px;position:fixed;bottom:40px;left:20px;" ); document.body.appendChild(input6); function showAlert6() { var content = prompt("Press Ctrl+V and Enter"); var parsed = JSON.parse(content); $("input[name='phone']").val(parsed.phone); $("input[name='phone2']").val(parsed.phone2); $("input[name='demo_cell']").val(parsed.phone3); $("input[name='email']").val(parsed.email); $("input[name='address']").val(parsed.address); $("input[name='city']").val(parsed.city); $("input[name='postal']").val(parsed.postal); } } if (url.indexOf("virtualcare.thinkresearch.com/patients") != -1) { var input7 = document.createElement("input"); input7.type = "button"; input7.value = "Paste"; input7.onclick = showAlert7; input7.setAttribute( "style", "font-size:18px;position:fixed;bottom:40px;left:20px;" ); document.body.appendChild(input7); function showAlert7() { setTimeout(function () { var content = prompt("Press Ctrl+V and Enter"); var parsed = JSON.parse(content); document.getElementById("text-input-first_name").focus(); $("input[name='first_name']").val(parsed.firstname); document.getElementById("text-input-last_name").focus(); $("input[name='last_name']").val(parsed.lastname); document .getElementById( "text-input-health_insurance_profile_attributes.health_insurance_number" ) .focus(); $( "input[name='health_insurance_profile_attributes.health_insurance_number']" ).val(parsed.hin + parsed.vc); document.getElementById("text-input-date_of_birth").focus(); $("input[name='date_of_birth']").val( parsed.day + "-" + parsed.month + "-" + parsed.year ); }, 5000); } } });