@Override public void handleSubmission(FormEntrySession session, HttpServletRequest submission) { session.getSubmissionActions().addCustomFormSubmissionAction(this); }
@Override public void handleSubmission(FormEntrySession session, HttpServletRequest submission) { session.getSubmissionActions().addCustomFormSubmissionAction(this); }
@Override public void handleSubmission(FormEntrySession session, HttpServletRequest submission) { session.getSubmissionActions().addCustomFormSubmissionAction(this); }
@Override public void handleSubmission(FormEntrySession session, HttpServletRequest submission) { try { Class<?> actionClass = Context.loadClass(className); CustomFormSubmissionAction actionInstance = (CustomFormSubmissionAction) actionClass.newInstance(); session.getSubmissionActions().addCustomFormSubmissionAction(actionInstance); } catch (Exception ex) { throw new IllegalStateException("Error loading/instantiating post submission action class " + className, ex); } }
@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); } } }
@Override public void handleSubmission(FormEntrySession session, HttpServletRequest submission) { try { if (start) { if (existingGroup != null) { session.getSubmissionActions().beginObsGroup(existingGroup); } else { Obs obsGroup = new Obs(); obsGroup.setConcept(groupingConcept); session.getSubmissionActions().beginObsGroup(obsGroup); } } else { session.getSubmissionActions().endObsGroup(); } } catch (InvalidActionException ex) { throw new RuntimeException(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) { if (session.getContext().getMode() == Mode.ENTER) { session.getSubmissionActions().completeProgram(program); } }
private void handleDynamicAutocompleteSubmissionInEnterMode(FormEntrySession session, HttpServletRequest submission, Object value, Date obsDatetime, String accessionNumberValue) { List values = (List) value; // create an obs for each value for (Object val : values) { int conceptId = Integer.valueOf((String) val); ((DynamicAutocompleteWidget)valueWidget).addInitialValue(Context.getConceptService().getConcept(conceptId)); session.getSubmissionActions().createObs(concept, conceptId, obsDatetime, accessionNumberValue); } }
private void handleDynamicAutocompleteSubmissionInEditMode(FormEntrySession session, HttpServletRequest submission, Object value, Date obsDatetime, String accessionNumberValue) { List values = (List) value; List<Concept> newConceptList = new Vector<Concept>(); List<Concept> existingConceptList = ((DynamicAutocompleteWidget) valueWidget).getInitialValueList(); // get the list of concepts entered on the form for (Object val : values) { if (StringUtils.isNotBlank((String) val)) { int conceptId = Integer.valueOf((String) val); newConceptList.add(Context.getConceptService().getConcept(conceptId)); } } // figure out what obs we need to create and what ones we need to remove for (Concept c : existingConceptList) { if (newConceptList.contains(c)) newConceptList.remove(c); else { for (Obs o : existingObsList) { if (o.getValueCoded().equals(c)) session.getSubmissionActions().modifyObs(o, concept, null, obsDatetime, accessionNumberValue); } } } if (!newConceptList.isEmpty()) { for (Concept c : newConceptList) { session.getSubmissionActions().createObs(concept, c, obsDatetime, accessionNumberValue); } } }
@Override public void handleSubmission(FormEntrySession session, HttpServletRequest submission) { Object value = valueWidget.getValue(session.getContext(), submission); try { if (value instanceof Concept) concept = (Concept) value; else concept = (Concept) HtmlFormEntryUtil.convertToType(value.toString(), Concept.class); } catch (Exception ex){ throw new RuntimeException("Unable to convert response to a concept!"); } Date obsDatetime = null; String accessionNumberValue = null; if (existingObs != null && session.getContext().getMode() == Mode.EDIT) { //TODO: we're going to need a new version of this that uses the conceptAnswer as the matching concept... session.getSubmissionActions().modifyObs(existingObs, concept, answerConcept, obsDatetime, accessionNumberValue, null); } else { if (value != null && !"".equals(value) && concept != null) { session.getSubmissionActions().createObs(concept, answerConcept, obsDatetime, accessionNumberValue, null); } } }
/** * @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; } } }
/** * @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) { if (session.getContext().getMode() != Mode.VIEW) { Date selectedDate = null; if (dateWidget != null) { selectedDate = (Date) dateWidget.getValue(session.getContext(), submission); } session.getSubmissionActions().enrollInProgram(program, selectedDate, states); } }
@Override public void handleSubmission(FormEntrySession session, HttpServletRequest submission) { Date date = null; Concept exitReasonConcept = null; Concept causeOfDeathConcept = null; String otherReason = null; if (dateWidget != null) { date = dateWidget.getValue(session.getContext(), submission); } if (reasonForExitWidget != null) { Object value = reasonForExitWidget.getValue(session.getContext(), submission); exitReasonConcept = (Concept) HtmlFormEntryUtil.convertToType(value.toString().trim(), Concept.class); } if (causeOfDeathWidget != null) { Object value = causeOfDeathWidget.getValue(session.getContext(), submission); causeOfDeathConcept = (Concept) HtmlFormEntryUtil.convertToType(value.toString().trim(), Concept.class); } if (otherReasonWidget != null) { otherReason = otherReasonWidget.getValue(session.getContext(), submission); } // only if user submits both date and reason we allow to exit from care, and this is done // to make sure a user is able to submit a form with <exitfromcare> tag, without filling that // section, however if it is filled initially, user can't resubmit after changing the date and // reason fields to null back if (date != null && exitReasonConcept != null) { session.getSubmissionActions().exitFromCare(date, exitReasonConcept, causeOfDeathConcept, otherReason); } }
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);
log.debug("adding new drug order, drugId is " + orderTag.drugId + " and startDate is " + orderTag.startDate); drugOrder = setDiscontinueDateFromAutoExpire(drugOrder); session.getSubmissionActions().getCurrentEncounter().addOrder(drugOrder);
private SubmissionResults doSubmission(FormEntrySession session, HttpServletRequest request) throws Exception { SubmissionResults results = new SubmissionResults(); session.prepareForSubmit(); List<FormSubmissionError> validationErrors = session.getSubmissionController().validateSubmission( session.getContext(), request); if (validationErrors != null && validationErrors.size() > 0) { results.setValidationErrors(validationErrors); return results; } session.getSubmissionController().handleFormSubmission(session, request); if (session.getContext().getMode() == Mode.ENTER && session.hasEncouterTag() && (session.getSubmissionActions().getEncountersToCreate() == null || session.getSubmissionActions() .getEncountersToCreate().size() == 0)) throw new IllegalArgumentException("This form is not going to create an encounter"); Context.getService(HtmlFormEntryService.class).applyActions(session); results.setPatient(session.getPatient()); results.setEncounterCreated(session.getEncounter()); results.setFormEntrySession(session); return results; }