in clns-eTarget/src/main/java/org/digitalecmt/etarget/GetMutationSelection.java [68:196]
public String processRequest() {
if (!super.isUserPermittedEndpoint(userID, "GetMutationSelection")) {
// Stop the request if user doesn't have permission for this API or web
// component
Map<String,String> response = new HashMap<>();
response.put("success", "false");
response.put("error", "User not permitted to access: GetMutationSelection");
return new Gson().toJson(response);
} else {
// Process the request
try {
//get configured sources
List<ConfigDataSources> addSources = (List<ConfigDataSources>)this.getContext().getBean("configuredDataSources");
// new version
// List<Map<String,String>> allGenes = new ArrayList<Map<String,String>>();
List<Map<String,Object>> ctDNA = new ArrayList<Map<String,Object>>();
List<Map<String,Object>> tumourNGS = new ArrayList<Map<String,Object>>();
Map<String,List<Map<String,String>>> fmTumour = new HashMap<>();
List<Map<String,String>> fmTumourSV = new ArrayList<Map<String,String>>();
List<Map<String,String>> fmTumourR = new ArrayList<Map<String,String>>();
List<Map<String,String>> fmTumourCNA = new ArrayList<Map<String,String>>();
Map<String,List<Map<String,String>>> fmBlood = new HashMap<>();
List<Map<String,String>> fmBloodSV = new ArrayList<Map<String,String>>();
List<Map<String,String>> fmBloodR = new ArrayList<Map<String,String>>();
List<Map<String,String>> fmBloodCNA = new ArrayList<Map<String,String>>();
Map<String,Map<String,List<Map<String,String>>>> addSourcesMap = new HashMap<>();
for(ConfigDataSources cds : addSources) {
List<Map<String,String>> sv = new ArrayList<Map<String,String>>();
List<Map<String,String>> r = new ArrayList<Map<String,String>>();
List<Map<String,String>> cna = new ArrayList<Map<String,String>>();
Map<String,List<Map<String,String>>> newSource = new HashMap<>();
newSource.put("shortVariant", sv);
newSource.put("copyNumberAlteration", cna);
newSource.put("rearrangement", r);
addSourcesMap.put(cds.getFront_end_name(), newSource);
}
MutationSelectionDAO mutationSelectionDao = this.getContext().getBean(MutationSelectionDAO.class);
GeneSubsetDAO genesubset = this.getContext().getBean(GeneSubsetDAO.class);
TumourNgsDAO tumourNgs = this.getContext().getBean(TumourNgsDAO.class);
FoundationMedicineDAO fm = this.getContext().getBean(FoundationMedicineDAO.class);
List<SelectedGeneVariant> resultSet = mutationSelectionDao
.getSelectedMutationsByPersonID(personIDint);
for(SelectedGeneVariant sgv : resultSet) {
if(sgv.getType().compareTo("CTDNA")==0) {
GeneSubsetExt result =GeneSubsetExt.getGeneSubsetExt(genesubset.findGeneSubsetByGeneVarientID(personIDint, sgv.getMeasurement_gene_variant_id()));
ctDNA.add(Formater.formatCTDNA(result));
} else if(sgv.getType().compareTo("NGS")==0) {
TumourNgsExt result = TumourNgsExt.getTumourNgsExt(tumourNgs.findTumourNgsByGeneVarientID(personIDint, sgv.getMeasurement_gene_variant_id()));
tumourNGS.add(Formater.formatTumourNgs(result));
} else if(sgv.getType().compareTo("FMTumourSV")==0) {
ShortVariant sv = fm.getTumourShortVariantByGeneVariantID(sgv.getMeasurement_gene_variant_id());
// sv.setBaseline(fm.getTumourBaseline(sv.getMeasurement_gene_panel_id()));
fmTumourSV.add(Formater.formatShortVariant(sv));
} else if(sgv.getType().compareTo("FMTumourCNA")==0) {
CopyNumberAlteration cna = fm.getTumourCopyNumberAlterationByGeneVariantID(sgv.getMeasurement_gene_variant_id());
// cna.setBaseline(fm.getTumourBaseline(cna.getMeasurement_gene_panel_id()));
fmTumourCNA.add(Formater.formatCopyNumberAlteration(cna));
} else if(sgv.getType().compareTo("FMTumourR")==0) {
Rearrangement r = fm.getTumourRearrangementByGeneVariantID(sgv.getMeasurement_gene_variant_id());
// r.setBaseline(fm.getTumourBaseline(r.getMeasurement_gene_panel_id()));
fmTumourR.add(Formater.formatRearrangement(r));
} else if(sgv.getType().compareTo("FMBloodSV")==0) {
ShortVariant sv = fm.getShortVariantByGeneVariantID(sgv.getMeasurement_gene_variant_id());
log.info("FMBlood SV " + sv.getGene_name());
fmBloodSV.add(Formater.formatShortVariant(sv));
} else if(sgv.getType().compareTo("FMBloodCNA")==0) {
CopyNumberAlteration cna = fm.getCopyNumberAlterationByGeneVariantID(sgv.getMeasurement_gene_variant_id());
log.info("FMBlood CNA " + cna.getGene_name());
fmBloodCNA.add(Formater.formatCopyNumberAlteration(cna));
} else if(sgv.getType().compareTo("FMBloodR")==0) {
Rearrangement r = fm.getRearrangementByGeneVariantID(sgv.getMeasurement_gene_variant_id());
log.info("FMBlood R " + r.getRearr_gene_1_name());
fmBloodR.add(Formater.formatRearrangement(r));
log.info("size " + fmBloodR.size());
}
for(ConfigDataSources cds : addSources) {
if(sgv.getType().compareTo(cds.getFront_end_name()+"SV")==0){
ShortVariant sv = fm.getShortVariantByGeneVariantID(sgv.getMeasurement_gene_variant_id());
// if(cds.getIsTumour()) {
// sv.setBaseline(fm.getTumourBaseline(sv.getMeasurement_gene_panel_id()));
// }
log.info("addSource " + sv.getGene_name());
addSourcesMap.get(cds.getFront_end_name()).get("shortVariant").add(Formater.formatShortVariant(sv));
} else if(sgv.getType().compareTo(cds.getFront_end_name()+"CNA")==0){
CopyNumberAlteration cna = fm.getCopyNumberAlterationByGeneVariantID(sgv.getMeasurement_gene_variant_id());
// if(cds.getIsTumour()) {
// cna.setBaseline(fm.getTumourBaseline(cna.getMeasurement_gene_panel_id()));
// }
log.info("addSource " + cna.getGene_name());
addSourcesMap.get(cds.getFront_end_name()).get("copyNumberAlteration").add(Formater.formatCopyNumberAlteration(cna));
} else if(sgv.getType().compareTo(cds.getFront_end_name()+"R")==0){
Rearrangement r = fm.getRearrangementByGeneVariantID(sgv.getMeasurement_gene_variant_id());
// if(cds.getIsTumour()) {
// r.setBaseline(fm.getTumourBaseline(r.getMeasurement_gene_panel_id()));
// }
log.info("addSource " + r.getRearr_gene_1_name());
addSourcesMap.get(cds.getFront_end_name()).get("rearrangement").add(Formater.formatRearrangement(r));
}
}
}
fmTumour.put("copyNumberAlteration", fmTumourCNA);
fmTumour.put("rearrangement", fmTumourR);
fmTumour.put("shortVariant", fmTumourSV);
fmBlood.put("copyNumberAlteration", fmBloodCNA);
fmBlood.put("rearrangement", fmBloodR);
log.info("size end " + fmBloodR.size() + " " + fmBlood.get("rearrangement").size());
fmBlood.put("shortVariant", fmBloodSV);
Map<String,Object> mutationData=new HashMap<String,Object>();
mutationData.put("tumourNGS", tumourNGS);
mutationData.put("ctDNA", ctDNA);
mutationData.put("fmTumour", fmTumour);
mutationData.put("fmBlood", fmBlood);
mutationData.put("genericGenomic", addSourcesMap);
log.info(new Gson().toJson(mutationData));
return new Gson().toJson(mutationData);
} catch (Exception e) {
log.log(Level.SEVERE, e.getMessage(),e);
Map<String,String> response = new HashMap<>();
response.put("success", "false");
response.put("error", "Failed to get mutation selection.");
return new Gson().toJson(response);
}
}
}