public AllergenDetails saveAllergenDetails(AllergenDetails allergenDetails) throws StaleObjectException, UniqueKeyViolationException { if (!allergenDetails.isValidated()) { throw new DomainRuntimeException("Allergen Details VO has not be validated."); } DomainFactory factory = getDomainFactory(); Allergen domAllergen = AllergenDetailsAssembler.extractAllergen(factory, allergenDetails); domAllergen.setKeywords(Keywords.setupKeyWords(domAllergen.getKeywords(), domAllergen.getAllergenName())); try { factory.save(domAllergen); } catch (UnqViolationUncheckedException e) { //check which constraint was violated (name/taxononmy map) //name Allergen allergen = Allergen.getAllergenFromAllergenName(factory, allergenDetails.getAllergenName()); if (allergen != null && allergen.getId() != null && !(allergen.getId().equals(allergenDetails.getID_Allergen()))) { throw new UniqueKeyViolationException("Allergen record called \"" + allergenDetails.getAllergenName() + "\" already exists. Duplicates not allowed.", e); } //taxonomy map String dupMessage = Keywords.checkDuplicateTaxonomy(factory, domAllergen, allergenDetails.getTaxonomyMap(), "getAllergenName"); if(dupMessage != null) throw new UniqueKeyViolationException(dupMessage); throw (e); } return AllergenDetailsAssembler.create(domAllergen); }
/** * 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 AllergenDetails getAllergenDetails(AllergenRefVo refVo) { DomainFactory factory = getDomainFactory(); Allergen allergen = (Allergen) factory.getDomainObject(Allergen.class, refVo.getID_Allergen()); return (AllergenDetailsAssembler.create(allergen)); }