private RegimenSuggestion getRegimenSuggestionByCode(String code, List<RegimenSuggestion> rs){ for (RegimenSuggestion r : rs){ if (r.getCodeName() != null && r.getCodeName().equals(code)) return r; } return null; }
@Override public void AddDrugDependencies(String id, AttributeDescriptor attributeDescriptor, Set<OpenmrsObject> dependencies) { //RegimenSuggestion -- see global property 'dashboard.regimen.standardRegimens' if (RegimenSuggestion.class.equals(attributeDescriptor.getClazz())){ List<RegimenSuggestion> stRegimens = DrugOrderSupport.getInstance().getStandardRegimens(); if (stRegimens != null){ ConceptService cs = Context.getConceptService(); for (RegimenSuggestion rs : stRegimens){ if (rs.getCodeName().equals(id) && rs.getDrugComponents() != null){ for (DrugSuggestion ds : rs.getDrugComponents()){ Drug drug = cs.getDrug(ds.getDrugId()); if (drug == null) drug = cs.getDrugByUuid(ds.getDrugId()); if (drug != null) dependencies.add(drug); } } } } } } }
RegimenSuggestion rs = getRegimenSuggestionByCode(regCode, allSystemStandardRegimens); if (rs != null){ options.add(new Option(rs.getDisplayName(),rs.getCodeName(), false)); srf.addStandardRegimenAnswer(new StandardRegimenAnswer(rs)); possibleRegimens.add(rs);
boolean allFound = true; //true until a DrugSuggestion from the RegimenSuggestion isn't matched. for (DrugSuggestion dc : rs.getDrugComponents()){
Set<Order> ret = new HashSet<Order>(); if (rs != null){ for (DrugSuggestion ds : rs.getDrugComponents()){ DrugOrder dor = new DrugOrder(); dor.setVoided(false); drug = Context.getConceptService().getDrugByUuid(ds.getDrugId()); if (drug == null) throw new RuntimeException("Your standard regimen xml file constains a drugId that can't be found, for regimen " + rs.getCodeName() + ", DrugComponent.id = " + ds.getDrugId()); dor.setDrug(Context.getConceptService().getDrugByNameOrId(ds.getDrugId())); dor.setFrequency(ds.getFrequency());
boolean allFound = true; //true until a DrugSuggestion from the RegimenSuggestion isn't matched. for (DrugSuggestion dc : rs.getDrugComponents()){
/** * finds the RegimenSuggestion by its code. */ public static RegimenSuggestion getStandardRegimenByCode(List<RegimenSuggestion> regimens, String code){ for (RegimenSuggestion rs : regimens){ if (rs.getCodeName().equals(code)) return rs; } return null; } }
OrderService orderService = Context.getOrderService(); ConceptService conceptService = Context.getConceptService(); for (DrugSuggestion ds : rs.getDrugComponents()){ DrugOrder dor = new DrugOrder(); Drug drug = Context.getConceptService().getDrugByNameOrId(ds.getDrugId()); drug = Context.getConceptService().getDrugByUuid(ds.getDrugId()); if (drug == null) throw new RuntimeException("Your standard regimen xml file constains a drugId that can't be found, for regimen " + rs.getCodeName() + ", DrugComponent.id = " + ds.getDrugId()); dor.setDrug(drug);
/** * finds the RegimenSuggestion by its code. */ public static RegimenSuggestion getStandardRegimenByCode(List<RegimenSuggestion> regimens, String code){ for (RegimenSuggestion rs : regimens){ if (rs.getCodeName().equals(code)) return rs; } return null; } }
protected void matchStandardRegimenInExistingOrders(FormEntryContext context) { Map<RegimenSuggestion, List<DrugOrder>> map = RegimenUtil.findStrongestStandardRegimenInDrugOrders(possibleRegimens, context.getRemainingExistingOrders()); if (map.size() == 1){ existingStandardRegimen = map.keySet().iterator().next(); for (DrugOrder dor : map.get(existingStandardRegimen)){ regDrugOrders.add(context.removeExistingDrugOrder(dor.getDrug())); regWidget.setInitialValue(existingStandardRegimen.getCodeName()); } discontinuedDateWidget.setInitialValue(getCommonDiscontinueDate(regDrugOrders)); if (discontinuedReasonWidget != null && regDrugOrders.get(0).getDiscontinuedReason() != null) discontinuedReasonWidget.setInitialValue(regDrugOrders.get(0).getDiscontinuedReason().getConceptId()); } }
@Override protected void matchStandardRegimenInExistingOrders(FormEntryContext context) { Map<RegimenSuggestion, List<DrugOrder>> map = RegimenUtil1_10.findStrongestStandardRegimenInDrugOrders( possibleRegimens, context.getRemainingExistingOrders()); if (map.size() == 1) { existingStandardRegimen = map.keySet().iterator().next(); for (DrugOrder dor : map.get(existingStandardRegimen)) { regDrugOrders.add(context.removeExistingDrugOrder(dor.getDrug())); regWidget.setInitialValue(existingStandardRegimen.getCodeName()); careSettingWidget.setInitialValue(dor.getCareSetting()); } discontinuedDateWidget.setInitialValue(getCommonDiscontinueDate(regDrugOrders)); Order discontinuationOrder = Context.getOrderService().getDiscontinuationOrder(regDrugOrders.get(0)); if (discontinuedReasonWidget != null && discontinuationOrder != null) discontinuedReasonWidget.setInitialValue(discontinuationOrder.getOrderReason().getConceptId()); } }
protected void editStandardRegimen(FormEntrySession session, HttpServletRequest submission, String regCode, Date startDate, Date discontinuedDate, String discontinuedReasonStr) { if (existingStandardRegimen != null && regCode.equals(existingStandardRegimen.getCodeName())){ //the drug orders are already there and attached to the encounter. for (Order o : regDrugOrders){ if (!StringUtils.isEmpty(discontinuedReasonStr)) o.setDiscontinuedReason(HtmlFormEntryUtil.getConcept(discontinuedReasonStr)); if (discontinuedDate != null){ o.setDiscontinuedDate(discontinuedDate); o.setDiscontinued(true); } o.setStartDate(startDate); } } else { //standard regimen changed in the drop-down... I'm going to have this void the old DrugOrders, and create new ones. voidDrugOrders(regDrugOrders, session); enterStandardRegimen(session, submission, regCode, startDate, discontinuedDate, discontinuedReasonStr); } }
@Test @Verifies(value = "should match drugOrders to standard regimen correctly", method = "findStrongestStandardRegimenInDrugOrders(List<RegimenSuggestion>, List<Order>)") public void findStrongestStandardRegimenInDrugOrders_shouldMatchLargestRegimenCorrectly() throws Exception { //Build drug orders according to drug2only Integer encId = regimenTestBuildEncounterHelper("all3"); Context.flushSession(); Context.clearSession(); //check to see that method returns drug2only Encounter e = Context.getEncounterService().getEncounter(encId); List<Order> dors = new ArrayList<Order>(); dors.addAll(e.getOrders()); Map<RegimenSuggestion, List<DrugOrder>> m = RegimenUtil.findStrongestStandardRegimenInDrugOrders(Context.getOrderService().getStandardRegimens(),dors); Assert.assertTrue(m.size() > 0); RegimenSuggestion rs = m.keySet().iterator().next(); log.debug("findStrongestStandardRegimenInDrugOrders found standard regimen " + rs.getCodeName()); Assert.assertTrue(rs.getCodeName().equals("all3")); }
@Test @Verifies(value = "should match drugOrders to standard regimen correctly", method = "findStrongestStandardRegimenInDrugOrders(List<RegimenSuggestion>, List<Order>)") public void findStrongestStandardRegimenInDrugOrders_shouldMatchLargeRegimenCorrectly() throws Exception { //Build drug orders according to drug2and3 Integer encId = regimenTestBuildEncounterHelper("drug2and3"); Context.flushSession(); Context.clearSession(); //Check to see that method returns drug2and3 Encounter e = Context.getEncounterService().getEncounter(encId); List<Order> dors = new ArrayList<Order>(); dors.addAll(e.getOrders()); Map<RegimenSuggestion, List<DrugOrder>> m = RegimenUtil.findStrongestStandardRegimenInDrugOrders(Context.getOrderService().getStandardRegimens(),dors); Assert.assertTrue(m.size() > 0); RegimenSuggestion rs = m.keySet().iterator().next(); log.debug("findStrongestStandardRegimenInDrugOrders found standard regimen " + rs.getCodeName()); Assert.assertTrue(rs.getCodeName().equals("drug2and3")); }
@Test @Verifies(value = "should match drugOrders to standard regimen correctly", method = "findStrongestStandardRegimenInDrugOrders(List<RegimenSuggestion>, List<Order>)") public void findStrongestStandardRegimenInDrugOrders_shouldMatchSmallRegimenCorrectly() throws Exception { //Build drug orders according to drug2only Integer encId = regimenTestBuildEncounterHelper("drug2only"); Context.flushSession(); Context.clearSession(); //check to see that method returns drug2only Encounter e = Context.getEncounterService().getEncounter(encId); List<Order> dors = new ArrayList<Order>(); dors.addAll(e.getOrders()); Map<RegimenSuggestion, List<DrugOrder>> m = RegimenUtil.findStrongestStandardRegimenInDrugOrders(Context.getOrderService().getStandardRegimens(),dors); Assert.assertTrue(m.size() > 0); RegimenSuggestion rs = m.keySet().iterator().next(); log.debug("findStrongestStandardRegimenInDrugOrders found standard regimen " + rs.getCodeName()); Assert.assertTrue(rs.getCodeName().equals("drug2only")); }
Assert.assertTrue(m.size() > 0); RegimenSuggestion rs = m.keySet().iterator().next(); log.debug("findStrongestStandardRegimenInDrugOrders found standard regimen " + rs.getCodeName()); Assert.assertTrue(rs.getCodeName().equals("drug2only"));