var crfSetup={}; crfSetup.print= function(msg){ console.log(msg); } crfSetup.init= function(cb=null){ let fName="[crfSetup(DORA):init]"; this.print(fName); let that=this; let action=function(){that.afterScripts(cb);} LABKEY.requiresScript(["crfDORA/runQuery.js"],action); } crfSetup.afterScripts= function(cb=null){ if (cb) cb(); } crfSetup.setContainer= function(label,container){ if (!(this.hasOwnProperty('container'))){ this.container=new Array(); } this.container[label]=container; } crfSetup.getContainer= function(label){ return this.container[label]; } crfSetup.getSettings= function(variable){ if (variable in this.settings){ return this.settings[variable]; } return null; } crfSetup.getRows= function(objectName){ if (objectName in this) return this[objectName].rows; return new Array(); } crfSetup.getMaps= function(){ return this.getObject('maps'); } crfSetup.getEntryMaps= function(){ return this.getObject('entryMaps'); } crfSetup.getMap= function(queryName){ let maps=this.getMaps(); if (!(queryName in maps)) this.parseMap(queryName); return maps[queryName]; } crfSetup.getEntryMap= function(queryName){ this.print('[getEntryMap]: '+queryName); let entryMaps=this.getEntryMaps(); this.print('[getEntryMap]: maps '+Object.keys(entryMaps).length); if (!(queryName in entryMaps)) this.parseEntryMap(queryName); return entryMaps[queryName]; } crfSetup.getAdditionalDataObject= function(){ return this.getObject('additionalData'); } crfSetup.getAdditionalData= function(queryName){ let adObject=this.getAdditionalDataObject(); if (queryName in adObject){ this.print(fName+': Returning preset value'); return adObject[queryName]; } return null; } crfSetup.getTargetStatus= function(action){ return this.getObject('targetStatus')[action]; } crfSetup.getTargetRecipient= function(action){ return this.getObject('targetRecipient')[action]; } crfSetup.getActionSettings= function(action){ return this.getObject('actionSettings')[action]; } crfSetup.getObject= function(name){ if (!(name in this)) this[name]=new Object; return this[name]; } crfSetup.addObject= function(masterObject,objectName,object){ let obj=this.getObject(masterObject); obj[objectName]=object; } crfSetup.invertMap= function(qMap){ let qInverseMap=new Object(); for (let q in qMap){ qInverseMap[qMap[q]]=q; } return qInverseMap; } crfSetup.getStudyIdLabel =function(){ return 'participantStudyId'; } crfSetup.getLocalIdLabel =function(){ return 'participantLocalId'; } crfSetup.getParticipantLabel= function(entry){ let pid=entry[this.getStudyIdLabel()]; let loc=entry[this.getLocalIdLabel()]; let label=''; if (pid) { label+=pid; if (loc) label+=' '; } if (loc) label+='(Local: '+loc+')'; if (label.length==0) label="NONE"; return label; } crfSetup.getStudyId= function(label){ this.print('getStudyId: label ['+label+']'); return label.replace(/ ?\([^\)]*\)/,""); } crfSetup.getLocalId= function(label){ return label.replace(/^.*\(Local: ([^\)]*)\)$/,"$1"); } crfSetup.setContainers= function(cb=null){ this.setContainer('data',LABKEY.ActionURL.getContainer()); this.setContainer('config',LABKEY.ActionURL.getContainer()); this.setContainer('CRF',LABKEY.ActionURL.getContainer()); let selectRows=new Object(); //this is local data selectRows.containerPath=this.getContainer('CRF'); selectRows.schemaName='lists'; selectRows.queryName='crfSettings'; //store form related data to this object let that=this; selectRows.success=function(data){that.parseSettings(data,cb);}; LABKEY.Query.selectRows(selectRows); } crfSetup.parseSettings= function(data,cb){ let fName="[parseSettings]"; this.settings=new Array(); for (let i=0;i0) columnModel+=','; columnModel+=varRows[i]['staticVariable']; } e.columns=columnModel; let that=this; //let action=function(){that.fcontinue();}; //let action=function(){that.parseQueryMap(cb);}; let action=cb; runQuery.getDataFromQueries(this,queryArray,action); } crfSetup.selectFormSetupRows= function(formId){ let formSetupRows=new Array(); let config=this.config; let allRows=this.getRows("formSetup"); for (let i=0;i1) key=tA[1]; for (let i=0;i