public PatientProblemVoCollection listPatientProblemsByCareContext(CareContextRefVo careContext) { if (careContext == null || careContext.getID_CareContext() == null) throw new CodingRuntimeException("No Care context Supplied"); DomainFactory factory = getDomainFactory(); List problems = factory.find( "from PatientProblem p where p.careContext.id = :careContextId order by p.specialty.text, p.problem.pCName", new String[] {"careContextId"}, new Object[] {careContext.getID_CareContext()}); return PatientProblemVoAssembler.createPatientProblemVoCollectionFromPatientProblem(problems); }
public Boolean hasAssessmentSavedOrOneConfiguredForSpecialty( CareContextRefVo careContext, Specialty specialty) { DomainFactory factory = getDomainFactory(); String query = "select count(dd.id) from DischargeDetails dd where dd.careContext.id = :careContextId and dd.patientAssessment is not null"; Object[] count = factory .find( query, new String[] {"careContextId"}, new Object[] {careContext.getID_CareContext()}) .toArray(); if (count != null && count.length > 0 && ((Long) count[0]).intValue() > 0) { return true; } else { query = "select count(dd.id) from DischargeDetails dd left join dd.dischargeLetterStatus as dls where dd.careContext.id = :careContextId and dls.id = :Generated"; count = factory .find( query, new String[] {"careContextId", "Generated"}, new Object[] { careContext.getID_CareContext(), DischargeLetterStatus.GENERATED.getID() }) .toArray(); if (count != null && count.length > 0 && ((Long) count[0]).intValue() > 0) { return false; } query = "select count(u.id) from UserAssessment u left join u.assessmentSpecialties assSpec where assSpec.instance = :assessmentSpec and u.activeStatus = :actStat"; count = factory .find( query, new String[] {"assessmentSpec", "actStat"}, new Object[] { getDomLookup(specialty), getDomLookup(PreActiveActiveInactiveStatus.ACTIVE) }) .toArray(); if (count != null && count.length > 0 && ((Long) count[0]).intValue() > 0) return true; return false; } }
public PatientDiagnosisAtConsultationVoCollection listPatientDiagnosis( CareContextRefVo attendance) { if (attendance == null || attendance.getID_CareContext() == null) return null; DomainFactory factory = getDomainFactory(); String query = "select pd from PatientDiagnosis as pd left join pd.careContext as cc where cc.id = :AttendenceId order by UPPER(pd.diagnosisDescription) asc"; List<?> list = factory.find( query, new String[] {"AttendenceId"}, new Object[] {attendance.getID_CareContext()}); return PatientDiagnosisAtConsultationVoAssembler .createPatientDiagnosisAtConsultationVoCollectionFromPatientDiagnosis(list); }
public InvestigationAttendenceDetailVoCollection listInvestigationAttendence( CareContextRefVo careContext) { if (careContext == null || careContext.getID_CareContext() == null) return null; DomainFactory factory = getDomainFactory(); String query = "select ia from InvestigationAttendenceDetail as ia left join ia.attendance as at left join ia.attendenceInvestigation as ai where at.id = :AttendenceId and ia.active = 1 order by UPPER(ai.text) asc"; List<?> list = factory.find( query, new String[] {"AttendenceId"}, new Object[] {careContext.getID_CareContext()}); return InvestigationAttendenceDetailVoAssembler .createInvestigationAttendenceDetailVoCollectionFromInvestigationAttendenceDetail(list); }
/** get Discharge Details */ public ims.clinical.vo.DischargeDetailsVo getDischargeDetails( ims.core.admin.vo.CareContextRefVo careContextRefvo) { if (careContextRefvo == null) throw new CodingRuntimeException("careContextRefVo Filter not provided for list call. "); if (careContextRefvo != null) { DomainFactory factory = getDomainFactory(); StringBuffer hql = new StringBuffer(" from DischargeDetails dd where "); String andStr = " "; ArrayList<String> markers = new ArrayList<String>(); ArrayList<Serializable> values = new ArrayList<Serializable>(); hql.append(andStr + " dd.careContext.id = :careContextId"); markers.add("careContextId"); values.add(careContextRefvo.getID_CareContext()); andStr = " and "; List list = factory.find(hql.toString(), markers, values); if (list != null && list.size() > 0) { DischargeDetailsVoCollection voColl = DischargeDetailsVoAssembler.createDischargeDetailsVoCollectionFromDischargeDetails( list); if (voColl != null && voColl.size() > 0) return voColl.get(0); } } return null; }
public DischargeSupplementaryNotesVo getSupplementary(CareContextRefVo voCareContextRefVo) { if (voCareContextRefVo == null) throw new CodingRuntimeException("voCareContextRefVo Filter not provided for list call. "); if (voCareContextRefVo != null) { DomainFactory factory = getDomainFactory(); StringBuffer hql = new StringBuffer(" from DischargeSupplementaryNotes ds where "); String andStr = " "; ArrayList<String> markers = new ArrayList<String>(); ArrayList<Serializable> values = new ArrayList<Serializable>(); hql.append(andStr + " ds.careContext.id = :careContextId"); markers.add("careContextId"); values.add(voCareContextRefVo.getID_CareContext()); andStr = " and "; List list = factory.find(hql.toString(), markers, values); if (list != null && list.size() > 0) { DischargeSupplementaryNotesVoCollection voColl = DischargeSupplementaryNotesVoAssembler .createDischargeSupplementaryNotesVoCollectionFromDischargeSupplementaryNotes(list); if (voColl != null && voColl.size() > 0) return voColl.get(0); } } return null; }
public AttendDiagInvTreatStatusVo getAttendDiagInvTreatStatus(CareContextRefVo careContextRef) { if (careContextRef == null || careContextRef.getID_CareContext() == null) return null; DomainFactory factory = getDomainFactory(); String queryNoKnownInvestigationSaved = "SELECT attendDiagInvTreatStatus from AttendDiagInvTreatStatus as attendDiagInvTreatStatus left join attendDiagInvTreatStatus.attendance as at where (at.id = :AttendenceId and (attendDiagInvTreatStatus.isRIE is null OR attendDiagInvTreatStatus.isRIE = 0) ) "; AttendDiagInvTreatStatus doAttendDiagInvTreatStatus = (AttendDiagInvTreatStatus) factory.findFirst( queryNoKnownInvestigationSaved, new String[] {"AttendenceId"}, new Object[] {careContextRef.getID_CareContext()}); return AttendDiagInvTreatStatusVoAssembler.create(doAttendDiagInvTreatStatus); }
// WDEV-19918 - MAXIMS 10.1.2 public Boolean existAttendanceNotes( PatientRefVo patientRef, CareContextRefVo careContextRef, AttendanceClinicalNoteType noteType) { if (patientRef == null) throw new CodingRuntimeException( "Cannot list AttendanceClinicalNotes for a null Patient Id."); String hql = "select count(attClinicalNotes.id) from AttendanceClinicalNotes as attClinicalNotes "; StringBuffer hqlConditions = new StringBuffer(); ArrayList<String> markers = new ArrayList<String>(); ArrayList<Object> values = new ArrayList<Object>(); String andStr = ""; if (patientRef != null) { hqlConditions.append(andStr); hqlConditions.append("attClinicalNotes.patient.id = :PatientId "); markers.add("PatientId"); values.add(patientRef.getID_Patient()); andStr = " and "; } if (careContextRef != null) { hqlConditions.append(andStr); hqlConditions.append(" attClinicalNotes.attendance.id = :CareContextId "); markers.add("CareContextId"); values.add(careContextRef.getID_CareContext()); andStr = " and "; } if (noteType != null) { hqlConditions.append(andStr); hqlConditions.append("attClinicalNotes.noteType.id = :noteTypeId "); markers.add("noteTypeId"); values.add(noteType.getID()); andStr = " and "; } if (hqlConditions.length() > 0) { hqlConditions.insert(0, " where ("); hqlConditions.append(" ) "); } hqlConditions.append( andStr + " (attClinicalNotes.isRIE is null OR attClinicalNotes.isRIE = 0) "); hql = hql + hqlConditions.toString(); DomainFactory factory = getDomainFactory(); List<?> list = factory.find(hql, markers, values); if (list != null && list.size() > 0 && ((Long) list.get(0)).intValue() > 0) return true; return false; }
public EmergencyAttendanceInvestigationCodingVo getInvestigationSequence( CareContextRefVo emergencyAttendance) { if (emergencyAttendance == null || emergencyAttendance.getID_CareContext() == null) return null; DomainFactory factory = getDomainFactory(); String query = "select eaic from EmergencyAttendanceInvestigationCoding as eaic left join eaic.careContext as cc where cc.id = :ccID"; List<?> list = factory.find( query, new String[] {"ccID"}, new Object[] {emergencyAttendance.getID_CareContext()}); if (list != null && list.size() > 0) return EmergencyAttendanceInvestigationCodingVoAssembler.create( (EmergencyAttendanceInvestigationCoding) list.get(0)); return null; }
public InterventionsTreatmentsForAttendenceVo getInterventionsTreatmentsForAttendence( CareContextRefVo attendence) { if (attendence == null || attendence.getID_CareContext() == null) return null; DomainFactory factory = getDomainFactory(); String query = "select it from InterventionsTreatmentsForAttendence as it where it.attendance.id = :AttendenceId "; List<?> list = factory.find( query, new String[] {"AttendenceId"}, new Object[] {attendence.getID_CareContext()}); if (list == null || list.size() == 0) return null; return InterventionsTreatmentsForAttendenceVoAssembler.create( (InterventionsTreatmentsForAttendence) list.get(0)); }
private TriageForRIETriageAssessmentVo getTriage(CareContextRefVo careContext) { String query = "SELECT trg FROM Triage AS trg LEFT JOIN trg.attendance AS attd WHERE attd.id = :CONTEXT_ID and (trg.isRIE is null OR trg.isRIE = 0)"; return TriageForRIETriageAssessmentVoAssembler.create( (Triage) getDomainFactory().findFirst(query, "CONTEXT_ID", careContext.getID_CareContext())); }
public CareContextShortVo getCareContextShortVo(CareContextRefVo careContextRef) { if (careContextRef == null) throw new RuntimeException("Cannot get CareContextShortVo for null CareContextRefVo"); CareContext doCareContext = (CareContext) getDomainFactory() .getDomainObject(CareContext.class, careContextRef.getID_CareContext()); return CareContextShortVoAssembler.create(doCareContext); }
public DischargeReportDetailVo getDischargeReportDetailsForCareContext( CareContextRefVo careContext) { if (careContext == null || careContext.getID_CareContext() == null) throw new CodingRuntimeException( "CareContext is null or id not provided for getDischargeDetailsForCareContext"); DomainFactory factory = getDomainFactory(); List domainObjectList = factory.find( "select drd from DischargeReportDetail as drd left join drd.careContext as cc where cc.id = :idCareContext", new String[] {"idCareContext"}, new Object[] {careContext.getID_CareContext()}); DischargeReportDetailVoCollection reportDetail = DischargeReportDetailVoAssembler .createDischargeReportDetailVoCollectionFromDischargeReportDetail(domainObjectList); return reportDetail != null && reportDetail.size() > 0 ? (reportDetail.get(0) != null ? reportDetail.get(0) : null) : null; }
public EmergencyPatientPresentingProblemsVo getEmergencyPresentingProblems( CareContextRefVo careContextRef) { if (careContextRef == null || careContextRef.getID_CareContext() == null) throw new CodingRuntimeException("No Care context Supplied"); DomainFactory factory = getDomainFactory(); List problems = factory.find( "from PresProblemsProceduresPerformed p where p.careContext.id = :careContextId", new String[] {"careContextId"}, new Object[] {careContextRef.getID_CareContext()}); if (problems.size() > 1) throw new DomainRuntimeException("More than 1 record found for current Care context !"); return problems.size() == 0 ? null : EmergencyPatientPresentingProblemsVoAssembler.create( (PresProblemsProceduresPerformed) problems.get(0)); }
public void markTriageAsRIE( TriageProtocolAssessmentShortVo triageAssessment, FormName formName, PatientRefVo patient, CareContextRefVo careContext, String messageRIE) throws StaleObjectException, DomainInterfaceException { if (triageAssessment == null || triageAssessment.getID_TriageProtocolAssessment() == null) throw new CodingRuntimeException("Cannot RIE the records not saved."); // Get the Triage to check if it is the current Triage Assessment TriageForRIETriageAssessmentVo triage = getTriage(careContext); if (triage != null) { if (triage.getInitialTriageAssessment() == null || triageAssessment.equals(triage.getInitialTriageAssessment())) throw new DomainInterfaceException("Cannot record in error initial triage."); if (triageAssessment.equals(triage.getCurrentTriageAssessment())) { // Get the previous triage Assessment TriageProtocolAssessmentShortVo previousAssessment = getPreviousProtocolAssessment( careContext, triageAssessment.getAssessmentDateTime(), triage.getCurrentTriageAssessment()); if (previousAssessment == null) return; // TODO - cannot RIE past the initial triage // Update current triage Assessment triage.setCurrentTriageAssessment(previousAssessment); if (triage.getInitialTriageAssessment().equals(previousAssessment)) triage.setTriagePriorityChange(null); else triage.setTriagePriorityChange( getPriorityChange( triage.getInitialTriageAssessment().getTriagePriority(), previousAssessment.getTriagePriority())); triage.setCurrentTriagePriority(previousAssessment.getTriagePriority()); getDomainFactory() .save( TriageForRIETriageAssessmentVoAssembler.extractTriage(getDomainFactory(), triage)); } } markAsRie( triageAssessment, formName, patient.getID_Patient(), null, careContext.getID_CareContext(), messageRIE); }
public InvestigationsForAttendVo getInvestigationsForAttend(CareContextRefVo careContext) { DomainFactory factory = getDomainFactory(); String query = "select ifa from InvestigationsForAttend as ifa left join ifa.attendance as cc where cc.id = :AttendenceId "; List<?> list = factory.find( query, new String[] {"AttendenceId"}, new Object[] {careContext.getID_CareContext()}); if (list == null || list.size() == 0) return null; return InvestigationsForAttendVoAssembler.create((InvestigationsForAttend) list.get(0)); }
private TriageProtocolAssessmentShortVo getPreviousProtocolAssessment( CareContextRefVo careContext, DateTime assessmentDateTime, TriageProtocolAssessmentRefVo currentTriageProtocol) { String query = "SELECT tp FROM TriageProtocolAssessment AS tp LEFT JOIN tp.attendance AS attend WHERE (tp.isRIE is null OR tp.isRIE = 0) AND tp.isMain = 1 AND tp.id <> :PROTOCOL_ID AND attend.id = :CONTEXT_ID AND tp.assessmentDateTime <= :PROT_DATETIME ORDER BY tp.assessmentDateTime DESC"; ArrayList<String> paramNames = new ArrayList<String>(); ArrayList<Object> paramValues = new ArrayList<Object>(); paramNames.add("PROTOCOL_ID"); paramValues.add(currentTriageProtocol.getID_TriageProtocolAssessment()); paramNames.add("CONTEXT_ID"); paramValues.add(careContext.getID_CareContext()); paramNames.add("PROT_DATETIME"); paramValues.add(assessmentDateTime.getJavaDate()); return TriageProtocolAssessmentShortVoAssembler.create( (TriageProtocolAssessment) getDomainFactory().findFirst(query, paramNames, paramValues)); }
public TriageProtocolAssessmentShortVoCollection listTriageProtocols( PatientRefVo patient, CareContextRefVo careContext) { if (patient == null || careContext == null) throw new CodingRuntimeException("Parameters patient and careContext are mandatory"); String query = "SELECT tp FROM TriageProtocolAssessment AS tp LEFT JOIN tp.patient AS pat LEFT JOIN tp.attendance AS attend WHERE tp.isMain = 1 AND pat.id = :PAT_ID AND attend.id = :CONTEXT_ID ORDER BY tp.assessmentDateTime DESC"; ArrayList<String> paramNames = new ArrayList<String>(); ArrayList<Object> paramValues = new ArrayList<Object>(); paramNames.add("PAT_ID"); paramValues.add(patient.getID_Patient()); paramNames.add("CONTEXT_ID"); paramValues.add(careContext.getID_CareContext()); return TriageProtocolAssessmentShortVoAssembler .createTriageProtocolAssessmentShortVoCollectionFromTriageProtocolAssessment( getDomainFactory().find(query, paramNames, paramValues)); }
public VitalSignMonitoringVoCollection listVitalSignsMonitoringVo( CareContextRefVo voCareContextRef) throws DomainInterfaceException { DomainFactory factory = getDomainFactory(); StringBuffer hql = new StringBuffer("from VitalSignsMonitoring vsm "); if (voCareContextRef == null) return null; hql.append(" where vsm.careContext.id = :cc"); hql.append(" order by vsm.startDateTime desc"); java.util.List vsmList = factory.find( hql.toString(), new String[] {"cc"}, new Object[] {voCareContextRef.getID_CareContext()}); return VitalSignMonitoringVoAssembler .createVitalSignMonitoringVoCollectionFromVitalSignsMonitoring(vsmList); }
public NeuroMotorFindingsVo getNeuroMotorFindingByCareContext(CareContextRefVo carecontextref) { if (carecontextref == null) throw new DomainRuntimeException("Care Context must not be null"); DomainFactory factory = getDomainFactory(); String hql = "from NeuExamMotor neuExamMotor where neuExamMotor.clinicalContact.contactType = :ClinContactType and neuExamMotor.careContext.id = :idCareContext"; List list = factory.find( hql, new String[] {"ClinContactType", "idCareContext"}, new Object[] { getDomLookup(ContactType.SPINALMEDICALADMISSION), carecontextref.getID_CareContext() }); if (list != null && list.size() > 0) { NeuroMotorFindingsVoCollection collNeuroMotorFindings = NeuroMotorFindingsVoAssembler.createNeuroMotorFindingsVoCollectionFromNeuExamMotor(list); if (collNeuroMotorFindings != null && collNeuroMotorFindings.size() > 0) return collNeuroMotorFindings.get(0); } return null; }
public WheelchairCushionVoCollection listByCareContext(CareContextRefVo refCareContext) { DomainFactory factory = getDomainFactory(); StringBuffer hql = new StringBuffer(" "); String query = "from WheelchairCushion w "; ArrayList markers = new ArrayList(); ArrayList values = new ArrayList(); String andStr = " "; if (refCareContext != null) { hql.append(andStr + " w.careContext.id = :id_CareContext"); markers.add("id_CareContext"); values.add(refCareContext.getID_CareContext()); andStr = " and "; } if (markers.size() > 0) query += " where "; query += hql.toString(); List cushions = factory.find(query, markers, values); WheelchairCushionVoCollection collWheelchairCushion = WheelchairCushionVoAssembler.createWheelchairCushionVoCollectionFromWheelchairCushion( cushions); return collWheelchairCushion; }
public OrderInvestigationForAttendenceNotesCcVoCollection listOrderInvestigations( PatientRefVo patient, CareContextRefVo careContext, String investigationsAlreadyAdded) { if (patient == null || patient.getID_Patient() == null) throw new CodingRuntimeException( "Patient parameter can not be null when listing OrderInvestigations."); DomainFactory factory = getDomainFactory(); java.util.Date fromDate = null; java.util.Date dateTo = null; if (careContext != null && careContext.getID_CareContext() != null) { CareContext doCareContext = (CareContext) factory.getDomainObject(CareContext.class, careContext.getID_CareContext()); if (doCareContext != null) { if (doCareContext.getStartDateTime() != null) { fromDate = doCareContext.getStartDateTime(); } if (doCareContext.getEndDateTime() != null) { return null; } dateTo = new java.util.Date(); } } StringBuilder query = new StringBuilder(); ArrayList<String> paramNames = new ArrayList<String>(); ArrayList<Object> paramValues = new ArrayList<Object>(); query.append("SELECT orderInv FROM OrderInvestigation AS orderInv "); query.append( " LEFT JOIN FETCH orderInv.orderDetails AS details LEFT JOIN details.patient AS patient left join orderInv.investigation as inv left join inv.investigationIndex as invIndex left join orderInv.ordInvCurrentStatus.ordInvStatus as ordStatus "); query.append( "WHERE patient.id = :PATIENT_ID and ordStatus.id <> :cancelledStatusId and ordStatus.id <> :cancelRequestStatusId"); paramNames.add("PATIENT_ID"); paramValues.add(patient.getID_Patient()); // WDEV-17303 paramNames.add("cancelledStatusId"); paramValues.add(OrderInvStatus.CANCELLED.getID()); paramNames.add("cancelRequestStatusId"); paramValues.add(OrderInvStatus.CANCEL_REQUEST.getID()); if (fromDate != null && dateTo != null) { query.append( " AND orderInv.systemInformation.creationDateTime BETWEEN :FROM_DATE AND :END_DATE "); paramNames.add("FROM_DATE"); paramValues.add(fromDate); paramNames.add("END_DATE"); paramValues.add(dateTo); } if (investigationsAlreadyAdded != null && investigationsAlreadyAdded.length() > 0) { query.append(" AND orderInv.id not in ("); query.append(investigationsAlreadyAdded); query.append(") "); } query.append(" order by UPPER(invIndex.name) asc"); return OrderInvestigationForAttendenceNotesCcVoAssembler .createOrderInvestigationForAttendenceNotesCcVoCollectionFromOrderInvestigation( factory.find(query.toString(), paramNames, paramValues)); }