/** * Checks that a given <code>Drug</code> object is valid. * * @param obj the Object to validate * @param errors holds the validation errors * @throws IllegalArgumentException Runtime Exception if the supplied argument is * null or not of type <code>Drug</code> * @see org.springframework.validation.Validator#validate(java.lang.Object, * org.springframework.validation.Errors) * @should fail if a concept is not specified */ @Override public void validate(Object obj, Errors errors) throws IllegalArgumentException { if (obj == null || !(obj instanceof Drug)) { throw new IllegalArgumentException("The parameter obj should not be null and must be of type" + Drug.class); } log.debug("request to validate drug having concept: " + ((Drug) obj).getConcept()); ValidationUtils.rejectIfEmpty(errors, "concept", "ConceptDrug.error.conceptRequired"); }
/** * Sets the drug * * @param drug */ public void setDrug(Drug drug) { this.drug = drug; if (drug != null && getConcept() == null) { setConcept(drug.getConcept()); } }
/** * Convenience method that returns a display name for the drug, defaults to drug.name * * @return the display name * @since 1.8.5, 1.9.4, 1.10 */ public String getDisplayName() { if (StringUtils.isNotBlank(getName())) { return getName(); } if (getConcept() != null) { return getConcept().getName().getName(); } return ""; }
private void ensureConceptIsSet(Order order) { Concept concept = order.getConcept(); if (concept == null && isDrugOrder(order)) { DrugOrder drugOrder = (DrugOrder) order; if (drugOrder.getDrug() != null) { concept = drugOrder.getDrug().getConcept(); drugOrder.setConcept(concept); } } if (concept == null) { throw new MissingRequiredPropertyException("Order.concept.required"); } }
/** * @see ConceptService#getDrugs(String) */ @Test public void getDrugs_shouldReturnDrugsByDrugConceptId() { Integer conceptId = 792; Drug drug = Context.getConceptService().getDrug(2); // assert that given drug has concept with tested id Assert.assertNotNull(drug.getConcept()); Assert.assertEquals(drug.getConcept().getConceptId(), conceptId); List<Drug> drugs = Context.getConceptService().getDrugs(String.valueOf(conceptId)); Assert.assertTrue(drugs.contains(drug)); }
/** * Ensures that unique drugs are returned in situations where more than one searched fields * match e.g drug name and linked concept name match the search phrase * * @see ConceptService#getDrugs(String, java.util.Locale, boolean, boolean) */ @Test public void getDrugs_shouldReturnUniqueDrugs() { //sanity check that drug.name and drug.concept.name will both match the search phrase Drug drug = conceptService.getDrug("ASPIRIN"); assertEquals(drug.getName().toLowerCase(), drug.getConcept().getName().getName().toLowerCase()); List<Drug> drugs = conceptService.getDrugs("Asp", null, false, false); assertEquals(1, drugs.size()); assertEquals(3, drugs.get(0).getDrugId().intValue()); }
ValidationUtils.rejectIfEmpty(errors, "dosingType", "error.null"); if (order.getDrug() == null || order.getDrug().getConcept() == null) { ValidationUtils.rejectIfEmpty(errors, "concept", "error.null"); if (order.getConcept() != null && order.getDrug() != null && order.getDrug().getConcept() != null && !order.getDrug().getConcept().equals(order.getConcept())) { errors.rejectValue("drug", "error.general"); errors.rejectValue("concept", "error.concept");
/** * Removes a DrugOrder of the relevant Drug.Concept from existingOrders, and returns it. * * @param drug- the drug associated with the DrugOrder to remove * @return */ public DrugOrder removeExistingDrugOrder(Drug drug) { if (drug != null){ Concept concept = drug.getConcept(); List<Order> list = existingOrders.get(concept); if (list != null) { for (Iterator<Order> iter = list.iterator(); iter.hasNext();) { Order test = iter.next(); if (test instanceof DrugOrder){ DrugOrder testDrugOrder = (DrugOrder) test; if (equalDrug(testDrugOrder.getDrug(), drug)) { iter.remove(); if (list.size() == 0) existingOrders.remove(concept); return testDrugOrder; } } } } } return null; }
/** * @see DrugOrderValidator#validate(Object,Errors) */ @Test public void validate_shouldFailValidationIfDrugConceptIsDifferentFromOrderConcept() { DrugOrder order = new DrugOrder(); Drug drug = Context.getConceptService().getDrug(3); Concept concept = Context.getConceptService().getConcept(792); order.setDrug(drug); order.setConcept(concept); // the actual concept which matches with drug is "88" Assert.assertNotEquals(drug.getConcept(), concept); Errors errors = new BindException(order, "order"); new DrugOrderValidator().validate(order, errors); Assert.assertTrue(errors.hasFieldErrors("concept")); Assert.assertTrue(errors.hasFieldErrors("drug")); }
@Override public List<Map<String, Object>> simplify(List<Drug> drugs) { List<Map<String, Object>> simplified = new ArrayList<Map<String, Object>>(); Locale locale = Context.getLocale(); for (Drug drug : drugs) { Map<String, Object> item = new LinkedHashMap<String, Object>(); item.put("id", drug.getId()); item.put("name", drug.getName()); if (drug.getDosageForm() != null) { item.put("dosageForm", drug.getDosageForm().getName(locale).getName()); } item.put("combination", drug.getCombination()); if (drug.getConcept() != null) { item.put("concept", drug.getConcept().getName(locale).getName()); } simplified.add(item); } return simplified; } }
if (obs.getValueCoded() != null && obs.getValueDrug() != null && obs.getValueDrug().getConcept() != null) { Concept trueConcept = Context.getConceptService().getTrueConcept(); Concept falseConcept = Context.getConceptService().getFalseConcept(); && !obs.getValueDrug().getConcept().equals(obs.getValueCoded())) { errors.rejectValue("valueDrug", "Obs.error.invalidDrug");
@Override public List<Map<String, Object>> simplify(List<Drug> drugs) { List<Map<String, Object>> simplified = new ArrayList<Map<String, Object>>(); Locale locale = Context.getLocale(); for (Drug drug : drugs) { Map<String, Object> item = new LinkedHashMap<String, Object>(); item.put("id", drug.getId()); item.put("name", drug.getName()); if (drug.getDosageForm() != null) { item.put("dosageForm", drug.getDosageForm().getName(locale).getName()); } if (drug.getRoute() != null) { item.put("route", drug.getRoute().getName(locale).getName()); } item.put("doseStrength", drug.getDoseStrength()); item.put("units", drug.getUnits()); item.put("combination", drug.getCombination()); if (drug.getConcept() != null) { item.put("concept", drug.getConcept().getName(locale).getName()); } simplified.add(item); } return simplified; } }
answerToAdd = new ConceptAnswer((Concept) obj); else answerToAdd = new ConceptAnswer(((Drug) obj).getConcept(), (Drug) obj);
protected void editOrder(FormEntrySession session, OrderTag orderTag) { existingOrder.setDrug(orderTag.drug); existingOrder.setDose(orderTag.dose); existingOrder.setFrequency(orderTag.frequency); existingOrder.setStartDate(orderTag.startDate); if (orderTag.orderDuration != null) existingOrder.setAutoExpireDate(calculateAutoExpireDate(orderTag.startDate, orderTag.orderDuration)); if (orderTag.discontinuedDate != null){ existingOrder.setDiscontinuedDate(orderTag.discontinuedDate); existingOrder.setDiscontinued(true); } if (!StringUtils.isEmpty(orderTag.discontinuedReasonStr)) existingOrder.setDiscontinuedReason(HtmlFormEntryUtil.getConcept(orderTag.discontinuedReasonStr)); existingOrder.setConcept(orderTag.drug.getConcept()); if (!StringUtils.isEmpty(orderTag.instructions)) existingOrder.setInstructions((String) orderTag.instructions); log.debug("modifying drug order, drugId is " + orderTag.drugId + " and startDate is " + orderTag.startDate); existingOrder = setDiscontinueDateFromAutoExpire(existingOrder); session.getSubmissionActions().getCurrentEncounter().setDateChanged(new Date()); }
drugOrder.setVoided(false); drugOrder.setDrug(orderTag.drug); drugOrder.setConcept(orderTag.drug.getConcept()); drugOrder.setOrderType(Context.getOrderService().getOrderType(OpenmrsConstants.ORDERTYPE_DRUG)); if (!StringUtils.isEmpty(orderTag.instructions))
dor.setCreator(Context.getAuthenticatedUser()); dor.setOrderType(Context.getOrderService().getOrderType(OpenmrsConstants.ORDERTYPE_DRUG)); dor.setConcept(drug.getConcept()); ret.add(dor);
if (context.getExistingOrders().containsKey(drug.getConcept())) {
setOrderer(session, revisedOrder); revisedOrder.setDrug(orderTag.drug); revisedOrder.setConcept(orderTag.drug.getConcept()); revisedOrder.setDosingType(orderTag.dosingType); revisedOrder.setDose(orderTag.dose);
drugOrder.setConcept(orderTag.drug.getConcept()); drugOrder.setPatient(session.getPatient()); drugOrder.setDosingType(orderTag.dosingType);
assertEquals(order.get("patient"), Util.getByPath(newOrder, "patient/uuid")); final String expectedConceptUuid = Context.getConceptService().getDrugByUuid(order.get("drug").toString()) .getConcept().getUuid(); assertEquals(expectedConceptUuid, Util.getByPath(newOrder, "concept/uuid")); assertEquals(order.get("careSetting"), Util.getByPath(newOrder, "careSetting/uuid"));