/**
bd* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
* License for the specific language governing rights and limitations under
* the License.
*
* The Original Code is OpenELIS code.
*
* Copyright (C) ITECH, University of Washington, Seattle WA. All Rights Reserved.
*
*/
package us.mn.state.health.lims.common.util;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.validator.GenericValidator;
import us.mn.state.health.lims.common.formfields.FormFields;
import us.mn.state.health.lims.common.formfields.IFormFieldsForImplementation;
import us.mn.state.health.lims.common.formfields.FormFields.Field;
import us.mn.state.health.lims.common.util.ConfigurationProperties.Property;
import us.mn.state.health.lims.common.util.DefaultConfigurationProperties.KeyDefaultPair;
import us.mn.state.health.lims.menu.daoimpl.MenuDAOImpl;
import us.mn.state.health.lims.menu.util.MenuUtil;
import us.mn.state.health.lims.menu.valueholder.Menu;
import us.mn.state.health.lims.role.dao.RoleDAO;
import us.mn.state.health.lims.role.daoimpl.RoleDAOImpl;
import us.mn.state.health.lims.role.valueholder.Role;
import us.mn.state.health.lims.siteinformation.dao.SiteInformationDAO;
import us.mn.state.health.lims.siteinformation.daoimpl.SiteInformationDAOImpl;
import us.mn.state.health.lims.siteinformation.valueholder.SiteInformation;
public class ConfigurationSideEffects {
private static final RoleDAO roleDAO = new RoleDAOImpl();
private static final SiteInformationDAO siteInformationDAO = new SiteInformationDAOImpl();
public void siteInformationChanged( SiteInformation siteInformation){
if( "modify results role".equals(siteInformation.getName())){
Role modifierRole = roleDAO.getRoleByName("Results modifier");
if( modifierRole != null && modifierRole.getId() != null){
modifierRole.setActive("true".equals(siteInformation.getValue()));
modifierRole.setSysUserId(siteInformation.getSysUserId());
roleDAO.updateData(modifierRole);
}
}
if("siteNumber".equals(siteInformation.getName())){
SiteInformation accessionFormat = siteInformationDAO.getSiteInformationByName("acessionFormat");
if( "SiteYearNum".equals(accessionFormat.getValue())){
SiteInformation accessionPrefix = siteInformationDAO.getSiteInformationByName("Accession number prefix");
if( GenericValidator.isBlankOrNull(accessionPrefix.getValue())){
accessionPrefix.setValue(siteInformation.getValue());
accessionPrefix.setSysUserId(siteInformation.getSysUserId());
siteInformationDAO.updateData(accessionPrefix);
}
}
}
//--------------------------
if("Patient management tab".equals(siteInformation.getName())){
MenuDAOImpl menuDAO = new MenuDAOImpl();
boolean active = "true".equals(siteInformation.getValue());
Menu parentMenu = menuDAO.getMenuByElementId("menu_patient");
if( parentMenu != null ){
parentMenu.setIsActive(active);
menuDAO.updateData( parentMenu);
}
Menu menu = menuDAO.getMenuByElementId("menu_patient_add_or_edit");
if( menu != null ){
menu.setIsActive( active);
menuDAO.updateData(menu);
}
Menu parentmenustudy = menuDAO.getMenuByElementId("menu_patient_study");
if( parentmenustudy != null ){
parentmenustudy.setIsActive( active);
menuDAO.updateData(parentmenustudy);
}
Menu menustudycreate = menuDAO.getMenuByElementId("menu_patient_create");
if( menustudycreate != null ){
menustudycreate.setIsActive( active);
menuDAO.updateData(menustudycreate);
}
Menu menustudycreateinitial = menuDAO.getMenuByElementId("menu_patient_create_initial");
if( menustudycreateinitial != null ){
menustudycreateinitial.setIsActive( active);
menuDAO.updateData(menustudycreateinitial);
}
Menu menustudycreatedouble = menuDAO.getMenuByElementId("menu_patient_create_double");
if( menustudycreatedouble != null ){
menustudycreatedouble.setIsActive( active);
menuDAO.updateData(menustudycreatedouble);
}
Menu menustudyedit = menuDAO.getMenuByElementId("menu_patient_edit");
if( menustudyedit != null ){
menustudyedit.setIsActive( active);
menuDAO.updateData(menustudyedit);
}
Menu menustudyconsult = menuDAO.getMenuByElementId("menu_patient_consult");
if( menustudyconsult != null ){
menustudyconsult.setIsActive( active);
menuDAO.updateData(menustudyconsult);
}
MenuUtil.forceRebuild();
}
//-------- Study menu
//------sample----
if("Study Management tab".equals(siteInformation.getName())){
MenuDAOImpl menuDAO = new MenuDAOImpl();
boolean active = "true".equals(siteInformation.getValue());
Menu parentMenuStudy = menuDAO.getMenuByElementId("menu_sample_create");
if( parentMenuStudy != null ){
parentMenuStudy.setIsActive(active);
menuDAO.updateData( parentMenuStudy);
}
Menu menusamplecreateinitial = menuDAO.getMenuByElementId("menu_sample_create_initial");
if( menusamplecreateinitial != null ){
menusamplecreateinitial.setIsActive( active);
menuDAO.updateData(menusamplecreateinitial);
}
Menu menusamplecreatedouble = menuDAO.getMenuByElementId("menu_sample_create_double");
if( menusamplecreatedouble != null ){
menusamplecreatedouble.setIsActive( active);
menuDAO.updateData(menusamplecreatedouble);
}
Menu menusampleconsult = menuDAO.getMenuByElementId("menu_sample_consult");
if( menusampleconsult != null ){
menusampleconsult.setIsActive( active);
menuDAO.updateData(menusampleconsult);
}
//------Patient----
Menu menustudycreate2 = menuDAO.getMenuByElementId("menu_patient_create");
if( menustudycreate2 != null ){
menustudycreate2.setIsActive( active);
menuDAO.updateData(menustudycreate2);
}
Menu menustudycreateinitial2 = menuDAO.getMenuByElementId("menu_patient_create_initial");
if( menustudycreateinitial2 != null ){
menustudycreateinitial2.setIsActive( active);
menuDAO.updateData(menustudycreateinitial2);
}
Menu menustudycreatedouble2 = menuDAO.getMenuByElementId("menu_patient_create_double");
if( menustudycreatedouble2 != null ){
menustudycreatedouble2.setIsActive( active);
menuDAO.updateData(menustudycreatedouble2);
}
Menu menustudyedit2 = menuDAO.getMenuByElementId("menu_patient_edit");
if( menustudyedit2 != null ){
menustudyedit2.setIsActive( active);
menuDAO.updateData(menustudyedit2);
}
Menu menustudyconsult2 = menuDAO.getMenuByElementId("menu_patient_consult");
if( menustudyconsult2 != null ){
menustudyconsult2.setIsActive( active);
menuDAO.updateData(menustudyconsult2);
}
//------report----
Menu menureportstudy = menuDAO.getMenuByElementId("menu_reports_study");
if( menureportstudy != null ){
menureportstudy.setIsActive( active);
menuDAO.updateData(menureportstudy); }
Menu menureportspatients = menuDAO.getMenuByElementId("menu_reports_patients");
if( menureportspatients != null ){
menureportspatients.setIsActive( active);
menuDAO.updateData(menureportspatients); }
Menu menureportsarv = menuDAO.getMenuByElementId("menu_reports_arv");
if( menureportsarv != null ){
menureportsarv.setIsActive( active);
menuDAO.updateData(menureportsarv); }
Menu menureportsarvinitial1 = menuDAO.getMenuByElementId("menu_reports_arv_initial1");
if( menureportsarvinitial1 != null ){
menureportsarvinitial1.setIsActive( active);
menuDAO.updateData(menureportsarvinitial1); }
Menu menureportsarvinitial2 = menuDAO.getMenuByElementId("menu_reports_arv_initial2");
if( menureportsarvinitial2 != null ){
menureportsarvinitial2.setIsActive( active);
menuDAO.updateData(menureportsarvinitial2); }
Menu menureportarvfollowup1 = menuDAO.getMenuByElementId("menu_reports_arv_followup1");
if( menureportarvfollowup1 != null ){
menureportarvfollowup1.setIsActive( active);
menuDAO.updateData(menureportarvfollowup1); }
Menu menureportarvfollowup2 = menuDAO.getMenuByElementId("menu_reports_arv_followup2");
if( menureportarvfollowup2 != null ){
menureportarvfollowup2.setIsActive( active);
menuDAO.updateData(menureportarvfollowup2); }
Menu menureportseid = menuDAO.getMenuByElementId("menu_reports_eid");
if( menureportseid != null ){
menureportseid.setIsActive( active);
menuDAO.updateData(menureportseid); }
Menu menureporteidversion1 = menuDAO.getMenuByElementId("menu_reports_eid_version1");
if( menureporteidversion1 != null ){
menureporteidversion1.setIsActive( active);
menuDAO.updateData(menureporteidversion1); }
Menu menureporteidversion2 = menuDAO.getMenuByElementId("menu_reports_eid_version2");
if( menureporteidversion2 != null ){
menureporteidversion2.setIsActive( active);
menuDAO.updateData(menureporteidversion2); }
Menu menureportsindeterminate = menuDAO.getMenuByElementId("menu_reports_indeterminate");
if( menureportsindeterminate != null ){
menureportsindeterminate.setIsActive( active);
menuDAO.updateData(menureportsindeterminate); }
Menu menureportsindeterminateversion1 = menuDAO.getMenuByElementId("menu_reports_indeterminate_version1");
if( menureportsindeterminateversion1 != null ){
menureportsindeterminateversion1.setIsActive( active);
menuDAO.updateData(menureportsindeterminateversion1); }
Menu menureportsindeterminateversion2 = menuDAO.getMenuByElementId("menu_reports_indeterminate_version2");
if( menureportsindeterminateversion2 != null ){
menureportsindeterminateversion2.setIsActive( active);
menuDAO.updateData(menureportsindeterminateversion2); }
Menu menureportsindeterminatelocation = menuDAO.getMenuByElementId("menu_reports_indeterminate_location");
if( menureportsindeterminatelocation != null ){
menureportsindeterminatelocation.setIsActive( active);
menuDAO.updateData(menureportsindeterminatelocation); }
Menu menureportspecial = menuDAO.getMenuByElementId("menu_reports_special");
if( menureportspecial != null ){
menureportspecial.setIsActive( active);
menuDAO.updateData(menureportspecial); }
Menu menureportspatientcollection = menuDAO.getMenuByElementId("menu_reports_patient_collection");
if( menureportspatientcollection != null ){
menureportspatientcollection.setIsActive( active);
menuDAO.updateData(menureportspatientcollection); }
Menu menureportsassociated = menuDAO.getMenuByElementId("menu_reports_patient_associated");
if( menureportsassociated != null ){
menureportsassociated.setIsActive( active);
menuDAO.updateData(menureportsassociated); }
Menu menureportsindicator = menuDAO.getMenuByElementId("menu_reports_indicator");
if( menureportsindicator != null ){
menureportsindicator.setIsActive( active);
menuDAO.updateData(menureportsindicator); }
Menu menureportsindicatorperformance = menuDAO.getMenuByElementId("menu_reports_indicator_performance");
if( menureportsindicatorperformance != null ){
menureportsindicatorperformance.setIsActive( active);
menuDAO.updateData(menureportsindicatorperformance); }
Menu menureportsvalidationbacklog = menuDAO.getMenuByElementId("menu_reports_validation_backlog.study");
if( menureportsvalidationbacklog != null ){
menureportsvalidationbacklog.setIsActive( active);
menuDAO.updateData(menureportsvalidationbacklog); }
Menu menureportsnonconformitystudy = menuDAO.getMenuByElementId("menu_reports_nonconformity.study");
if( menureportsnonconformitystudy != null ){
menureportsnonconformitystudy.setIsActive( active);
menuDAO.updateData(menureportsnonconformitystudy); }
Menu menureportnonconformitydatestudy = menuDAO.getMenuByElementId("menu_reports_nonconformity_date.study");
if( menureportnonconformitydatestudy != null ){
menureportnonconformitydatestudy.setIsActive( active);
menuDAO.updateData(menureportnonconformitydatestudy); }
Menu menureportsnonconformitysection = menuDAO.getMenuByElementId("menu_reports_nonconformity_section.study");
if( menureportsnonconformitysection != null ){
menureportsnonconformitysection.setIsActive( active);
menuDAO.updateData(menureportsnonconformitysection); }
Menu menureportsnonconformitynotification = menuDAO.getMenuByElementId("menu_reports_nonconformity_notification.study");
if( menureportsnonconformitynotification != null ){
menureportsnonconformitynotification.setIsActive( active);
menuDAO.updateData(menureportsnonconformitynotification); }
Menu menureportsfolowrequired = menuDAO.getMenuByElementId("menu_reports_followupRequired_ByLocation.study");
if( menureportsfolowrequired != null ){
menureportsfolowrequired.setIsActive( active);
menuDAO.updateData(menureportsfolowrequired); }
Menu menureportsexport = menuDAO.getMenuByElementId("menu_reports_export");
if( menureportsexport != null ){
menureportsexport.setIsActive( active);
menuDAO.updateData(menureportsexport); }
Menu menureportsauditTrail = menuDAO.getMenuByElementId("menu_reports_auditTrail.study");
if( menureportsauditTrail != null ){
menureportsauditTrail.setIsActive( active);
menuDAO.updateData(menureportsauditTrail); }
Menu menureportsarvall = menuDAO.getMenuByElementId("menu_reports_arv_all");
if( menureportsarvall != null ){
menureportsarvall.setIsActive( active);
menuDAO.updateData(menureportsarvall); }
Menu menureportsvl = menuDAO.getMenuByElementId("menu_reports_vl");
if( menureportsvl != null ){
menureportsvl.setIsActive( active);
menuDAO.updateData(menureportsvl); }
Menu menureportsvlversion1 = menuDAO.getMenuByElementId("menu_reports_vl_version1");
if( menureportsvlversion1 != null ){
menureportsvlversion1.setIsActive( active);
menuDAO.updateData(menureportsvlversion1); }
Menu menunonconformitylabno = menuDAO.getMenuByElementId("menu_reports_nonconformity.Labno");
if( menunonconformitylabno != null ){
menunonconformitylabno.setIsActive( active);
menuDAO.updateData(menunonconformitylabno); }
//------validation----
Menu menuvalidationstudy = menuDAO.getMenuByElementId("menu_resultvalidation_study");
if( menuvalidationstudy != null ){
menuvalidationstudy.setIsActive( active);
menuDAO.updateData(menuvalidationstudy); }
Menu menuvalidationimmuno = menuDAO.getMenuByElementId("menu_resultvalidation_immunology");
if( menuvalidationimmuno != null ){
menuvalidationimmuno.setIsActive( active);
menuDAO.updateData(menuvalidationimmuno); }
Menu menuvalidationbio = menuDAO.getMenuByElementId("menu_resultvalidation_biochemistry");
if( menuvalidationbio != null ){
menuvalidationbio.setIsActive( active);
menuDAO.updateData(menuvalidationbio); }
Menu menuvalidationsero = menuDAO.getMenuByElementId("menu_resultvalidation_serology");
if( menuvalidationsero != null ){
menuvalidationsero.setIsActive( active);
menuDAO.updateData(menuvalidationsero); }
Menu menuvalidationdnapcr = menuDAO.getMenuByElementId("menu_resultvalidation_dnapcr");
if( menuvalidationdnapcr != null ){
menuvalidationdnapcr.setIsActive( active);
menuDAO.updateData(menuvalidationdnapcr); }
Menu menuvalidationvirology = menuDAO.getMenuByElementId("menu_resultvalidation_virology");
if( menuvalidationvirology != null ){
menuvalidationvirology.setIsActive( active);
menuDAO.updateData(menuvalidationvirology); }
Menu menuvalidationVL = menuDAO.getMenuByElementId("menu_resultvalidation_viralload");
if( menuvalidationVL != null ){
menuvalidationVL.setIsActive( active);
menuDAO.updateData(menuvalidationVL); }
Menu menuvalidationgeno= menuDAO.getMenuByElementId("menu_resultvalidation_genotyping");
if( menuvalidationgeno != null ){
menuvalidationgeno.setIsActive( active);
menuDAO.updateData(menuvalidationgeno); }
MenuUtil.forceRebuild();
}
//--------
}
}