4786 |
27 Apr 18 |
olle |
var Consent = function() |
4786 |
27 Apr 18 |
olle |
2 |
{ |
4786 |
27 Apr 18 |
olle |
var consent = {}; |
4786 |
27 Apr 18 |
olle |
var consentToId = { "Yes": "consent.yes", "No" : "consent.no", "Not asked": "consent.notAsked" }; |
4860 |
19 Jun 18 |
olle |
var patientInfo = null; |
4860 |
19 Jun 18 |
olle |
var caseInfo = null; |
4786 |
27 Apr 18 |
olle |
var debug = 0; |
4786 |
27 Apr 18 |
olle |
8 |
|
4786 |
27 Apr 18 |
olle |
var sampleItemPrefix = ''; |
4786 |
27 Apr 18 |
olle |
var sampleItemNumDigits = 5; |
4860 |
19 Jun 18 |
olle |
var referralPrefix = ''; |
4860 |
19 Jun 18 |
olle |
var referralNumDigits = 5; |
4786 |
27 Apr 18 |
olle |
13 |
|
4860 |
19 Jun 18 |
olle |
var pnrIsValid = false; |
4860 |
19 Jun 18 |
olle |
var pnrIsAcceptable = false; |
4860 |
19 Jun 18 |
olle |
16 |
|
4786 |
27 Apr 18 |
olle |
consent.initPage = function() |
4786 |
27 Apr 18 |
olle |
18 |
{ |
4786 |
27 Apr 18 |
olle |
19 |
|
4786 |
27 Apr 18 |
olle |
// Step 1 |
4786 |
27 Apr 18 |
olle |
Events.addEventHandler('step-1', 'wizard-validate', consent.validateStep1); |
4860 |
19 Jun 18 |
olle |
Events.addEventHandler('referralId', 'keypress', Wizard.goNextOnTabOrEnter); |
4860 |
19 Jun 18 |
olle |
Events.addEventHandler('referralId', 'blur', consent.referralIdOnChange); |
4860 |
19 Jun 18 |
olle |
24 |
|
4786 |
27 Apr 18 |
olle |
// Step 2 |
4786 |
27 Apr 18 |
olle |
Events.addEventHandler('step-2', 'wizard-initialize', consent.initializeStep2); |
4786 |
27 Apr 18 |
olle |
Events.addEventHandler('step-2', 'wizard-validate', consent.validateStep2); |
4786 |
27 Apr 18 |
olle |
Events.addEventHandler('consentDate', 'blur', Wizard.validateDate); |
4786 |
27 Apr 18 |
olle |
29 |
|
4786 |
27 Apr 18 |
olle |
Events.addEventHandler('consent.yes', 'change', consent.consentOnChange); |
4786 |
27 Apr 18 |
olle |
Events.addEventHandler('consent.no', 'change', consent.consentOnChange); |
4786 |
27 Apr 18 |
olle |
Events.addEventHandler('consent.notAsked', 'change', consent.consentOnChange); |
4786 |
27 Apr 18 |
olle |
Events.addEventHandler('otherReasonIfNotAsked', 'focus', consent.onOtherReasonFocus); |
4860 |
19 Jun 18 |
olle |
34 |
|
4860 |
19 Jun 18 |
olle |
Events.addEventHandler('personalNumber', 'keyup', consent.personalNumberOnChange); |
4860 |
19 Jun 18 |
olle |
Events.addEventHandler('personalNumber', 'keypress', Wizard.goNextOnTabOrEnter); |
4786 |
27 Apr 18 |
olle |
37 |
|
4860 |
19 Jun 18 |
olle |
// Step 3 |
4860 |
19 Jun 18 |
olle |
Events.addEventHandler('step-3', 'wizard-initialize', consent.initializeStep3); |
4860 |
19 Jun 18 |
olle |
Events.addEventHandler('step-3', 'wizard-validate', consent.validateStep3); |
4860 |
19 Jun 18 |
olle |
Events.addEventHandler('familyName', 'blur', consent.nameOnChange); |
4860 |
19 Jun 18 |
olle |
Events.addEventHandler('allFirstNames', 'blur', consent.nameOnChange); |
4860 |
19 Jun 18 |
olle |
Events.addEventHandler('allFirstNames', 'keypress', Wizard.goNextOnTabOrEnter); |
4860 |
19 Jun 18 |
olle |
44 |
|
4786 |
27 Apr 18 |
olle |
// Navigation |
4786 |
27 Apr 18 |
olle |
Buttons.addClickHandler('gocancel', Wizard.cancelWizard); |
4786 |
27 Apr 18 |
olle |
Buttons.addClickHandler('gorestart', Wizard.restartWizard); |
4786 |
27 Apr 18 |
olle |
Buttons.addClickHandler('gonext', Wizard.goNextOnClick); |
4786 |
27 Apr 18 |
olle |
Buttons.addClickHandler('goregister', Wizard.goRegister); |
4786 |
27 Apr 18 |
olle |
50 |
|
4786 |
27 Apr 18 |
olle |
// Final registration |
4786 |
27 Apr 18 |
olle |
Events.addEventHandler('wizard', 'wizard-submit', consent.submit); |
4786 |
27 Apr 18 |
olle |
53 |
|
4786 |
27 Apr 18 |
olle |
// Load permissions |
4786 |
27 Apr 18 |
olle |
consent.initPermissions(); |
4786 |
27 Apr 18 |
olle |
// Load configuration |
4786 |
27 Apr 18 |
olle |
consent.loadConfiguration(); |
4786 |
27 Apr 18 |
olle |
58 |
|
4786 |
27 Apr 18 |
olle |
//Doc.show('step-1'); |
4786 |
27 Apr 18 |
olle |
//Doc.show('gonext'); |
4786 |
27 Apr 18 |
olle |
61 |
} |
4786 |
27 Apr 18 |
olle |
62 |
|
4786 |
27 Apr 18 |
olle |
consent.initPermissions = function() |
4786 |
27 Apr 18 |
olle |
64 |
{ |
4786 |
27 Apr 18 |
olle |
// Get permission information |
4786 |
27 Apr 18 |
olle |
var url = '../Install.servlet?ID='+App.getSessionId(); |
4786 |
27 Apr 18 |
olle |
url += '&cmd=GetPermissions'; |
4786 |
27 Apr 18 |
olle |
var request = Ajax.getXmlHttpRequest(); |
4786 |
27 Apr 18 |
olle |
request.open("GET", url, true); |
4786 |
27 Apr 18 |
olle |
Ajax.setReadyStateHandler(request, consent.onPermissionsLoaded, consent.onPermissionsLoaded); |
4786 |
27 Apr 18 |
olle |
request.send(null); |
4786 |
27 Apr 18 |
olle |
72 |
} |
4786 |
27 Apr 18 |
olle |
73 |
|
4786 |
27 Apr 18 |
olle |
// Callback when permission information is ready |
4786 |
27 Apr 18 |
olle |
consent.onPermissionsLoaded = function(request) |
4786 |
27 Apr 18 |
olle |
76 |
{ |
4786 |
27 Apr 18 |
olle |
if (debug) App.debug(Strings.encodeTags(request.responseText)); |
4786 |
27 Apr 18 |
olle |
var response; |
4786 |
27 Apr 18 |
olle |
var error = false; |
4786 |
27 Apr 18 |
olle |
try |
4786 |
27 Apr 18 |
olle |
81 |
{ |
4786 |
27 Apr 18 |
olle |
response = JSON.parse(request.responseText); |
4786 |
27 Apr 18 |
olle |
if (response.status != 'ok') |
4786 |
27 Apr 18 |
olle |
84 |
{ |
4786 |
27 Apr 18 |
olle |
error = response.message || response.stacktrace || 'Unexpected error'; |
4786 |
27 Apr 18 |
olle |
86 |
} |
4786 |
27 Apr 18 |
olle |
87 |
} |
4786 |
27 Apr 18 |
olle |
catch (ex) |
4786 |
27 Apr 18 |
olle |
89 |
{ |
4786 |
27 Apr 18 |
olle |
error = ex; |
4786 |
27 Apr 18 |
olle |
91 |
} |
4786 |
27 Apr 18 |
olle |
92 |
|
4786 |
27 Apr 18 |
olle |
if (error) |
4786 |
27 Apr 18 |
olle |
94 |
{ |
4786 |
27 Apr 18 |
olle |
alert(error); |
4786 |
27 Apr 18 |
olle |
return; |
4786 |
27 Apr 18 |
olle |
97 |
} |
4786 |
27 Apr 18 |
olle |
98 |
|
4786 |
27 Apr 18 |
olle |
myPermissions = response.permissions; |
4786 |
27 Apr 18 |
olle |
//var isAdmin = myPermissions['Administrator'] == 1; |
4786 |
27 Apr 18 |
olle |
//var noProjectIsActive = !App.getActiveProjectId(); |
4786 |
27 Apr 18 |
olle |
102 |
} |
4786 |
27 Apr 18 |
olle |
103 |
|
4786 |
27 Apr 18 |
olle |
consent.loadConfiguration = function() |
4786 |
27 Apr 18 |
olle |
105 |
{ |
4786 |
27 Apr 18 |
olle |
var url = '../Session.servlet?ID='+App.getSessionId(); |
4786 |
27 Apr 18 |
olle |
url += '&cmd=GetConfiguration' |
4786 |
27 Apr 18 |
olle |
var request = Ajax.getXmlHttpRequest(); |
4786 |
27 Apr 18 |
olle |
request.open("GET", url, true); |
4786 |
27 Apr 18 |
olle |
Ajax.setReadyStateHandler(request, consent.onConfiguration, consent.onConfiguration); |
4786 |
27 Apr 18 |
olle |
request.send(null); |
4786 |
27 Apr 18 |
olle |
112 |
} |
4786 |
27 Apr 18 |
olle |
113 |
|
4786 |
27 Apr 18 |
olle |
consent.onConfiguration = function(request) |
4786 |
27 Apr 18 |
olle |
115 |
{ |
4786 |
27 Apr 18 |
olle |
var frm = document.forms['meludi']; |
4786 |
27 Apr 18 |
olle |
117 |
|
4786 |
27 Apr 18 |
olle |
if (debug) |
4786 |
27 Apr 18 |
olle |
119 |
{ |
4786 |
27 Apr 18 |
olle |
App.debug(Strings.encodeTags(request.responseText)); |
4786 |
27 Apr 18 |
olle |
121 |
} |
4786 |
27 Apr 18 |
olle |
122 |
|
4786 |
27 Apr 18 |
olle |
var response; |
4786 |
27 Apr 18 |
olle |
var error = false; |
4786 |
27 Apr 18 |
olle |
try |
4786 |
27 Apr 18 |
olle |
126 |
{ |
4786 |
27 Apr 18 |
olle |
response = JSON.parse(request.responseText); |
4786 |
27 Apr 18 |
olle |
if (response.status != 'ok') |
4786 |
27 Apr 18 |
olle |
129 |
{ |
4786 |
27 Apr 18 |
olle |
error = response.message || response.stacktrace || 'Unexpected error'; |
4786 |
27 Apr 18 |
olle |
131 |
} |
4786 |
27 Apr 18 |
olle |
132 |
} |
4786 |
27 Apr 18 |
olle |
catch (ex) |
4786 |
27 Apr 18 |
olle |
134 |
{ |
4786 |
27 Apr 18 |
olle |
error = ex; |
4786 |
27 Apr 18 |
olle |
136 |
} |
4786 |
27 Apr 18 |
olle |
if (error) App.debug(error); |
4786 |
27 Apr 18 |
olle |
138 |
|
4786 |
27 Apr 18 |
olle |
// Get configuration result |
4786 |
27 Apr 18 |
olle |
var conf = response.configuration; |
4786 |
27 Apr 18 |
olle |
// Check for uses site prefix flag |
4786 |
27 Apr 18 |
olle |
usesSitePrefix = conf.usesSitePrefix; |
4786 |
27 Apr 18 |
olle |
143 |
/* |
4786 |
27 Apr 18 |
olle |
// Check for project focus default |
4786 |
27 Apr 18 |
olle |
var projectFocusDefault = conf.projectFocusDefault; |
4786 |
27 Apr 18 |
olle |
if (projectFocusDefault != null) |
4786 |
27 Apr 18 |
olle |
147 |
{ |
4786 |
27 Apr 18 |
olle |
frm.projectFocus.value = projectFocusDefault; |
4786 |
27 Apr 18 |
olle |
consent.projectFocusOnChange(); |
4786 |
27 Apr 18 |
olle |
150 |
} |
4786 |
27 Apr 18 |
olle |
// Check for specimen type default |
4786 |
27 Apr 18 |
olle |
var specimenTypeDefault = conf.specimenTypeDefault; |
4786 |
27 Apr 18 |
olle |
if (specimenTypeDefault != null) |
4786 |
27 Apr 18 |
olle |
154 |
{ |
4786 |
27 Apr 18 |
olle |
frm.specimenType.value = specimenTypeDefault; |
4786 |
27 Apr 18 |
olle |
156 |
} |
4786 |
27 Apr 18 |
olle |
// Check for specimen input type default |
4786 |
27 Apr 18 |
olle |
var specimenInputTypeDefault = conf.specimenInputTypeDefault; |
4786 |
27 Apr 18 |
olle |
if (specimenInputTypeDefault != null) |
4786 |
27 Apr 18 |
olle |
160 |
{ |
4786 |
27 Apr 18 |
olle |
frm.specimenInputType.value = specimenInputTypeDefault; |
4786 |
27 Apr 18 |
olle |
162 |
} |
4786 |
27 Apr 18 |
olle |
// Check for extracts from first specimen only default |
4786 |
27 Apr 18 |
olle |
var extractsFromFirstSpecimenOnlyDefault = conf.extractsFromFirstSpecimenOnlyDefault; |
4786 |
27 Apr 18 |
olle |
if (extractsFromFirstSpecimenOnlyDefault != null) |
4786 |
27 Apr 18 |
olle |
166 |
{ |
4786 |
27 Apr 18 |
olle |
frm.extractsFromFirstSpecimenOnlyCB.checked = extractsFromFirstSpecimenOnlyDefault; |
4786 |
27 Apr 18 |
olle |
168 |
} |
4786 |
27 Apr 18 |
olle |
169 |
*/ |
4786 |
27 Apr 18 |
olle |
170 |
|
4786 |
27 Apr 18 |
olle |
// Continue with initializing info for case |
4860 |
19 Jun 18 |
olle |
var url = '../ConsentForm.servlet?ID='+App.getSessionId(); |
4786 |
27 Apr 18 |
olle |
url += '&cmd=CountCases'; |
4786 |
27 Apr 18 |
olle |
Wizard.showLoadingAnimation('Loading cases...'); |
4786 |
27 Apr 18 |
olle |
Wizard.asyncJsonRequest(url, consent.caseInfoLoadedStep1); |
4786 |
27 Apr 18 |
olle |
176 |
} |
4786 |
27 Apr 18 |
olle |
177 |
|
4786 |
27 Apr 18 |
olle |
consent.caseInfoLoadedStep1 = function(response) |
4786 |
27 Apr 18 |
olle |
179 |
{ |
4786 |
27 Apr 18 |
olle |
var frm = document.forms['meludi']; |
4786 |
27 Apr 18 |
olle |
181 |
|
4860 |
19 Jun 18 |
olle |
//sampleItemPrefix = response.sampleItemPrefix; |
4860 |
19 Jun 18 |
olle |
//sampleItemNumDigits = response.sampleItemNumDigits; |
4786 |
27 Apr 18 |
olle |
var nofCases = response.count; |
4860 |
19 Jun 18 |
olle |
referralPrefix = response.referralPrefix; |
4860 |
19 Jun 18 |
olle |
referralNumDigits = response.referralNumDigits; |
4860 |
19 Jun 18 |
olle |
//alert("consentform_alt_rec.js::caseInfoLoadedStep1(): referralPrefix = " + referralPrefix + " referralNumDigits = " + referralNumDigits + " nofCases = " + nofCases); |
4860 |
19 Jun 18 |
olle |
//Doc.element('referralIdText').innerHTML = 'The referral ID (barcode) associated with this specimen tube ("' + referralPrefix + '" + ' + referralNumDigits + ' digits).'; |
4860 |
19 Jun 18 |
olle |
Doc.element('referralIdText').innerHTML = 'The referral ID (barcode) associated with this case ("' + referralPrefix + '" + ' + referralNumDigits + ' digits).'; |
4786 |
27 Apr 18 |
olle |
190 |
|
4786 |
27 Apr 18 |
olle |
Doc.show('step-1'); |
4786 |
27 Apr 18 |
olle |
Doc.show('gonext'); |
4786 |
27 Apr 18 |
olle |
193 |
} |
4786 |
27 Apr 18 |
olle |
194 |
|
4786 |
27 Apr 18 |
olle |
195 |
/** |
4786 |
27 Apr 18 |
olle |
Check that the case number is valid. |
4786 |
27 Apr 18 |
olle |
197 |
*/ |
4786 |
27 Apr 18 |
olle |
consent.validateStep1 = function(event) |
4786 |
27 Apr 18 |
olle |
199 |
{ |
4786 |
27 Apr 18 |
olle |
var frm = document.forms['meludi']; |
4786 |
27 Apr 18 |
olle |
201 |
|
4860 |
19 Jun 18 |
olle |
var referralId = frm.referralId.value; |
4860 |
19 Jun 18 |
olle |
var referralIsValid = false; |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('referralId'); |
4860 |
19 Jun 18 |
olle |
if (referralId == '') |
4786 |
27 Apr 18 |
olle |
206 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('referralId', 'invalid', 'Missing'); |
4860 |
19 Jun 18 |
olle |
frm.referralId.focus(); |
4786 |
27 Apr 18 |
olle |
209 |
} |
4860 |
19 Jun 18 |
olle |
else if (!Meludi.isValidCaseName2(referralId, referralPrefix, referralNumDigits)) |
4786 |
27 Apr 18 |
olle |
211 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('referralId', 'invalid', 'Only name = "' + referralPrefix + '" + ' + referralNumDigits + ' digits is allowed.'); |
4860 |
19 Jun 18 |
olle |
frm.referralId.focus(); |
4786 |
27 Apr 18 |
olle |
214 |
} |
4786 |
27 Apr 18 |
olle |
else |
4786 |
27 Apr 18 |
olle |
216 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('referralId', 'valid'); |
4860 |
19 Jun 18 |
olle |
referralIsValid = true; |
4786 |
27 Apr 18 |
olle |
219 |
} |
4786 |
27 Apr 18 |
olle |
220 |
|
4786 |
27 Apr 18 |
olle |
// If not valid, we prevent the wizard from moving to the next step |
4860 |
19 Jun 18 |
olle |
if (!referralIsValid) event.preventDefault(); |
4786 |
27 Apr 18 |
olle |
223 |
} |
4786 |
27 Apr 18 |
olle |
224 |
|
4860 |
19 Jun 18 |
olle |
consent.referralIdOnChange = function() |
4860 |
19 Jun 18 |
olle |
226 |
{ |
4860 |
19 Jun 18 |
olle |
var frm = document.forms['meludi']; |
4860 |
19 Jun 18 |
olle |
var referralId = frm.referralId.value.toUpperCase(); |
4860 |
19 Jun 18 |
olle |
referralIsValid = false; |
4860 |
19 Jun 18 |
olle |
if (referralId == '') |
4860 |
19 Jun 18 |
olle |
231 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('referralId', 'invalid', 'Missing'); |
4860 |
19 Jun 18 |
olle |
frm.referralId.focus(); |
4860 |
19 Jun 18 |
olle |
return; |
4860 |
19 Jun 18 |
olle |
235 |
} |
4860 |
19 Jun 18 |
olle |
if (!Meludi.isValidCaseName2(referralId, referralPrefix, referralNumDigits)) |
4860 |
19 Jun 18 |
olle |
237 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('referralId', 'invalid', 'Only "' + referralPrefix + '" + ' + referralNumDigits + ' digits is allowed.'); |
4860 |
19 Jun 18 |
olle |
frm.referralId.focus(); |
4860 |
19 Jun 18 |
olle |
return; |
4860 |
19 Jun 18 |
olle |
241 |
} |
4860 |
19 Jun 18 |
olle |
242 |
|
4860 |
19 Jun 18 |
olle |
frm.referralId.value = referralId; |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('referralId', 'valid'); |
4860 |
19 Jun 18 |
olle |
referralIsValid = true; |
4860 |
19 Jun 18 |
olle |
246 |
|
4860 |
19 Jun 18 |
olle |
247 |
/* |
4860 |
19 Jun 18 |
olle |
var url = '../BaseLineRegistration.servlet?ID='+App.getSessionId(); |
4860 |
19 Jun 18 |
olle |
url += '&cmd=GetCaseInfo&caseName=' + encodeURIComponent(caseName); |
4860 |
19 Jun 18 |
olle |
Wizard.showLoadingAnimation('Loading information about case...'); |
4860 |
19 Jun 18 |
olle |
Wizard.asyncJsonRequest(url, persinfo.onCaseInfoLoaded); |
4860 |
19 Jun 18 |
olle |
252 |
*/ |
4860 |
19 Jun 18 |
olle |
var url = '../ConsentForm.servlet?ID='+App.getSessionId(); |
4860 |
19 Jun 18 |
olle |
url += '&cmd=GetCaseInfo'; |
4860 |
19 Jun 18 |
olle |
url += '&referralId=' + encodeURIComponent(referralId); |
4860 |
19 Jun 18 |
olle |
url += '&caseName='; |
4860 |
19 Jun 18 |
olle |
//alert("consentform_alt_rec.js::referralIdOnChange(): url = " + url); |
4860 |
19 Jun 18 |
olle |
Wizard.showLoadingAnimation('Loading information about case...'); |
4860 |
19 Jun 18 |
olle |
Wizard.asyncJsonRequest(url, consent.onCaseInfoLoaded); |
4860 |
19 Jun 18 |
olle |
260 |
} |
4860 |
19 Jun 18 |
olle |
261 |
|
4786 |
27 Apr 18 |
olle |
// Check that the date is valid |
4786 |
27 Apr 18 |
olle |
consent.validateStep2 = function(event) |
4786 |
27 Apr 18 |
olle |
264 |
{ |
4786 |
27 Apr 18 |
olle |
var consentDateIsValid = Wizard.isValid('consentDate'); |
4786 |
27 Apr 18 |
olle |
if (!consentDateIsValid) event.preventDefault(); |
4786 |
27 Apr 18 |
olle |
267 |
} |
4786 |
27 Apr 18 |
olle |
268 |
|
4786 |
27 Apr 18 |
olle |
269 |
/** |
4786 |
27 Apr 18 |
olle |
Load information about the given case. |
4786 |
27 Apr 18 |
olle |
271 |
*/ |
4786 |
27 Apr 18 |
olle |
consent.initializeStep2 = function(event) |
4786 |
27 Apr 18 |
olle |
273 |
{ |
4786 |
27 Apr 18 |
olle |
var frm = document.forms['meludi']; |
4860 |
19 Jun 18 |
olle |
var referralId = frm.referralId.value; |
4860 |
19 Jun 18 |
olle |
//alert("consentform_alt_rec.js::initializeStep2(): referralId = " + referralId); |
4786 |
27 Apr 18 |
olle |
277 |
|
4786 |
27 Apr 18 |
olle |
var url = '../ConsentForm.servlet?ID='+App.getSessionId(); |
4786 |
27 Apr 18 |
olle |
url += '&cmd=GetCaseInfo'; |
4860 |
19 Jun 18 |
olle |
url += '&referralId=' + encodeURIComponent(referralId); |
4860 |
19 Jun 18 |
olle |
url += '&caseName='; |
4860 |
19 Jun 18 |
olle |
//alert("consentform_alt_rec.js::initializeStep2(): url = " + url); |
4786 |
27 Apr 18 |
olle |
283 |
|
4786 |
27 Apr 18 |
olle |
Wizard.showLoadingAnimation('Loading case information...'); |
4786 |
27 Apr 18 |
olle |
Wizard.asyncJsonRequest(url, consent.caseInfoLoaded); |
4786 |
27 Apr 18 |
olle |
286 |
} |
4786 |
27 Apr 18 |
olle |
287 |
|
4786 |
27 Apr 18 |
olle |
288 |
/** |
4786 |
27 Apr 18 |
olle |
Initalize the second step based on the information we have about the case. |
4786 |
27 Apr 18 |
olle |
290 |
*/ |
4786 |
27 Apr 18 |
olle |
consent.caseInfoLoaded = function(response) |
4786 |
27 Apr 18 |
olle |
292 |
{ |
4786 |
27 Apr 18 |
olle |
var frm = document.forms['meludi']; |
4860 |
19 Jun 18 |
olle |
//var caseName = frm.referralId.value; |
4786 |
27 Apr 18 |
olle |
patientInfo = response.patientInfo; |
4860 |
19 Jun 18 |
olle |
caseInfo = response.caseInfo; |
4860 |
19 Jun 18 |
olle |
var caseName = caseInfo.name; |
4786 |
27 Apr 18 |
olle |
var specimenInfo = response.specimenInfo; |
4789 |
04 May 18 |
olle |
//alert("consentform_alt_rec.js::caseInfoLoaded(): patientInfo = " + JSON.stringify(patientInfo)); |
4789 |
04 May 18 |
olle |
//alert("consentform_alt_rec.js::caseInfoLoaded(): caseInfo = " + JSON.stringify(caseInfo)); |
4789 |
04 May 18 |
olle |
//alert("consentform_alt_rec.js::caseInfoLoaded(): specimenInfo = " + JSON.stringify(specimenInfo)); |
4789 |
04 May 18 |
olle |
var hasPAD = false; |
4786 |
27 Apr 18 |
olle |
303 |
|
4786 |
27 Apr 18 |
olle |
sampleItemPrefix = response.sampleItemPrefix; |
4786 |
27 Apr 18 |
olle |
sampleItemNumDigits = response.sampleItemNumDigits; |
4860 |
19 Jun 18 |
olle |
306 |
|
4860 |
19 Jun 18 |
olle |
frm.caseName.value = caseName; |
4786 |
27 Apr 18 |
olle |
308 |
|
4786 |
27 Apr 18 |
olle |
if (patientInfo) |
4786 |
27 Apr 18 |
olle |
310 |
{ |
4786 |
27 Apr 18 |
olle |
var moreCasesHtml = ''; |
4786 |
27 Apr 18 |
olle |
var numMissing = 0; |
4786 |
27 Apr 18 |
olle |
313 |
|
4786 |
27 Apr 18 |
olle |
if (patientInfo.allCases) |
4786 |
27 Apr 18 |
olle |
315 |
{ |
4786 |
27 Apr 18 |
olle |
for (var i = 0; i < patientInfo.allCases.length; i++) |
4786 |
27 Apr 18 |
olle |
317 |
{ |
4786 |
27 Apr 18 |
olle |
var c = patientInfo.allCases[i]; |
4786 |
27 Apr 18 |
olle |
//var laterality = c.laterality ? ' ('+c.laterality+')' : ''; |
4786 |
27 Apr 18 |
olle |
var checked = ''; |
4786 |
27 Apr 18 |
olle |
if (!c.consent) |
4786 |
27 Apr 18 |
olle |
322 |
{ |
4786 |
27 Apr 18 |
olle |
checked = 'checked'; |
4786 |
27 Apr 18 |
olle |
numMissing++; |
4786 |
27 Apr 18 |
olle |
325 |
} |
4786 |
27 Apr 18 |
olle |
326 |
|
4786 |
27 Apr 18 |
olle |
if (c.name == caseName && c.consentDate) |
4786 |
27 Apr 18 |
olle |
328 |
{ |
4786 |
27 Apr 18 |
olle |
frm.consentDate.value = c.consentDate; |
4786 |
27 Apr 18 |
olle |
330 |
} |
4786 |
27 Apr 18 |
olle |
moreCasesHtml += '<input type="checkbox" name="case.'+c.id+'" id="case.'+c.id+'" ' + checked +'>'; |
4786 |
27 Apr 18 |
olle |
//moreCasesHtml += '<label for="case.'+c.id+'">Case: ' + Strings.encodeTags(c.name + laterality) + '</label><br>'; |
4786 |
27 Apr 18 |
olle |
333 |
} |
4786 |
27 Apr 18 |
olle |
334 |
} |
4786 |
27 Apr 18 |
olle |
335 |
|
4786 |
27 Apr 18 |
olle |
336 |
|
4786 |
27 Apr 18 |
olle |
337 |
/* |
4786 |
27 Apr 18 |
olle |
if (patientInfo.allBlood) |
4786 |
27 Apr 18 |
olle |
339 |
{ |
4786 |
27 Apr 18 |
olle |
for (var i = 0; i < patientInfo.allBlood.length; i++) |
4786 |
27 Apr 18 |
olle |
341 |
{ |
4786 |
27 Apr 18 |
olle |
var c = patientInfo.allBlood[i]; |
4786 |
27 Apr 18 |
olle |
var checked = ''; |
4786 |
27 Apr 18 |
olle |
if (!c.consent) |
4786 |
27 Apr 18 |
olle |
345 |
{ |
4786 |
27 Apr 18 |
olle |
checked = 'checked'; |
4786 |
27 Apr 18 |
olle |
numMissing++; |
4786 |
27 Apr 18 |
olle |
348 |
} |
4786 |
27 Apr 18 |
olle |
if (c.name.indexOf(caseName) == 0 && c.consentDate) |
4786 |
27 Apr 18 |
olle |
350 |
{ |
4786 |
27 Apr 18 |
olle |
frm.consentDate.value = c.consentDate; |
4786 |
27 Apr 18 |
olle |
352 |
} |
4786 |
27 Apr 18 |
olle |
moreCasesHtml += '<input type="checkbox" name="blood.'+ c.id + '" id="blood.'+c.id+'" ' + checked +'>'; |
4786 |
27 Apr 18 |
olle |
moreCasesHtml += '<label for="blood.'+c.id+'">Blood: ' + Strings.encodeTags(c.name) + '</label><br>'; |
4786 |
27 Apr 18 |
olle |
355 |
} |
4786 |
27 Apr 18 |
olle |
356 |
} |
4786 |
27 Apr 18 |
olle |
357 |
*/ |
4786 |
27 Apr 18 |
olle |
358 |
|
4786 |
27 Apr 18 |
olle |
consent.enableConsentOption('consent.yes', true); |
4786 |
27 Apr 18 |
olle |
Doc.element('moreCases').innerHTML = moreCasesHtml; |
4786 |
27 Apr 18 |
olle |
Doc.show('moreCasesSection'); |
4786 |
27 Apr 18 |
olle |
362 |
|
4786 |
27 Apr 18 |
olle |
if (numMissing > 0) |
4786 |
27 Apr 18 |
olle |
364 |
{ |
4786 |
27 Apr 18 |
olle |
Wizard.setInputStatus('consent', 'valid', 'This patient already exists and has at least one case or blood sample with missing consent.'); |
4786 |
27 Apr 18 |
olle |
366 |
} |
4786 |
27 Apr 18 |
olle |
else |
4786 |
27 Apr 18 |
olle |
368 |
{ |
4786 |
27 Apr 18 |
olle |
Wizard.setInputStatus('consent', 'valid', '"Yes" has already been registered for all case and blood samples for this patient.'); |
4786 |
27 Apr 18 |
olle |
370 |
} |
4786 |
27 Apr 18 |
olle |
Doc.show('morehelp.multiple', 'inline'); |
4786 |
27 Apr 18 |
olle |
Doc.show('morehelp.yesonly', 'inline'); |
4860 |
19 Jun 18 |
olle |
//Doc.show('gocancel'); |
4860 |
19 Jun 18 |
olle |
//Doc.show('goregister'); |
4786 |
27 Apr 18 |
olle |
375 |
|
4860 |
19 Jun 18 |
olle |
if (patientInfo.personalNumber) |
4860 |
19 Jun 18 |
olle |
377 |
{ |
4860 |
19 Jun 18 |
olle |
frm.personalNumber.value = patientInfo.personalNumber; |
4860 |
19 Jun 18 |
olle |
frm.familyName.value = patientInfo.familyName; |
4860 |
19 Jun 18 |
olle |
frm.allFirstNames.value = patientInfo.allFirstNames; |
4860 |
19 Jun 18 |
olle |
381 |
} |
4786 |
27 Apr 18 |
olle |
382 |
} |
4860 |
19 Jun 18 |
olle |
if (caseInfo) |
4786 |
27 Apr 18 |
olle |
384 |
{ |
4786 |
27 Apr 18 |
olle |
if (caseInfo.consent) |
4786 |
27 Apr 18 |
olle |
386 |
{ |
4786 |
27 Apr 18 |
olle |
// A consent has already been registered for this case |
4786 |
27 Apr 18 |
olle |
// We do not support updating this |
4786 |
27 Apr 18 |
olle |
consent.enableConsentOption(consentToId[caseInfo.consent], true); |
4786 |
27 Apr 18 |
olle |
Wizard.setInputStatus('consent', '', '"' + caseInfo.consent + '" has already been registered for this case. It is not possible to change with this wizard.'); |
4786 |
27 Apr 18 |
olle |
if (caseInfo.consentDate) |
4786 |
27 Apr 18 |
olle |
392 |
{ |
4786 |
27 Apr 18 |
olle |
frm.consentDate.value = caseInfo.consentDate; |
4786 |
27 Apr 18 |
olle |
frm.consentDate.disabled = true; |
4786 |
27 Apr 18 |
olle |
395 |
} |
4786 |
27 Apr 18 |
olle |
Doc.show('gorestart'); |
4786 |
27 Apr 18 |
olle |
397 |
} |
4786 |
27 Apr 18 |
olle |
else |
4786 |
27 Apr 18 |
olle |
399 |
{ |
4786 |
27 Apr 18 |
olle |
consent.enableConsentOption('consent.no', true); |
4786 |
27 Apr 18 |
olle |
consent.enableConsentOption('consent.notAsked'); |
4786 |
27 Apr 18 |
olle |
consent.enableConsentOption('consent.yes'); |
4786 |
27 Apr 18 |
olle |
if (caseInfo.consentDate) |
4786 |
27 Apr 18 |
olle |
404 |
{ |
4786 |
27 Apr 18 |
olle |
frm.consentDate.value = caseInfo.consentDate; |
4786 |
27 Apr 18 |
olle |
frm.consentDate.disabled = true; |
4786 |
27 Apr 18 |
olle |
407 |
} |
4786 |
27 Apr 18 |
olle |
Doc.show('morehelp.any', 'inline'); |
4860 |
19 Jun 18 |
olle |
//Doc.show('gocancel'); |
4860 |
19 Jun 18 |
olle |
//Doc.show('goregister'); |
4860 |
19 Jun 18 |
olle |
Doc.show('step-2'); |
4860 |
19 Jun 18 |
olle |
Doc.show('gonext'); |
4786 |
27 Apr 18 |
olle |
413 |
} |
4786 |
27 Apr 18 |
olle |
414 |
} |
4786 |
27 Apr 18 |
olle |
else if (specimenInfo) |
4786 |
27 Apr 18 |
olle |
416 |
{ |
4789 |
04 May 18 |
olle |
if (specimen.pad && !hasPAD) |
4789 |
04 May 18 |
olle |
418 |
{ |
4789 |
04 May 18 |
olle |
hasPAD = true; |
4789 |
04 May 18 |
olle |
thisCasePAD = specimen.pad; |
4789 |
04 May 18 |
olle |
421 |
} |
4786 |
27 Apr 18 |
olle |
// There is no existing case but there are specimen related to it |
4786 |
27 Apr 18 |
olle |
// This wizard will only allow 'Yes' option on the consent form |
4786 |
27 Apr 18 |
olle |
consent.enableConsentOption('consent.yes', true); |
4786 |
27 Apr 18 |
olle |
Wizard.setInputStatus('consent', 'valid', 'Specimen tubes for this case already exists.'); |
4786 |
27 Apr 18 |
olle |
Doc.show('morehelp.yesonly', 'inline'); |
4860 |
19 Jun 18 |
olle |
//Doc.show('gocancel'); |
4860 |
19 Jun 18 |
olle |
//Doc.show('goregister'); |
4860 |
19 Jun 18 |
olle |
Doc.show('step-2'); |
4860 |
19 Jun 18 |
olle |
Doc.show('gonext'); |
4786 |
27 Apr 18 |
olle |
431 |
} |
4786 |
27 Apr 18 |
olle |
else |
4786 |
27 Apr 18 |
olle |
433 |
{ |
4786 |
27 Apr 18 |
olle |
// We have no information about this case -- but allow a consent to be registered in any case |
4786 |
27 Apr 18 |
olle |
consent.enableConsentOption('consent.no', true); |
4786 |
27 Apr 18 |
olle |
consent.enableConsentOption('consent.notAsked'); |
4786 |
27 Apr 18 |
olle |
consent.enableConsentOption('consent.yes'); |
4786 |
27 Apr 18 |
olle |
Doc.show('morehelp.any', 'inline'); |
4860 |
19 Jun 18 |
olle |
//Doc.show('gocancel'); |
4860 |
19 Jun 18 |
olle |
//Doc.show('goregister'); |
4860 |
19 Jun 18 |
olle |
Doc.show('step-2'); |
4860 |
19 Jun 18 |
olle |
Doc.show('gonext'); |
4786 |
27 Apr 18 |
olle |
443 |
} |
4786 |
27 Apr 18 |
olle |
444 |
|
4786 |
27 Apr 18 |
olle |
Wizard.setCurrentStep(2); |
4860 |
19 Jun 18 |
olle |
if (!frm.consentDate.disabled) frm.consentDate.focus(); |
4860 |
19 Jun 18 |
olle |
447 |
} |
4860 |
19 Jun 18 |
olle |
448 |
|
4860 |
19 Jun 18 |
olle |
consent.personalNumberOnChange = function() |
4860 |
19 Jun 18 |
olle |
450 |
{ |
4860 |
19 Jun 18 |
olle |
var frm = document.forms['meludi']; |
4860 |
19 Jun 18 |
olle |
var pnr = frm.personalNumber.value; |
4860 |
19 Jun 18 |
olle |
pnrIsValid = false; |
4860 |
19 Jun 18 |
olle |
pnrIsAcceptable = true; |
4786 |
27 Apr 18 |
olle |
455 |
|
4860 |
19 Jun 18 |
olle |
var pnrLen = pnr.length; |
4860 |
19 Jun 18 |
olle |
if (pnrLen != 12 && pnrLen != 10) |
4860 |
19 Jun 18 |
olle |
458 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('personalNumber', 'warning', pnrLen < 12 ? 'Too short' : 'Too long'); |
4860 |
19 Jun 18 |
olle |
return; |
4860 |
19 Jun 18 |
olle |
461 |
} |
4860 |
19 Jun 18 |
olle |
462 |
|
4860 |
19 Jun 18 |
olle |
if (!pnr.match(/^\d+$/)) |
4860 |
19 Jun 18 |
olle |
464 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('personalNumber', 'warning', 'Non-standard personal number'); |
4860 |
19 Jun 18 |
olle |
return; |
4860 |
19 Jun 18 |
olle |
467 |
} |
4860 |
19 Jun 18 |
olle |
468 |
|
4860 |
19 Jun 18 |
olle |
var datePart = pnr.substring(0, pnrLen - 4); // Remove last four digits |
4860 |
19 Jun 18 |
olle |
var dateFormat = pnrLen == 10 ? 'yyMMdd' : 'yyyyMMdd'; |
4860 |
19 Jun 18 |
olle |
var isValidDate = Dates.isDate(datePart, dateFormat); |
4860 |
19 Jun 18 |
olle |
if (!isValidDate) |
4860 |
19 Jun 18 |
olle |
473 |
{ |
4860 |
19 Jun 18 |
olle |
var dayInMonth = parseInt(datePart.substring(-2), 10); // Last two characters |
4860 |
19 Jun 18 |
olle |
if (dayInMonth > 60) |
4860 |
19 Jun 18 |
olle |
476 |
{ |
4860 |
19 Jun 18 |
olle |
// 'Samordningsnummer' has day-in-month + 60; check this |
4860 |
19 Jun 18 |
olle |
dayInMonth -= 60; |
4860 |
19 Jun 18 |
olle |
var tmpPnr = pnr.substring(0, pnrLen - 6); // First 4 or 6 digits is year+month |
4860 |
19 Jun 18 |
olle |
if (dayInMonth < 10) tmpPnr += '0'; |
4860 |
19 Jun 18 |
olle |
tmpPnr += dayInMonth; |
4860 |
19 Jun 18 |
olle |
isValidDate = Dates.isDate(tmpPnr, dateFormat); |
4860 |
19 Jun 18 |
olle |
483 |
} |
4860 |
19 Jun 18 |
olle |
484 |
} |
4860 |
19 Jun 18 |
olle |
if (!isValidDate) |
4860 |
19 Jun 18 |
olle |
486 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('personalNumber', 'warning', 'Not a valid date'); |
4860 |
19 Jun 18 |
olle |
return; |
4860 |
19 Jun 18 |
olle |
489 |
} |
4860 |
19 Jun 18 |
olle |
490 |
|
4860 |
19 Jun 18 |
olle |
if (!Meludi.personalNumberControlDigitCheck(pnr.substr(pnrLen == 10 ? 0 : 2))) |
4860 |
19 Jun 18 |
olle |
492 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('personalNumber', 'warning', 'Invalid control digit'); |
4860 |
19 Jun 18 |
olle |
return; |
4860 |
19 Jun 18 |
olle |
495 |
} |
4860 |
19 Jun 18 |
olle |
496 |
|
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('personalNumber', 'valid'); |
4860 |
19 Jun 18 |
olle |
pnrIsValid = true; |
4860 |
19 Jun 18 |
olle |
Wizard.hideGoNextConfirmation(); |
4786 |
27 Apr 18 |
olle |
500 |
} |
4860 |
19 Jun 18 |
olle |
501 |
|
4860 |
19 Jun 18 |
olle |
consent.initializeStep3 = function(event) |
4860 |
19 Jun 18 |
olle |
503 |
{ |
4860 |
19 Jun 18 |
olle |
var frm = document.forms['meludi']; |
4860 |
19 Jun 18 |
olle |
var pnr = frm.personalNumber.value; |
4860 |
19 Jun 18 |
olle |
if (pnr.length == 10 && pnrIsValid) |
4860 |
19 Jun 18 |
olle |
507 |
{ |
4860 |
19 Jun 18 |
olle |
var year = Meludi.fullYear(parseInt(pnr.substr(0, 2), 10)); |
4860 |
19 Jun 18 |
olle |
pnr = year + pnr.substr(2); |
4860 |
19 Jun 18 |
olle |
510 |
} |
4786 |
27 Apr 18 |
olle |
511 |
|
4860 |
19 Jun 18 |
olle |
var url = '../ConsentForm.servlet?ID='+App.getSessionId(); |
4860 |
19 Jun 18 |
olle |
url += '&cmd=GetPatientInfo'; |
4860 |
19 Jun 18 |
olle |
url += '&personalNumber=' + encodeURIComponent(pnr); |
4860 |
19 Jun 18 |
olle |
url += '&pnrIsValid=' + pnrIsValid; |
4860 |
19 Jun 18 |
olle |
516 |
|
4860 |
19 Jun 18 |
olle |
Wizard.showLoadingAnimation('Loading patient information...'); |
4860 |
19 Jun 18 |
olle |
Wizard.asyncJsonRequest(url, consent.patientInfoLoaded); |
4860 |
19 Jun 18 |
olle |
519 |
} |
4860 |
19 Jun 18 |
olle |
520 |
|
4786 |
27 Apr 18 |
olle |
521 |
|
4860 |
19 Jun 18 |
olle |
consent.patientInfoLoaded = function(response) |
4860 |
19 Jun 18 |
olle |
523 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setCurrentStep(3); |
4860 |
19 Jun 18 |
olle |
// Get patient information from the AJAX response |
4860 |
19 Jun 18 |
olle |
patientInfo = response.patientInfo; |
4860 |
19 Jun 18 |
olle |
var frm = document.forms['meludi']; |
4860 |
19 Jun 18 |
olle |
528 |
|
4860 |
19 Jun 18 |
olle |
529 |
|
4860 |
19 Jun 18 |
olle |
frm.patientCode.value=patientInfo.name; |
4860 |
19 Jun 18 |
olle |
frm.familyName.value = patientInfo.familyName || ''; |
4860 |
19 Jun 18 |
olle |
frm.allFirstNames.value = patientInfo.allFirstNames || ''; |
4860 |
19 Jun 18 |
olle |
Doc.element('dateOfBirth').innerHTML = patientInfo.dateOfBirth ? Strings.encodeTags(patientInfo.dateOfBirth) : '---'; |
4860 |
19 Jun 18 |
olle |
Doc.element('gender').innerHTML = patientInfo.gender ? Strings.encodeTags(patientInfo.gender) : '---'; |
4860 |
19 Jun 18 |
olle |
frm.familyName.focus(); |
4860 |
19 Jun 18 |
olle |
536 |
|
4860 |
19 Jun 18 |
olle |
if (!patientInfo.id) |
4860 |
19 Jun 18 |
olle |
538 |
{ |
4860 |
19 Jun 18 |
olle |
if (!pnrIsValid) |
4860 |
19 Jun 18 |
olle |
540 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('gender', 'warning', 'Gender and DateOfBirth can\'t be automatically generated for non-standard Personal number'); |
4860 |
19 Jun 18 |
olle |
542 |
} |
4860 |
19 Jun 18 |
olle |
543 |
} |
4860 |
19 Jun 18 |
olle |
else |
4860 |
19 Jun 18 |
olle |
545 |
{ |
4860 |
19 Jun 18 |
olle |
Doc.element('step-3-title').innerHTML = 'Existing patient: Verify names'; |
4860 |
19 Jun 18 |
olle |
frm.patientCode.disabled = true; |
4860 |
19 Jun 18 |
olle |
548 |
} |
4860 |
19 Jun 18 |
olle |
549 |
|
4860 |
19 Jun 18 |
olle |
//Doc.show('gonext'); |
4860 |
19 Jun 18 |
olle |
//Doc.show('gocancel'); |
4860 |
19 Jun 18 |
olle |
Doc.show('gocancel'); |
4860 |
19 Jun 18 |
olle |
Doc.show('goregister'); |
4860 |
19 Jun 18 |
olle |
554 |
} |
4860 |
19 Jun 18 |
olle |
555 |
|
4860 |
19 Jun 18 |
olle |
consent.nameOnChange = function(event) |
4860 |
19 Jun 18 |
olle |
557 |
{ |
4860 |
19 Jun 18 |
olle |
var field = event.target; |
4860 |
19 Jun 18 |
olle |
patientInfo[field.name] = field.value; |
4860 |
19 Jun 18 |
olle |
if (field.value == '') |
4860 |
19 Jun 18 |
olle |
561 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus(field, 'warning', 'Missing'); |
4860 |
19 Jun 18 |
olle |
563 |
} |
4860 |
19 Jun 18 |
olle |
else |
4860 |
19 Jun 18 |
olle |
565 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus(field, 'valid'); |
4860 |
19 Jun 18 |
olle |
Wizard.hideGoNextConfirmation(); |
4860 |
19 Jun 18 |
olle |
568 |
} |
4860 |
19 Jun 18 |
olle |
569 |
} |
4860 |
19 Jun 18 |
olle |
570 |
|
4860 |
19 Jun 18 |
olle |
consent.validateStep3 = function(event) |
4860 |
19 Jun 18 |
olle |
572 |
{ |
4860 |
19 Jun 18 |
olle |
var valid = true; |
4860 |
19 Jun 18 |
olle |
var acceptable = true; |
4860 |
19 Jun 18 |
olle |
var frm = document.forms['meludi']; |
4860 |
19 Jun 18 |
olle |
576 |
|
4860 |
19 Jun 18 |
olle |
if (frm.allFirstNames.value == '') |
4860 |
19 Jun 18 |
olle |
578 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('allFirstNames', 'warning', 'Missing'); |
4860 |
19 Jun 18 |
olle |
valid = false; |
4860 |
19 Jun 18 |
olle |
581 |
} |
4860 |
19 Jun 18 |
olle |
else |
4860 |
19 Jun 18 |
olle |
583 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('allFirstNames', 'valid'); |
4860 |
19 Jun 18 |
olle |
585 |
} |
4860 |
19 Jun 18 |
olle |
586 |
|
4860 |
19 Jun 18 |
olle |
if (frm.familyName.value == '') |
4860 |
19 Jun 18 |
olle |
588 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('familyName', 'warning', 'Missing'); |
4860 |
19 Jun 18 |
olle |
valid = false; |
4860 |
19 Jun 18 |
olle |
591 |
} |
4860 |
19 Jun 18 |
olle |
else |
4860 |
19 Jun 18 |
olle |
593 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('familyName', 'valid'); |
4860 |
19 Jun 18 |
olle |
595 |
} |
4860 |
19 Jun 18 |
olle |
596 |
|
4860 |
19 Jun 18 |
olle |
// New patient only |
4860 |
19 Jun 18 |
olle |
if (!patientInfo.id) |
4860 |
19 Jun 18 |
olle |
599 |
{ |
4860 |
19 Jun 18 |
olle |
if (frm.patientCode.value == '') |
4860 |
19 Jun 18 |
olle |
601 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('patientCode', 'invalid', 'Missing'); |
4860 |
19 Jun 18 |
olle |
frm.patientCode.focus(); |
4860 |
19 Jun 18 |
olle |
valid = false; |
4860 |
19 Jun 18 |
olle |
acceptable = false; |
4860 |
19 Jun 18 |
olle |
606 |
} |
4860 |
19 Jun 18 |
olle |
else |
4860 |
19 Jun 18 |
olle |
608 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.setInputStatus('patientCode', 'valid'); |
4860 |
19 Jun 18 |
olle |
patientInfo.name = frm.patientCode.value; |
4860 |
19 Jun 18 |
olle |
611 |
} |
4860 |
19 Jun 18 |
olle |
612 |
} |
4860 |
19 Jun 18 |
olle |
613 |
|
4860 |
19 Jun 18 |
olle |
614 |
/* |
4860 |
19 Jun 18 |
olle |
if (event.detail.auto) |
4860 |
19 Jun 18 |
olle |
616 |
{ |
4860 |
19 Jun 18 |
olle |
if (!valid) |
4860 |
19 Jun 18 |
olle |
618 |
{ |
4860 |
19 Jun 18 |
olle |
Wizard.showGoNextConfirmation(true, 'Check to verify registration with missing name(s).'); |
4860 |
19 Jun 18 |
olle |
event.preventDefault(); |
4860 |
19 Jun 18 |
olle |
621 |
} |
4860 |
19 Jun 18 |
olle |
622 |
} |
4860 |
19 Jun 18 |
olle |
else |
4860 |
19 Jun 18 |
olle |
624 |
{ |
4860 |
19 Jun 18 |
olle |
if (!acceptable) event.preventDefault(); |
4860 |
19 Jun 18 |
olle |
626 |
} |
4860 |
19 Jun 18 |
olle |
627 |
*/ |
4860 |
19 Jun 18 |
olle |
if (!acceptable) event.preventDefault(); |
4860 |
19 Jun 18 |
olle |
629 |
} |
4860 |
19 Jun 18 |
olle |
630 |
|
4786 |
27 Apr 18 |
olle |
consent.submit = function() |
4786 |
27 Apr 18 |
olle |
632 |
{ |
4786 |
27 Apr 18 |
olle |
633 |
|
4786 |
27 Apr 18 |
olle |
var frm = document.forms['meludi']; |
4860 |
19 Jun 18 |
olle |
var updateMode = caseInfo.id; |
4786 |
27 Apr 18 |
olle |
636 |
|
4786 |
27 Apr 18 |
olle |
var consentInfo = {}; |
4860 |
19 Jun 18 |
olle |
consentInfo.referralId = frm.referralId.value; |
4786 |
27 Apr 18 |
olle |
consentInfo.caseName = frm.caseName.value; |
4786 |
27 Apr 18 |
olle |
consentInfo.consentDate = frm.consentDate.value; |
4786 |
27 Apr 18 |
olle |
consentInfo.consent = Forms.getCheckedRadio(frm.consent).value; |
4786 |
27 Apr 18 |
olle |
if (consentInfo.consent == 'Not asked') |
4786 |
27 Apr 18 |
olle |
643 |
{ |
4786 |
27 Apr 18 |
olle |
var reasonIfNotAsked = ''; |
4786 |
27 Apr 18 |
olle |
for (var i = 0; i < frm.reasonIfNotAsked.length; i++) |
4786 |
27 Apr 18 |
olle |
646 |
{ |
4786 |
27 Apr 18 |
olle |
var option = frm.reasonIfNotAsked[i]; |
4786 |
27 Apr 18 |
olle |
if (option.checked) |
4786 |
27 Apr 18 |
olle |
649 |
{ |
4786 |
27 Apr 18 |
olle |
if (option.id == 'notAsked.other') |
4786 |
27 Apr 18 |
olle |
651 |
{ |
4786 |
27 Apr 18 |
olle |
reasonIfNotAsked += frm.otherReasonIfNotAsked.value; |
4786 |
27 Apr 18 |
olle |
653 |
} |
4786 |
27 Apr 18 |
olle |
else |
4786 |
27 Apr 18 |
olle |
655 |
{ |
4786 |
27 Apr 18 |
olle |
var label = Doc.element(option.id + '.label'); |
4786 |
27 Apr 18 |
olle |
reasonIfNotAsked += label.innerHTML + '\n'; |
4786 |
27 Apr 18 |
olle |
658 |
} |
4786 |
27 Apr 18 |
olle |
659 |
} |
4786 |
27 Apr 18 |
olle |
660 |
} |
4786 |
27 Apr 18 |
olle |
consentInfo.reasonIfNotAsked = reasonIfNotAsked; |
4786 |
27 Apr 18 |
olle |
662 |
} |
4879 |
27 Jun 18 |
olle |
consentInfo.diagnosisConfirmed = frm.diagnosisConfirmedCB.value; |
4786 |
27 Apr 18 |
olle |
664 |
|
4786 |
27 Apr 18 |
olle |
if (patientInfo) |
4786 |
27 Apr 18 |
olle |
666 |
{ |
4786 |
27 Apr 18 |
olle |
var selectedSamples = []; |
4786 |
27 Apr 18 |
olle |
if (patientInfo.allCases) |
4786 |
27 Apr 18 |
olle |
669 |
{ |
4786 |
27 Apr 18 |
olle |
for (var i = 0; i < patientInfo.allCases.length; i++) |
4786 |
27 Apr 18 |
olle |
671 |
{ |
4786 |
27 Apr 18 |
olle |
var c = patientInfo.allCases[i]; |
4786 |
27 Apr 18 |
olle |
var chk = frm['case.'+c.id]; |
4786 |
27 Apr 18 |
olle |
if (chk.checked) selectedSamples.push(c.id); |
4786 |
27 Apr 18 |
olle |
675 |
} |
4786 |
27 Apr 18 |
olle |
676 |
} |
4786 |
27 Apr 18 |
olle |
677 |
|
4786 |
27 Apr 18 |
olle |
if (patientInfo.allBlood) |
4786 |
27 Apr 18 |
olle |
679 |
{ |
4786 |
27 Apr 18 |
olle |
for (var i = 0; i < patientInfo.allBlood.length; i++) |
4786 |
27 Apr 18 |
olle |
681 |
{ |
4786 |
27 Apr 18 |
olle |
var c = patientInfo.allBlood[i]; |
4786 |
27 Apr 18 |
olle |
var chk = frm['blood.'+c.id]; |
4786 |
27 Apr 18 |
olle |
if (chk.checked) selectedSamples.push(c.id); |
4786 |
27 Apr 18 |
olle |
685 |
} |
4786 |
27 Apr 18 |
olle |
686 |
} |
4786 |
27 Apr 18 |
olle |
consentInfo.selectedSamples = selectedSamples; |
4786 |
27 Apr 18 |
olle |
688 |
} |
4860 |
19 Jun 18 |
olle |
else |
4860 |
19 Jun 18 |
olle |
690 |
{ |
4860 |
19 Jun 18 |
olle |
patientInfo.name = frm.patientCode.value; |
4860 |
19 Jun 18 |
olle |
patientInfo.personalNumber = frm.personalNumber.value; |
4860 |
19 Jun 18 |
olle |
patientInfo.familyName = frm.familyName.value; |
4860 |
19 Jun 18 |
olle |
patientInfo.allFirstNames = frm.allFirstNames.value; |
4860 |
19 Jun 18 |
olle |
695 |
} |
4786 |
27 Apr 18 |
olle |
696 |
|
4786 |
27 Apr 18 |
olle |
var submitInfo = {}; |
4786 |
27 Apr 18 |
olle |
submitInfo.consentInfo = consentInfo; |
4860 |
19 Jun 18 |
olle |
submitInfo.patientInfo = patientInfo; |
4786 |
27 Apr 18 |
olle |
700 |
|
4786 |
27 Apr 18 |
olle |
var url = '../ConsentForm.servlet?ID=' + App.getSessionId(); |
4786 |
27 Apr 18 |
olle |
url += '&cmd=RegisterConsent'; |
4786 |
27 Apr 18 |
olle |
703 |
|
4786 |
27 Apr 18 |
olle |
Wizard.showLoadingAnimation('Registering consent information...'); |
4786 |
27 Apr 18 |
olle |
Wizard.asyncJsonRequest(url, consent.submissionResults, 'POST', JSON.stringify(submitInfo)); |
4786 |
27 Apr 18 |
olle |
706 |
} |
4786 |
27 Apr 18 |
olle |
707 |
|
4786 |
27 Apr 18 |
olle |
708 |
|
4786 |
27 Apr 18 |
olle |
consent.submissionResults = function(response) |
4786 |
27 Apr 18 |
olle |
710 |
{ |
4786 |
27 Apr 18 |
olle |
Wizard.showFinalMessage(response.messages); |
4786 |
27 Apr 18 |
olle |
Doc.show('gorestart'); |
4786 |
27 Apr 18 |
olle |
713 |
} |
4786 |
27 Apr 18 |
olle |
714 |
|
4786 |
27 Apr 18 |
olle |
consent.enableConsentOption = function(option, checkIt) |
4786 |
27 Apr 18 |
olle |
716 |
{ |
4786 |
27 Apr 18 |
olle |
option = Doc.element(option); // The radio button |
4786 |
27 Apr 18 |
olle |
option.disabled = false; |
4786 |
27 Apr 18 |
olle |
if (checkIt) option.checked = true; |
4786 |
27 Apr 18 |
olle |
720 |
|
4786 |
27 Apr 18 |
olle |
var label = Doc.element(option.id + '.label'); // The label |
4786 |
27 Apr 18 |
olle |
Doc.removeClass(label, 'disabled'); |
4786 |
27 Apr 18 |
olle |
723 |
} |
4786 |
27 Apr 18 |
olle |
724 |
|
4786 |
27 Apr 18 |
olle |
725 |
|
4786 |
27 Apr 18 |
olle |
726 |
|
4786 |
27 Apr 18 |
olle |
consent.consentOnChange = function() |
4786 |
27 Apr 18 |
olle |
728 |
{ |
4786 |
27 Apr 18 |
olle |
// If "Not asked" is selected we must enable the second question |
4786 |
27 Apr 18 |
olle |
var isAsked = !Doc.element('consent.notAsked').checked; |
4786 |
27 Apr 18 |
olle |
731 |
|
4786 |
27 Apr 18 |
olle |
var frm = document.forms['meludi']; |
4786 |
27 Apr 18 |
olle |
var reasonIfNotAsked = frm.reasonIfNotAsked; |
4786 |
27 Apr 18 |
olle |
for (var i = 0; i < reasonIfNotAsked.length; i++) |
4786 |
27 Apr 18 |
olle |
735 |
{ |
4786 |
27 Apr 18 |
olle |
reasonIfNotAsked[i].disabled = isAsked; |
4786 |
27 Apr 18 |
olle |
Doc.addOrRemoveClass(reasonIfNotAsked[i].id + '.label', 'disabled', isAsked); |
4786 |
27 Apr 18 |
olle |
738 |
} |
4786 |
27 Apr 18 |
olle |
frm.otherReasonIfNotAsked.disabled = isAsked; |
4786 |
27 Apr 18 |
olle |
740 |
} |
4786 |
27 Apr 18 |
olle |
741 |
|
4786 |
27 Apr 18 |
olle |
consent.onOtherReasonFocus = function() |
4786 |
27 Apr 18 |
olle |
743 |
{ |
4786 |
27 Apr 18 |
olle |
Doc.element('notAsked.other').checked = true; |
4786 |
27 Apr 18 |
olle |
745 |
} |
4786 |
27 Apr 18 |
olle |
746 |
|
4786 |
27 Apr 18 |
olle |
return consent; |
4786 |
27 Apr 18 |
olle |
748 |
}(); |
4786 |
27 Apr 18 |
olle |
749 |
|
4786 |
27 Apr 18 |
olle |
Doc.onLoad(Consent.initPage); |
4786 |
27 Apr 18 |
olle |
751 |
|