@RequestMapping(value = "/request-record.htm", method = RequestMethod.GET) public String initForm(ModelMap model, @RequestParam("patientId") long patientId) { RecordRequestCommand request = new RecordRequestCommand(); // nihar 4 changes Patient patient = patientDao.findById(patientId); model.addAttribute("hospitalList", hospitalDao.findAll()); // nihar 4 changes model.addAttribute("request", request); // nihar 4 changes model.addAttribute("patient", patient); logger.info("for patient: " + patient.getId()); // nihar 4 changes return "doctor/record-request"; }
@RequestMapping(value = "/request-record.htm", method = RequestMethod.POST) public String processSubmit( @ModelAttribute("request") RecordRequestCommand request, @ModelAttribute("patient") Patient patient, BindingResult result, @RequestParam("hospitalId") long hospitalId, SessionStatus status, HttpSession session, Model model) { ConsentRequest consentRequest = new ConsentRequest(); consentRequest.setConsentType(request.getConsentType()); int recordTypes = 0; for (String s : request.getRecordType()) { int record = Integer.parseInt(s); recordTypes |= record; } consentRequest.setRecordType(recordTypes); // nihar 4 changes UserAccount ua = (UserAccount) session.getAttribute("userAccount"); Hospital h = hospitalDao.findById(hospitalId); logger.info("Record Request: " + request.getPatientId()); logger.info("PatientId in consent creation by doctor request: " + patient.getId()); logger.info(" user: "******"Hospital record is requested " + h.getName()); consentRequest.setPatient(patientDao.findById(request.getPatientId())); consentRequest.setRecordProvider(h); consentRequest.setRecordRequester(hospitalDao.findById(ua.getPerson().getHospital().getId())); consentRequest.setRequestByUser(ua); // nihar 4 changes consentRequestDao.saveOrUpdate(consentRequest); model.addAttribute("patientlist", patientDao.listPatient(ua.getPerson().getHospital().getId())); // code for displaying patient details model.addAttribute("patient", patientDao.findById(request.getPatientId())); Consent consent = consentDao.getConsentFromPatientId(request.getPatientId()); // logger.info("Consent Type for the Patient is "+ consent.getConsentType()); if (consent != null) { if (consent.getConsentType().equalsIgnoreCase(request.getConsentType())) { logger.info("Consent Match"); /*model.addAttribute("medical",medicalRecordDao.listMedicalRecord(request.getPatientId()));*/ ArrayList<MedicalRecord> record = (ArrayList<MedicalRecord>) medicalRecordDao.listMedicalRecord(request.getPatientId()); ArrayList<MedicalRecord> temp = new ArrayList<>(); int consentRecordType = Integer.parseInt(consent.getRecordType()); for (MedicalRecord medicalRecord : record) { if ((medicalRecord.getRecordType() & (consentRecordType & recordTypes)) != 0) { temp.add(medicalRecord); logger.info("Record Type: " + medicalRecord.getRecordType()); logger.info(" Types: " + consent.getRecordType()); } } // model.addAttribute("medical",medicalRecordDao.listMedicalRecord(request.getPatientId(),recordTypes)); model.addAttribute("medical", temp); return "doctor/patient-info"; } else { logger.info("No Permission"); return "doctor/home"; } } else { logger.info("No Consent Found"); return "doctor/home"; } }