/** * @see org.openmrs.module.webservices.rest.web.resource.api.SubResource#doGetAll(java.lang.Object, * org.openmrs.module.webservices.rest.web.RequestContext) */ @Override public NeedsPaging<DrugIngredient> doGetAll(Drug parent, RequestContext context) throws ResponseException { List<DrugIngredient> ingredients = new ArrayList<DrugIngredient>(); if (parent != null) { ingredients.addAll(parent.getIngredients()); } return new NeedsPaging<DrugIngredient>(ingredients, context); }
/** * @see org.openmrs.module.webservices.rest.web.resource.impl.BaseDelegatingResource#purge(java.lang.Object, * org.openmrs.module.webservices.rest.web.RequestContext) */ @Override public void purge(DrugIngredient ingredient, RequestContext context) throws ResponseException { Drug drug = ingredient.getDrug(); drug.getIngredients().remove(ingredient); ingredient.setDrug(null); Context.getConceptService().saveDrug(drug); }
@Override public long getAllCount() { return service.getDrugByUuid(drugUuid).getIngredients().size(); }
/** * @see org.openmrs.module.webservices.rest.web.resource.impl.DelegatingResourceHandler#save(java.lang.Object) */ @Override public DrugIngredient save(DrugIngredient newIngredient) { // make sure that the ingredient has actually been added to the drug boolean needToAdd = true; for (DrugIngredient di : newIngredient.getDrug().getIngredients()) { if (di.equals(newIngredient)) { needToAdd = false; break; } } if (needToAdd) { newIngredient.getDrug().getIngredients().add(newIngredient); } Context.getConceptService().saveDrug(newIngredient.getDrug()); return newIngredient; }
@Test public void shouldAddIngredientToDrug() throws Exception { int before = service.getDrugByUuid(drugUuid).getIngredients().size(); String json = "{ \"ingredient\":\"0abca361-f6bf-49cc-97de-b2f37f099dde\", \"strength\":4.0, \"units\":\"0955b484-b364-43dd-909b-1fa3655eaad2\"}"; handle(newPostRequest(getURI(), json)); int after = service.getDrugByUuid(drugUuid).getIngredients().size(); Assert.assertEquals(before + 1, after); }