public ProblemConfigVo saveConfigVo(ProblemConfigVo voProblemConfig) throws StaleObjectException, UniqueKeyViolationException { if (!voProblemConfig.isValidated()) { throw new DomainRuntimeException("This ProblemConfigVo has not be validated."); } DomainFactory factory = getDomainFactory(); ClinicalProblem domProblem = ProblemConfigVoAssembler.extractClinicalProblem(factory, voProblemConfig); domProblem.setKeywords(Keywords.setupKeyWords(domProblem.getKeywords(), domProblem.getPCName())); try { factory.save(domProblem); } catch(UnqViolationUncheckedException e) { //check which constraint was violated (name/taxononmy map) //name ClinicalProblem prob = ClinicalProblem.getClinicalProblemFromPCName(factory, voProblemConfig.getPCName()); if (prob != null && prob.getId() != null && !(prob.getId().equals(voProblemConfig.getID_ClinicalProblem()))) { throw new UniqueKeyViolationException("Problem record called \"" + voProblemConfig.getPCName() + "\" already exists. Duplicates not allowed.", e); } //taxonomy map String dupMessage = Keywords.checkDuplicateTaxonomy(factory, domProblem, voProblemConfig.getTaxonomyMap(), "getPCName"); if(dupMessage != null) throw new UniqueKeyViolationException(dupMessage); throw (e); } return ProblemConfigVoAssembler.create(domProblem); }
public ProblemConfigVo saveProblemConfig(ProblemConfigVo voProblemConfig) throws StaleObjectException, UniqueKeyViolationException { if (!voProblemConfig.isValidated()) { throw new DomainRuntimeException("This ProblemConfigVo has not be validated."); } DomainFactory factory = getDomainFactory(); ClinicalProblem domProblem = ProblemConfigVoAssembler.extractClinicalProblem(factory, voProblemConfig); domProblem.setKeywords(Keywords.setupKeyWords(domProblem.getKeywords(), domProblem.getPCName())); try { factory.save(domProblem); } catch(UnqViolationUncheckedException e) { //check which constraint was violated (name/taxononmy map) //name ClinicalProblem prob = ClinicalProblem.getClinicalProblemFromPCName(factory, voProblemConfig.getPCName()); if (prob != null && prob.getId() != null && !(prob.getId().equals(voProblemConfig.getID_ClinicalProblem()))) { throw new UniqueKeyViolationException("Problem record called \"" + voProblemConfig.getPCName() + "\" already exists. Duplicates not allowed.", e); } //taxonomy map String dupMessage = Keywords.checkDuplicateTaxonomy(factory, domProblem, voProblemConfig.getTaxonomyMap(), "getPCName"); if(dupMessage != null) throw new UniqueKeyViolationException(dupMessage); throw (e); } return ProblemConfigVoAssembler.create(domProblem); }
/** * Given an IGenericItemInfo interface, returns an ICciFull interface, based on the given CciType * @param IGenericItemInfo * @param CciType * @return ICciFull * @author mmccarthy */ public ICciFull getCci(IGenericItemInfo cci, CciType cciType) { DomainFactory factory = getDomainFactory(); if (cci.getIGenericItemInfoID()!=null) { if (cciType.equals(CciType.ALLERGEN)) { return AllergenDetailsAssembler.create((Allergen)factory.getDomainObject(Allergen.class, cci.getIGenericItemInfoID())); } else if (cciType.equals(CciType.MEDICATION)) { return MedicationFullVoAssembler.create((Medication)factory.getDomainObject(Medication.class, cci.getIGenericItemInfoID()));//WDEV-11921 } else if (cciType.equals(CciType.DIAGNOSIS)) { return DiagnosisVoAssembler.create((Diagnosis)factory.getDomainObject(Diagnosis.class, cci.getIGenericItemInfoID())); } else if (cciType.equals(CciType.PROBLEM)) { return ProblemConfigVoAssembler.create((ClinicalProblem)factory.getDomainObject(ClinicalProblem.class, cci.getIGenericItemInfoID())); } else if (cciType.equals(CciType.PROCEDURE)) { return ProcedureVoAssembler.create((Procedure)factory.getDomainObject(Procedure.class, cci.getIGenericItemInfoID())); } else if (cciType.equals(CciType.CANCERIMAGE)) { return CancerImagingEventVoAssembler.create((CancerImagingEvent)factory.getDomainObject(CancerImagingEvent.class, cci.getIGenericItemInfoID())); } else if (cciType.equals(CciType.VACCINE)) { return VaccineVoAssembler.create((Vaccine) factory.getDomainObject(Vaccine.class, cci.getIGenericItemInfoID())); } else if(cciType.equals(CciType.PRESENTING_ISSUE)) { return PresentingComplaintVoAssembler.create((PresentingComplaint) factory.getDomainObject(PresentingComplaint.class, cci.getIGenericItemInfoID())); } else if(cciType.equals(CciType.TREATMENT_INTERVENTION)) //WDEV-17060 { return TreatmentInterventionVoAssembler.create((TreatmentIntervention) factory.getDomainObject(TreatmentIntervention.class, cci.getIGenericItemInfoID())); } else { throw new DomainRuntimeException("Unknown CCI type in 'getCci' = " + cciType.toString()); } } else return null; }
public ProblemConfigVo getProblemByName(String strName) { DomainFactory factory = getDomainFactory(); ClinicalProblem domProblem = ClinicalProblem.getClinicalProblemFromPCName(factory, strName); return ProblemConfigVoAssembler.create(domProblem); }
public ims.clinical.vo.ProblemConfigVo getProblemConfigVo(ClinicalProblemRefVo voProblemConfig) { DomainFactory factory = getDomainFactory(); ClinicalProblem problem = (ClinicalProblem) factory.getDomainObject(ClinicalProblem.class, voProblemConfig.getID_ClinicalProblem()); return (ProblemConfigVoAssembler.create(problem)); }