var participantPortal={}; participantPortal.print=function(msg){ console.log(msg); } participantPortal.idField='participantStudyId'; participantPortal.localIdField='participantLocalId'; participantPortal.init= function(cb=null){ let that=this; let action=function(){that.scriptsLoaded(cb);}; LABKEY.Utils.requiresScript(["crfDORA/crfSetup.js","crfDORA/crfData.js","crfDORA/crfHTML.js","crfDORA/crfRoleSelector.js","crfDORA/formPortalNew.js"],action); } participantPortal.scriptsLoaded= function(cb=null){ //if other script need init, just stack the init scripts //let action=function(){runQuery.init(cb);} crfData.setSetup(crfSetup); crfRoleSelector.set(crfSetup); crfHTML.init(); let initFormPortal=function(){formPortal.init(cb);}; let initData=function(){crfData.init(initFormPortal);}; crfSetup.init(initData); } participantPortal.getParticipantMap= function(){ if (!("participantMap" in this)){ this.participantMap=new Object(); this.sortByParticipantId(); } return this.participantMap; } participantPortal.clearKeyMap= function(){ if (!("participantKeyMap" in this)){ this.participantKeyMap=new Object(); return; } Object.keys(this.participantKeyMap).forEach(key => delete this.participantKeyMap[key]); } participantPortal.addToKeyMap= function(key,value){ this.participantKeyMap[value]=key; } participantPortal.getFromKeyMap= function(value){ return this.participantKeyMap[value]; } participantPortal.getParticipantArray= function(id,formId){ let fName='[getParticipantArray/'+id+','+formId+']'; //this.print(fName); let pMap=this.getParticipantMap(); if (!(id in pMap)) pMap[id]=new Object(); if (!(formId in pMap[id])) pMap[id][formId]=new Array(); return pMap[id][formId]; } participantPortal.generateFormArray= function(){ let fName='[generateFormArray]'; this.print(fName); //gang callbacks (last to first) let that=this; let makePortal=function(){that.makePortal();}; let setRegistration=function(){crfData.setRegistration(makePortal);}; let action=function(){crfSetup.parseSetup(setRegistration);} crfSetup.setContainers(action); } participantPortal.sortByParticipantId= function(){ let fName='[sortByParticipantId]'; //this.print(fName); //let pMap=this.getParticipantMap(); let rows=crfSetup.getRows('crfEntries'); for (let i=0;i