public static void fillFormValues(EctConsultationFormRequestForm thisForm, Integer requestId) { ConsultationRequestDao consultDao = (ConsultationRequestDao) SpringUtils.getBean("consultationRequestDao"); ConsultationRequest consult = consultDao.find(requestId); thisForm.setAllergies(consult.getAllergies()); thisForm.setReasonForConsultation(consult.getReasonForReferral()); thisForm.setClinicalInformation(consult.getClinicalInfo()); thisForm.setCurrentMedications(consult.getCurrentMeds()); Date date = consult.getReferralDate(); thisForm.setReferalDate(DateFormatUtils.ISO_DATE_FORMAT.format(date)); thisForm.setSendTo(consult.getSendTo()); thisForm.setService(consult.getServiceId().toString()); thisForm.setStatus(consult.getStatus()); setAppointmentDateTime(thisForm, consult); thisForm.setConcurrentProblems(consult.getConcurrentProblems()); thisForm.setAppointmentNotes(consult.getStatusText()); thisForm.setUrgency(consult.getUrgency()); thisForm.setPatientWillBook(String.valueOf(consult.isPatientWillBook())); date = consult.getFollowUpDate(); if (date != null) { thisForm.setFollowUpDate(DateFormatUtils.ISO_DATE_FORMAT.format(date)); } else { thisForm.setFollowUpDate(""); } DemographicDao demoDao = (DemographicDao) SpringUtils.getBean("demographicDao"); Demographic demo = demoDao.getDemographicById(consult.getDemographicId()); thisForm.setPatientAddress(demo.getAddress()); thisForm.setPatientDOB(demo.getFormattedDob()); thisForm.setPatientHealthNum(demo.getHin()); thisForm.setPatientHealthCardVersionCode(demo.getVer()); thisForm.setPatientHealthCardType(demo.getHcType()); thisForm.setPatientFirstName(demo.getFirstName()); thisForm.setPatientLastName(demo.getLastName()); thisForm.setPatientPhone(demo.getPhone()); thisForm.setPatientSex(demo.getSex()); thisForm.setPatientWPhone(demo.getPhone2()); thisForm.setPatientEmail(demo.getEmail()); thisForm.setPatientAge(demo.getAge()); ProviderDao provDao = (ProviderDao) SpringUtils.getBean("providerDao"); Provider prov = provDao.getProvider(consult.getProviderNo()); thisForm.setProviderName(prov.getFormattedName()); thisForm.seteReferral(false); }
public ActionForward update( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String value = request.getParameter("value"); Provider provider = LoggedInInfo.loggedInInfo.get().loggedInProvider; UserProperty prop = propertyDao.getProp(provider.getProviderNo(), "rxInteractionWarningLevel"); if (prop == null) { prop = new UserProperty(); prop.setName("rxInteractionWarningLevel"); prop.setProviderNo(provider.getProviderNo()); } prop.setValue(value); propertyDao.saveProp(prop); try { response.getWriter().println("ok"); } catch (IOException e) { logger.error("error", e); } return null; }
public ActionForward sendPlan( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { LoggedInInfo loggedInInfo = LoggedInInfo.getLoggedInInfoFromSession(request); HashMap<String, Object> hashMap = new HashMap<String, Object>(); ProviderDao providerDao = (ProviderDao) SpringUtils.getBean("providerDao"); SecUserRoleDao secUserRoleDao = (SecUserRoleDao) SpringUtils.getBean("secUserRoleDao"); List<Provider> activeReceptionists = new ArrayList<Provider>(); for (SecUserRole sur : secUserRoleDao.getSecUserRolesByRoleName("receptionist")) { Provider p = providerDao.getProvider(sur.getProviderNo()); if (p != null && p.getStatus().equals("1")) { activeReceptionists.add(p); } } TicklerCreator tc = new TicklerCreator(); String demographicNo = request.getParameter("demographicNo"); String message = request.getParameter("value"); if (demographicNo != null && message != null && message.trim().length() > 0 && activeReceptionists != null) { for (Provider p : activeReceptionists) { tc.createTickler(loggedInInfo, demographicNo, p.getProviderNo(), message); } hashMap.put("sentToReceptionists", activeReceptionists.size()); } return null; }
public static void fillFormValues(EctConsultationFormRequestForm thisForm, String segmentId) throws HL7Exception, UnsupportedEncodingException, Base64DecodingException { Hl7TextMessageDao hl7TextMessageDao = (Hl7TextMessageDao) SpringUtils.getBean("hl7TextMessageDao"); Hl7TextMessage hl7TextMessage = hl7TextMessageDao.find(Integer.parseInt(segmentId)); String encodedMessage = hl7TextMessage.getBase64EncodedeMessage(); byte[] decodedMessage = Base64.decode(encodedMessage); String decodedMessageString = new String(decodedMessage, MiscUtils.DEFAULT_UTF8_ENCODING); REF_I12 refI12 = (REF_I12) OscarToOscarUtils.pipeParserParse(decodedMessageString); thisForm.setHl7TextMessageId(hl7TextMessage.getId()); thisForm.setAllergies(RefI12.getNteValue(refI12, RefI12.REF_NTE_TYPE.ALLERGIES)); thisForm.setReasonForConsultation( RefI12.getNteValue(refI12, RefI12.REF_NTE_TYPE.REASON_FOR_CONSULTATION)); thisForm.setClinicalInformation( RefI12.getNteValue(refI12, RefI12.REF_NTE_TYPE.CLINICAL_INFORMATION)); thisForm.setCurrentMedications( RefI12.getNteValue(refI12, RefI12.REF_NTE_TYPE.CURRENT_MEDICATIONS)); GregorianCalendar referralDate = DataTypeUtils.getCalendarFromDTM(refI12.getRF1().getEffectiveDate()); thisForm.setReferalDate(DateFormatUtils.ISO_DATE_FORMAT.format(referralDate)); thisForm.setConcurrentProblems( RefI12.getNteValue(refI12, RefI12.REF_NTE_TYPE.CONCURRENT_PROBLEMS)); // spoecifically told that this field should not be sent electronically (so it shouldn't be // received either). // thisForm.setAppointmentNotes(RefI12.getNteValue(refI12, // RefI12.REF_NTE_TYPE.APPOINTMENT_NOTES)); // --- PID pid = refI12.getPID(); Demographic demographic = DataTypeUtils.parsePid(pid); StringBuilder address = new StringBuilder(); if (demographic.getAddress() != null) address.append(demographic.getAddress()).append("<br />"); if (demographic.getCity() != null) address.append(demographic.getCity()).append(", "); if (demographic.getProvince() != null) address.append(demographic.getProvince()); thisForm.setPatientAddress(address.toString()); if (demographic.getBirthDay() != null) { thisForm.setPatientDOB(DateFormatUtils.ISO_DATE_FORMAT.format(demographic.getBirthDay())); String ageString = UtilDateUtilities.calcAgeAtDate(demographic.getBirthDay().getTime(), new Date()); thisForm.setPatientAge(ageString); } thisForm.setPatientHealthNum(demographic.getHin()); thisForm.setPatientHealthCardType(demographic.getHcType()); thisForm.setPatientHealthCardVersionCode(demographic.getVer()); thisForm.setPatientFirstName(demographic.getFirstName()); thisForm.setPatientLastName(demographic.getLastName()); thisForm.setPatientPhone(demographic.getPhone()); thisForm.setPatientSex(demographic.getSex()); // thisForm.setPatientWPhone(patientAddress); thisForm.setPatientEmail(demographic.getEmail()); // referring provider PRD referringPrd = RefI12.getPrdByRoleId(refI12, "RP"); Provider provider = DataTypeUtils.parsePrdAsProvider(referringPrd); thisForm.setProviderName(provider.getLastName() + ", " + provider.getFirstName()); thisForm.seteReferral(true); // referredTo specialist PRD referredToPrd = RefI12.getPrdByRoleId(refI12, "RT"); ProfessionalSpecialist professionalSpecialist = DataTypeUtils.parsePrdAsProfessionalSpecialist(referredToPrd); thisForm.setProfessionalSpecialistName( professionalSpecialist.getLastName() + ", " + professionalSpecialist.getFirstName()); thisForm.setProfessionalSpecialistAddress(professionalSpecialist.getStreetAddress()); thisForm.setProfessionalSpecialistPhone(professionalSpecialist.getPhoneNumber()); }
public void populateMDSSegmentData(String SID) { this.segmentID = SID; String associatedOBR = ""; String labID = ""; int mdsOBXNum = 0; try { // Get the header info MdsMSHDao mshDao = SpringUtils.getBean(MdsMSHDao.class); for (Object[] o : mshDao.findMdsSementDataById(ConversionUtils.fromIntString(segmentID))) { Date dateTime = (Date) o[0]; String controlId = (String) o[1]; String reportFormStatus = (String) o[2]; GregorianCalendar cal = new GregorianCalendar(Locale.ENGLISH); SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH); cal.setTime(dateTime); reportDate = dateFormat.format(cal.getTime()); reportStatus = (reportFormStatus.equals("1") ? "Final" : "Partial"); clientNo = controlId.split("-")[0]; accessionNo = controlId.split("-")[1]; } // Get the lab ID MdsZLBDao zlbDao = SpringUtils.getBean(MdsZLBDao.class); MdsZLB zlb = zlbDao.find(ConversionUtils.fromIntString(this.segmentID)); if (zlb != null) { labID = zlb.getLabId(); } // Get the providers MdsPV1Dao pvDao = SpringUtils.getBean(MdsPV1Dao.class); MdsPV1 pv = pvDao.find(ConversionUtils.fromIntString(this.segmentID)); if (pv != null) { providers = new ProviderData(pv.getRefDoctor(), pv.getConDoctor(), pv.getAdmDoctor()); } else { providers = new ProviderData("", "", ""); } // Get the lab status ProviderLabRoutingDao plrDao = SpringUtils.getBean(ProviderLabRoutingDao.class); for (Object[] o : plrDao.findProviderAndLabRoutingByIdAndLabType( ConversionUtils.fromIntString(this.segmentID), "MDS")) { Provider provider = (Provider) o[0]; ProviderLabRoutingModel providerLabRouting = (ProviderLabRoutingModel) o[1]; statusArray.add( new ReportStatus( provider.getFirstName() + " " + provider.getLastName(), provider.getProviderNo(), descriptiveStatus(providerLabRouting.getStatus()), providerLabRouting.getComment(), ConversionUtils.toDateString(providerLabRouting.getTimestamp()), this.segmentID)); } // Get item descriptions and ranges and read into a hashtable Hashtable<String, Mnemonics> mnemonics = new Hashtable<String, Mnemonics>(); MdsZMNDao zmnDao = SpringUtils.getBean(MdsZMNDao.class); MdsZMN zmn = zmnDao.find(ConversionUtils.fromIntString(this.segmentID)); if (zmn != null) { mnemonics.put( zmn.getResultMnemonic(), new Mnemonics(zmn.getReportName(), zmn.getUnits(), zmn.getReferenceRange())); } // Process the notes Hashtable<Integer, ArrayList<String>> notes = new Hashtable<Integer, ArrayList<String>>(); MdsNTEDao nteDao = SpringUtils.getBean(MdsZMNDao.class); MdsZMCDao zmcDao = SpringUtils.getBean(MdsZMCDao.class); MdsNTE nte = nteDao.find(labID); if (nte != null) { if (notes.get(nte.getAssociatedOBX()) == null) { notes.put(nte.getAssociatedOBX(), new ArrayList<String>()); } if (nte.getSourceOfComment().equals("M")) { ((ArrayList<String>) notes.get(nte.getAssociatedOBX())) .add(new String(nte.getComment().substring(3))); } else { if (nte.getSourceOfComment().equals("MC")) { MdsZMC zmc = zmcDao.findByIdAndSetId( ConversionUtils.fromIntString(this.segmentID), nte.getComment().substring(1)); if (zmc == null) { zmc = zmcDao.findByIdAndSetId( ConversionUtils.fromIntString(this.segmentID), "%" + nte.getComment().substring(1, nte.getComment().length() - 1) + "%"); } if (zmc != null) { ((ArrayList<String>) notes.get(nte.getAssociatedOBX())).add(zmc.getMessageCodeDesc()); } } else { logger.info( "Found message note in unknown format. Format:" + nte.getSourceOfComment()); ((ArrayList<String>) notes.get(nte.getAssociatedOBX())).add("Unknown note format!"); } } } // Get the report section names MdsZRGDao zrgDao = SpringUtils.getBean(MdsZRGDao.class); for (Object[] o : zrgDao.findById(ConversionUtils.fromIntString(this.segmentID))) { String groupDesc = (String) o[0]; String groupId = (String) o[1]; Integer groupIdCount = (Integer) o[2]; String groupHeading = (String) o[3]; if (groupIdCount == 1 && !groupHeading.equals("")) { String[] rGH = {groupHeading}; headersArray.add(new Headers(groupDesc, groupId, rGH)); } else if (groupIdCount > 1) { ArrayList<String> tempArray = new ArrayList<String>(); for (Object oo : zrgDao.findReportGroupHeadingsById( ConversionUtils.fromIntString(this.segmentID), groupId)) { tempArray.add(String.valueOf(oo)); } String[] reportGroupHeading = new String[tempArray.size()]; reportGroupHeading = tempArray.toArray(reportGroupHeading); headersArray.add(new Headers(groupDesc, groupId, reportGroupHeading)); } else { headersArray.add(new Headers(groupDesc, groupId, null)); } } // Create the data structures for each section, grouped by OBR MdsOBRDao obrDao = SpringUtils.getBean(MdsOBRDao.class); for (int i = 0; i < headersArray.size(); i++) { List<String> resultCodes = zmnDao.findResultCodes( ConversionUtils.fromIntString(this.segmentID), headersArray.get(i).reportSequence); for (Object[] ooo : obrDao.findByIdAndResultCodes( ConversionUtils.fromIntString(this.segmentID), resultCodes)) { String associatedObr = (String) ooo[0]; Date observationDateTime = (Date) ooo[1]; (headersArray.get(i)) .groupedReportsArray.add( new GroupedReports( associatedObr, ConversionUtils.toTimestampString(observationDateTime), resultCodes)); } } MdsOBXDao obxDao = SpringUtils.getBean(MdsOBXDao.class); // Get the actual results Mnemonics thisOBXMnemonics = new Mnemonics(); for (int i = 0; i < (headersArray.size()); i++) { for (int j = 0; j < (headersArray.get(i)).groupedReportsArray.size(); j++) { associatedOBR = ((headersArray.get(i)).groupedReportsArray.get(j)).associatedOBR; List<String> codes = ((headersArray.get(i)).groupedReportsArray.get(j)).codes; for (MdsOBX obx : obxDao.findByIdObrAndCodes( ConversionUtils.fromIntString(this.segmentID), associatedOBR, codes)) { mdsOBXNum = obx.getObxId(); thisOBXMnemonics.update( (Mnemonics) mnemonics.get( obx.getObservationIdentifier() .substring(1, obx.getObservationIdentifier().indexOf('^')))); ((headersArray.get(i)).groupedReportsArray.get(j)) .resultsArray.add( new Results( thisOBXMnemonics.reportName, thisOBXMnemonics.referenceRange, thisOBXMnemonics.units, obx.getObservationValue(), obx.getAbnormalFlags(), obx.getObservationIdentifier(), obx.getObservationResultStatus(), (ArrayList<String>) notes.get(Integer.toString(mdsOBXNum)), obx.getProducersId().substring(0, obx.getProducersId().indexOf('^')))); } } } } catch (Exception e) { logger.error("In MDS Segment Data", e); } }