@Override public void applyAction(FormEntrySession session) { ScriptEngineManager scriptEngineManager = new ScriptEngineManager(); ScriptEngine scriptEngine = scriptEngineManager.getEngineByName(scriptType); scriptEngine.put("patient", session.getPatient()); scriptEngine.put("encounter", session.getSubmissionActions().getCurrentEncounter()); scriptEngine.put("formEntrySession", session); try { Object result = scriptEngine.eval(script); session.setAfterSaveUrlTemplate(result.toString()); } catch (ScriptException ex) { throw new IllegalStateException("Exception while evaluating " + scriptType + " for <redirectOnSave>", ex); } } }
/** * @see org.openmrs.module.htmlformentry.action.FormSubmissionControllerAction#handleSubmission(org.openmrs.module.htmlformentry.FormEntrySession, javax.servlet.http.HttpServletRequest) */ @Override public void handleSubmission(FormEntrySession session, HttpServletRequest submission) { EncounterRole role = encounterRole; Provider provider = null; if (roleWidget != null) { role = (EncounterRole) roleWidget.getValue(session.getContext(), submission); } Set<Provider> currentProvidersForRole = session.getSubmissionActions().getCurrentEncounter().getProvidersByRole(role); for (Widget providerWidget : providerWidgets) { provider = (Provider) providerWidget.getValue(session.getContext(), submission); if (provider != null) { // if this provider it not currently one of the provider, add her if (currentProvidersForRole != null || !currentProvidersForRole.contains(provider)) { session.getSubmissionActions().getCurrentEncounter().addProvider(role, provider); } // we remove this provider so that we end up with a list of providers to void currentProvidersForRole.remove(provider); } } // now remove any current providers that we haven't found in the provider list for (Provider providerToRemove : currentProvidersForRole) { session.getSubmissionActions().getCurrentEncounter().removeProvider(role, providerToRemove); } }
private void setOrderer(FormEntrySession session, DrugOrder drugOrder) { if (drugOrder.getUuid() == null) drugOrder.setUuid(UUID.randomUUID().toString()); Set<EncounterProvider> encounterProviders = session.getSubmissionActions().getCurrentEncounter() .getEncounterProviders(); for (EncounterProvider encounterProvider : encounterProviders) { if (!encounterProvider.isVoided()) { drugOrder.setOrderer(encounterProvider.getProvider()); } } }
private void setOrderer(Order o, FormEntrySession session) { Set<EncounterProvider> encounterProviders = session.getSubmissionActions().getCurrentEncounter() .getEncounterProviders(); for (EncounterProvider encounterProvider : encounterProviders) { if (!encounterProvider.isVoided()) { o.setOrderer(encounterProvider.getProvider()); break; } } }
if (dateWidget != null) { Date date = (Date) dateWidget.getValue(session.getContext(), submission); Date previousDate = session.getSubmissionActions().getCurrentEncounter().getEncounterDatetime(); session.getSubmissionActions().getCurrentEncounter().setEncounterDatetime(date); new Date(session.getSubmissionActions().getCurrentEncounter().getEncounterDatetime().getTime())); session.getSubmissionActions().getCurrentEncounter().setEncounterDatetime(date); Encounter e = session.getSubmissionActions().getCurrentEncounter(); Date dateAndTime = HtmlFormEntryUtil.combineDateAndTime(e.getEncounterDatetime(), time); e.setEncounterDatetime(dateAndTime); if (value != null) { Person person = (Person) convertValueToProvider(value); EncounterCompatibility.setProvider(session.getSubmissionActions().getCurrentEncounter(), person); if (value != null) { Location location = (Location) HtmlFormEntryUtil.convertToType(value.toString().trim(), Location.class); session.getSubmissionActions().getCurrentEncounter().setLocation(location); session.getSubmissionActions().getCurrentEncounter().setEncounterType(encounterType);
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()); }
protected void enterStandardRegimen(FormEntrySession session, HttpServletRequest submission, String regCode, Date startDate, Date discontinuedDate, String discontinuedReasonStr) { RegimenSuggestion rs = RegimenUtil.getStandardRegimenByCode(possibleRegimens, regCode); //create new drugOrders Set<Order> ords = RegimenUtil.standardRegimenToDrugOrders(rs, startDate, session.getPatient()); for (Order o: ords){ if (o.getDateCreated() == null) o.setDateCreated(new Date()); if (o.getCreator() == null) o.setCreator(Context.getAuthenticatedUser()); if (o.getUuid() == null) o.setUuid(UUID.randomUUID().toString()); if (!StringUtils.isEmpty(discontinuedReasonStr)) o.setDiscontinuedReason(HtmlFormEntryUtil.getConcept(discontinuedReasonStr)); if (discontinuedDate != null){ o.setDiscontinuedDate(discontinuedDate); o.setDiscontinued(true); o.setDiscontinuedBy(Context.getAuthenticatedUser()); } session.getSubmissionActions().getCurrentEncounter().addOrder(o); } }
o.setCareSetting(careSetting); session.getSubmissionActions().getCurrentEncounter().addOrder(o); if (discontinuationOrder != null) { session.getSubmissionActions().getCurrentEncounter().addOrder(discontinuationOrder);
discontinuationOrder = newDiscontinuationOrder(discontinuedDate, discontinuedReasonStr, o); session.getSubmissionActions().getCurrentEncounter().addOrder(o); if (discontinuationOrder != null) { session.getSubmissionActions().getCurrentEncounter().addOrder(discontinuationOrder);
session.getSubmissionActions().getCurrentEncounter().setDateChanged(new Date()); session.getSubmissionActions().getCurrentEncounter().addOrder(revisedOrder); session.getSubmissionActions().getCurrentEncounter().setDateChanged(new Date()); setOrderer(session, discontinuationOrder); session.getSubmissionActions().getCurrentEncounter().addOrder(discontinuationOrder);
log.debug("adding new drug order, drugId is " + orderTag.drugId + " and startDate is " + orderTag.startDate); drugOrder = setDiscontinueDateFromAutoExpire(drugOrder); session.getSubmissionActions().getCurrentEncounter().addOrder(drugOrder);
session.getSubmissionActions().getCurrentEncounter().addOrder(drugOrder); if (discontinuationOrder != null) { setOrderer(session, discontinuationOrder); session.getSubmissionActions().getCurrentEncounter().addOrder(discontinuationOrder);