private void populateSearchCriteriaFromData(EndoscopyVettingWorklistSearchCritVo searchCrit) { if (searchCrit == null) return; if (ElectiveAdmissionType.PLANNED_TYPE13.equals(searchCrit.getElectiveAdmissionType())) { form.GroupElectiveListType() .setValue(GroupElectiveListTypeEnumeration.rdoPlannedSurveillance); } else if (ElectiveAdmissionType.ELECTIVE_TYPE11.equals( searchCrit.getElectiveAdmissionType())) { form.GroupElectiveListType().setValue(GroupElectiveListTypeEnumeration.rdoWaitingBooked); } else form.GroupElectiveListType().setValue(GroupElectiveListTypeEnumeration.None); form.cmbUrgency().setValue(searchCrit.getUrgency()); form.cmbProcedureType().setValue(searchCrit.getProcedureType()); form.intRTTBreachDateIn().setValue(searchCrit.getRTTBreachDateIn()); form.cmbRTTBreachDateIn().setValue(searchCrit.getRTTBReachDateUnits()); form.chkIncludePatientsBreachedRTTDate().setValue(searchCrit.getIncludePatientsBreached()); form.intPlannedDateIn().setValue(searchCrit.getPlannedDateInt()); form.cmbPlannedDateIn().setValue(searchCrit.getPlaneDateUnits()); form.chkIncludePastPlannedDates().setValue(searchCrit.getIncludePatientsBreached()); if (YesNo.YES.equals(searchCrit.getGeneralAnaesthetic())) { form.chkGeneralAnaesthetic().setValue(Boolean.TRUE); } else { form.chkGeneralAnaesthetic().setValue(Boolean.FALSE); } }
@Override protected void onContextMenuItemClick(int menuItemID, Control sender) throws PresentationLogicException { switch (menuItemID) { case ims.RefMan.forms .endoscopyvettingworklist .GenForm .ContextMenus .RefManNamespace .EndoscopyVettingWorklist .VIEW_Endoscopy_Request: editWaitingElectiveListCardDialog(); break; case ims.RefMan.forms .endoscopyvettingworklist .GenForm .ContextMenus .RefManNamespace .EndoscopyVettingWorklist .ADD_EDIT_COMMENTS: // WDEV-22488 PatientElectiveListAddLaterVo tempVo = domain.getPatientElectiveList( (PatientElectiveListRefVo) form.dyngrdResults().getSelectedRow().getValue()); form.getGlobalContext().RefMan.setCatsReferral(tempVo.getReferral()); if (tempVo.getElectiveAdmissionTypeIsNotNull() && (ElectiveAdmissionType.ELECTIVE_TYPE11.equals(tempVo.getElectiveAdmissionType()) || ElectiveAdmissionType.BOOKED_TYPE12.equals(tempVo.getElectiveAdmissionType()))) { engine.open( form.getForms().RefMan.ElectiveListAddLaterDialog, new Object[] { ims.admin.vo.enums.ElectiveListDetails.ADDTOWAITINGLIST, tempVo.getCreatingAppointment(), tempVo, ElectiveListAddLaterDlgOpenMode.READ_ONLY, true }, "Waiting List Details"); } else if (tempVo.getElectiveAdmissionTypeIsNotNull() && ElectiveAdmissionType.PLANNED_TYPE13.equals(tempVo.getElectiveAdmissionType())) { engine.open( form.getForms().RefMan.ElectiveListAddLaterDialog, new Object[] { ims.admin.vo.enums.ElectiveListDetails.ADDTOPLANNEDLIST, tempVo.getCreatingAppointment(), tempVo, ElectiveListAddLaterDlgOpenMode.READ_ONLY, true }, "Planned List Details"); } break; } }
private void editWaitingElectiveListCardDialog() { PatientElectiveListAddLaterVo tempVo = domain.getPatientElectiveList( (PatientElectiveListRefVo) form.dyngrdResults().getSelectedRow().getValue()); if (tempVo != null) { HcpLiteVo tempUsrVo = (HcpLiteVo) domain.getHcpLiteUser(); boolean isEndoscopist = tempUsrVo != null && Boolean.TRUE.equals(tempUsrVo.getIsHCPaEndoscopist()); if (isEndoscopist) { form.getGlobalContext().RefMan.setCatsReferral(tempVo.getReferral()); if (tempVo.getElectiveAdmissionTypeIsNotNull() && (ElectiveAdmissionType.ELECTIVE_TYPE11.equals(tempVo.getElectiveAdmissionType()) || ElectiveAdmissionType.BOOKED_TYPE12.equals(tempVo.getElectiveAdmissionType()))) { engine.open( form.getForms().RefMan.ElectiveListAddLaterDialog, new Object[] { ims.admin.vo.enums.ElectiveListDetails.ADDTOWAITINGLIST, tempVo.getCreatingAppointment(), tempVo, ElectiveListAddLaterDlgOpenMode.EDIT }, "Waiting List Details"); } else if (tempVo.getElectiveAdmissionTypeIsNotNull() && ElectiveAdmissionType.PLANNED_TYPE13.equals(tempVo.getElectiveAdmissionType())) { engine.open( form.getForms().RefMan.ElectiveListAddLaterDialog, new Object[] { ims.admin.vo.enums.ElectiveListDetails.ADDTOPLANNEDLIST, tempVo.getCreatingAppointment(), tempVo, ElectiveListAddLaterDlgOpenMode.EDIT }, "Planned List Details"); } } else { form.getGlobalContext().RefMan.setCatsReferral(tempVo.getReferral()); if (tempVo.getElectiveAdmissionTypeIsNotNull() && (ElectiveAdmissionType.ELECTIVE_TYPE11.equals(tempVo.getElectiveAdmissionType()) || ElectiveAdmissionType.BOOKED_TYPE12.equals(tempVo.getElectiveAdmissionType()))) { engine.open( form.getForms().RefMan.ElectiveListAddLaterDialog, new Object[] { ims.admin.vo.enums.ElectiveListDetails.ADDTOWAITINGLIST, tempVo.getCreatingAppointment(), tempVo, ElectiveListAddLaterDlgOpenMode.READ_ONLY }, "Waiting List Details"); } else if (tempVo.getElectiveAdmissionTypeIsNotNull() && ElectiveAdmissionType.PLANNED_TYPE13.equals(tempVo.getElectiveAdmissionType())) { engine.open( form.getForms().RefMan.ElectiveListAddLaterDialog, new Object[] { ims.admin.vo.enums.ElectiveListDetails.ADDTOPLANNEDLIST, tempVo.getCreatingAppointment(), tempVo, ElectiveListAddLaterDlgOpenMode.READ_ONLY }, "Planned List Details"); } } } }
public PatientElectiveListForPreAssessmentWorklistVoCollection listPreAssessments( PreAssessmentWorklistSearchCriteriaVo searchCriteria) { DomainFactory factory = getDomainFactory(); StringBuffer hqlConditions = new StringBuffer(); StringBuffer hqlJoins = new StringBuffer(); StringBuffer hql = new StringBuffer( " select patElective from PatientElectiveList as patElective left join patElective.electiveListStatus as elStatus "); ArrayList<String> markers = new ArrayList<String>(); ArrayList<Object> values = new ArrayList<Object>(); String andStr = ""; hqlConditions.append(andStr); hqlConditions.append( " patElective.preAssessmentRequired = 1 and elStatus.electiveListStatus.id <> :Status and ( patElective.requiresVetting = 0 or patElective.requiresVetting is null ) "); // wdev-21152 markers.add("Status"); values.add(WaitingListStatus.REMOVED.getID()); andStr = " and "; if (searchCriteria.getServiceIsNotNull() || (searchCriteria.getServices() != null && searchCriteria.getServices().size() > 0)) { hqlConditions.append(andStr); hqlJoins.append(" left join patElective.electiveList as electiveListConfig "); hqlConditions.append( " (electiveListConfig.service.id in (" + getServicesIDs(searchCriteria) + "))"); andStr = " and "; } if (searchCriteria.getProcedureIsNotNull()) { hqlConditions.append(andStr); hqlConditions.append( " (patElective.primaryProcedure.id = :procedureID OR patElective.secondaryProcedure.id = :procedureID) "); markers.add("procedureID"); values.add(searchCriteria.getProcedure().getID_Procedure()); andStr = " and "; } if (searchCriteria.getAnaestheticTypeIsNotNull()) { hqlConditions.append(andStr); hqlConditions.append(" (patElective.anaestheticType.id = :anaestheticTypeID) "); markers.add("anaestheticTypeID"); values.add(searchCriteria.getAnaestheticType().getID()); andStr = " and "; } if (searchCriteria.getUrgencyIsNotNull()) { hqlConditions.append(andStr); hqlJoins.append(" left join patElective.priority as priority "); hqlConditions.append(" (priority.id = :Urgency) "); markers.add("Urgency"); values.add(searchCriteria.getUrgency().getID()); andStr = " and "; } // WDEV-22781 if (searchCriteria.getPatientIdentifierIsNotNull()) { hqlConditions.append(andStr); hqlJoins.append( " left join patElective.patient as patient left join patient.identifiers as ids "); hqlConditions.append(" (ids.value = :idValue AND ids.type = :idType) "); markers.add("idValue"); markers.add("idType"); values.add(searchCriteria.getPatientIdentifier()); values.add(getDomLookup(searchCriteria.getPatIdType())); andStr = " and "; } // WDEV-22781 ends here if (searchCriteria.getBreachDateFromIsNotNull()) { hqlConditions.append(andStr); hqlJoins.append( " left join patElective.referral as catsRef left join catsRef.referralDetails as refDetails "); hqlConditions.append(" (refDetails.end18WW >= :fromdate) "); markers.add("fromdate"); values.add( new DateTime(searchCriteria.getBreachDateFrom(), new Time("00:00:00")).getJavaDate()); andStr = " and "; } if (searchCriteria.getBreachDateToIsNotNull()) { hqlConditions.append(andStr); hqlJoins.append( " left join patElective.referral as catsRef left join catsRef.referralDetails as refDetails "); hqlConditions.append(" (refDetails.end18WW <= :todate) "); markers.add("todate"); values.add( new DateTime(searchCriteria.getBreachDateTo(), new Time("23:59:00")) .getJavaDate()); // WDEV-21037 andStr = " and "; } if (searchCriteria.getTheatreTypeIsNotNull()) { hqlConditions.append(andStr); hqlJoins.append(" left join patElective.preAssessmentOutcome as preAssessmentOutcome "); hqlConditions.append( "( ( preAssessmentOutcome is not null AND preAssessmentOutcome.theatreType.id = :theatreType) OR (preAssessmentOutcome is null AND patElective.requiredTheatreType.id = :theatreType)) "); markers.add("theatreType"); values.add(searchCriteria.getTheatreType().getID()); andStr = " and "; } StringBuffer hqlConditionsOR = new StringBuffer(); String orStr = ""; if (searchCriteria .getPreAssessmentRequired()) // those that does not have preAssessmentOutcome saved and no // PreAssessment Booked { hqlConditionsOR.append(orStr); hqlJoins.append(" left join patElective.preAssessmentOutcome as preAssessmentOutcome "); hqlConditionsOR.append( " (patElective.preAssessmentOutcome is null AND patElective.preAssessmentAppointment is null) "); // WDEV-21037 orStr = " OR "; } if (searchCriteria.getNotFitForSurgery()) { hqlConditionsOR.append(orStr); hqlJoins.append(" left join patElective.preAssessmentOutcome as preAssessmentOutcome "); hqlConditionsOR.append(" (preAssessmentOutcome.fitToProceed = 0) "); orStr = " OR "; } if (searchCriteria.getFitForSurgery()) { hqlConditionsOR.append(orStr); hqlJoins.append(" left join patElective.preAssessmentOutcome as preAssessmentOutcome "); hqlConditionsOR.append(" (preAssessmentOutcome.fitToProceed = 1) "); orStr = " OR "; } if (searchCriteria.getPreAssessmentOutcomePending()) { if (searchCriteria.getWaitingForIsNotNull() && searchCriteria.getWaitingFor().size() > 0) { hqlConditionsOR.append(orStr); hqlJoins.append( " left join patElective.preAssessmentOutcome as preAssessmentOutcome left join preAssessmentOutcome.waitingForDetails as waitingForDet left join waitingForDet.informationToBeReceived as infoReceived"); hqlConditionsOR.append( " (preAssessmentOutcome is not null AND preAssessmentOutcome.fitToProceed is null AND (infoReceived.id in (" + getWaitingForIDs(searchCriteria.getWaitingFor()) + ") AND (waitingForDet.received is null OR waitingForDet.received = 0))) "); orStr = " OR "; } else { hqlConditionsOR.append(orStr); hqlJoins.append(" left join patElective.preAssessmentOutcome as preAssessmentOutcome "); hqlConditionsOR.append( " (preAssessmentOutcome.detailsOutstanding=1 AND preAssessmentOutcome.fitToProceed is null)"); orStr = " OR "; } } // WDEV-21037 if (searchCriteria.getPastAppointment()) { hqlConditionsOR.append(orStr); hqlJoins.append(" left join patElective.preAssessmentAppointment as preAssessmentAppt "); hqlConditionsOR.append( " (patElective.preAssessmentOutcome is null AND preAssessmentAppt.appointmentDate < :ApptTodayDate ) "); markers.add("ApptTodayDate"); values.add(new DateTime().getJavaDate()); orStr = " OR "; } if (searchCriteria.getFutureAppointment()) { hqlConditionsOR.append(orStr); hqlJoins.append(" left join patElective.preAssessmentAppointment as preAssessmentAppt "); hqlConditionsOR.append( " (patElective.preAssessmentOutcome is null AND preAssessmentAppt.appointmentDate > :ApptTodayDate ) "); markers.add("ApptTodayDate"); values.add(new DateTime().getJavaDate()); orStr = " OR "; } if (hqlConditionsOR.length() > 0) { hqlConditions.append(andStr); hqlConditions.append(" ( " + hqlConditionsOR + " ) "); } // WDEV-21037 StringBuffer hqlConditionsElectiveListTypeOR = new StringBuffer(); orStr = ""; if (searchCriteria.getWaitingList()) { hqlConditionsElectiveListTypeOR.append(orStr); hqlConditionsElectiveListTypeOR.append( " (patElective.electiveAdmissionType.id = :WaitingListType OR patElective.electiveAdmissionType.id = :BookedListType) "); markers.add("WaitingListType"); values.add(ElectiveAdmissionType.ELECTIVE_TYPE11.getID()); markers.add("BookedListType"); values.add(ElectiveAdmissionType.BOOKED_TYPE12.getID()); orStr = " OR "; } if (searchCriteria.getSurveillancePlannedList()) { hqlConditionsElectiveListTypeOR.append(orStr); hqlConditionsElectiveListTypeOR.append( " (patElective.electiveAdmissionType.id = :PlannedList "); markers.add("PlannedList"); values.add(ElectiveAdmissionType.PLANNED_TYPE13.getID()); orStr = " OR "; if (searchCriteria.getPlannedFromIsNotNull()) { hqlConditionsElectiveListTypeOR.append(andStr); hqlConditionsElectiveListTypeOR.append( " (patElective.plannedDate >= :fromdate) "); // wdev-21440 markers.add("fromdate"); values.add( new DateTime(searchCriteria.getPlannedFrom(), new Time("00:00:00")).getJavaDate()); andStr = " and "; } if (searchCriteria.getPlannedToIsNotNull()) { hqlConditionsElectiveListTypeOR.append(andStr); hqlConditionsElectiveListTypeOR.append( " (patElective.plannedDate <= :todate) "); // wdev-21440 markers.add("todate"); values.add(new DateTime(searchCriteria.getPlannedTo(), new Time("23:59:59")).getJavaDate()); andStr = " and "; } hqlConditionsElectiveListTypeOR.append(" )"); } if (hqlConditionsElectiveListTypeOR.length() > 0) { hqlConditions.append(andStr); hqlConditions.append(" ( " + hqlConditionsElectiveListTypeOR + " ) "); } /*if (searchCriteria.getPlannedFromIsNotNull()) { hqlConditions.append(andStr); //hqlJoins.append(" left join patElective.tCIDetails as tciDet "); //hqlConditions.append(" (tciDet.plannedTCIDate >= :fromdate) "); hqlConditions.append(" (patElective.plannedDate >= :fromdate) "); //wdev-21440 markers.add("fromdate"); values.add(new DateTime(searchCriteria.getPlannedFrom(), new Time("00:00:00")).getJavaDate()); andStr = " and "; } if (searchCriteria.getPlannedToIsNotNull()) { hqlConditions.append(andStr); //hqlJoins.append(" left join patElective.tCIDetails as tciDet "); //hqlConditions.append(" (tciDet.plannedTCIDate <= :todate) "); hqlConditions.append(" (patElective.plannedDate <= :todate) "); //wdev-21440 markers.add("todate"); values.add(new DateTime(searchCriteria.getPlannedTo(), new Time("23:59:59")).getJavaDate()); andStr = " and "; }*/ if (searchCriteria.getAddedToday()) { hqlConditions.append(andStr); hqlConditions.append( " (patElective.dateOnList >= :Today1 AND patElective.dateOnList <= :Today2) "); markers.add("Today1"); values.add(new DateTime(new Date(), new Time("00:00:00")).getJavaDate()); markers.add("Today2"); values.add(new DateTime(new Date(), new Time("23:59:00")).getJavaDate()); andStr = " and "; } // WDEV-23462 if (searchCriteria.getIncludeEndoscopy()) { hqlConditions.append(andStr); hqlConditions.append(" patElective.admissionType.id = :AdmissionType "); markers.add("AdmissionType"); values.add(WaitingCardAdmissionType.ENDOSCOPY.getID()); andStr = " and "; } if (hqlConditions.length() > 0) { hqlConditions.insert(0, " where ("); hqlConditions.append(" ) "); } List<?> list = factory.find( (hql.toString() + hqlJoins.toString() + hqlConditions.toString() + " ").toString(), markers, values, 2000); // order by refDetails.end18WW asc if (list == null || list.size() == 0) return null; return PatientElectiveListForPreAssessmentWorklistVoAssembler .createPatientElectiveListForPreAssessmentWorklistVoCollectionFromPatientElectiveList(list); }