@RequestMapping("/module/hirifxray/participant.form") public String viewParticipant( ModelMap model, @RequestParam(value = "id", required = true) Integer id, @RequestParam(value = "type", required = false) Concept type, @RequestParam(value = "xrayId", required = false) Encounter encounter) { User currentUser = Context.getAuthenticatedUser(); if (currentUser == null) { return "redirect:/login.htm"; } Xray xray = new Xray(encounter); model.addAttribute("type", type); model.addAttribute("xray", xray); Patient patient = Context.getPatientService().getPatient(id); model.addAttribute("patient", patient); model.addAttribute("xrayTypes", HirifMetadata.getXrayTypes()); model.addAttribute("xraysByType", HirifUtil.getXraysByType(patient)); model.addAttribute("xrayLocations", HirifMetadata.getXrayLocations()); model.addAttribute("xrayStatuses", HirifMetadata.getXrayStatuses()); model.addAttribute("notDoneStatus", HirifMetadata.getNotDoneStatus()); model.addAttribute("completedStatus", HirifMetadata.getCompletedStatus()); return null; }
@RequestMapping("/module/hirifxray/createParticipant.form") public String createParticipant( ModelMap model, @RequestParam(value = "identifier", required = true) String identifier, @RequestParam(value = "gender", required = true) String gender) throws Exception { Patient p = new Patient(); PersonName pn = new PersonName(); pn.setGivenName("XXXX"); pn.setFamilyName("XXXX"); p.addName(pn); p.setGender(gender); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); p.setBirthdate(df.parse("1900-01-01")); PatientIdentifier pi = new PatientIdentifier(); pi.setPatient(p); pi.setLocation(HirifMetadata.getUnknownLocation()); pi.setIdentifierType(HirifMetadata.getIdentifierType()); pi.setIdentifier(identifier); p.addIdentifier(pi); p = Context.getPatientService().savePatient(p); return "redirect:/module/hirifxray/participant.form?id=" + p.getPatientId(); }
@RequestMapping("/module/hirifxray/uploadXray.form") public String uploadXray( ModelMap model, @RequestParam(value = "patientId", required = true) Patient patient, @RequestParam(value = "xrayId", required = false) Encounter encounter, @RequestParam(value = "xrayDate", required = false) Date encounterDate, @RequestParam(value = "type", required = true) Concept type, @RequestParam(value = "status", required = false) Concept status, @RequestParam(value = "location", required = false) Concept location, @RequestParam(value = "xrayFile", required = false) MultipartFile xrayFile) throws Exception { ComplexData xrayData = null; if (xrayFile != null && !xrayFile.isEmpty()) { String identifier = patient.getPatientIdentifier().getIdentifier(); String[] fileParts = xrayFile.getOriginalFilename().split("\\."); String xrayKey = identifier + "_" + type + "." + fileParts[fileParts.length - 1]; xrayData = new ComplexData(xrayKey, xrayFile.getInputStream()); } if (encounter == null) { encounter = new Encounter(); encounter.setPatient(patient); encounter.setEncounterType(HirifMetadata.getEncounterType()); } encounter.setEncounterDatetime( encounterDate == null ? HirifUtil.dateMidnight() : encounterDate); HirifUtil.updateCodedObs(encounter, HirifMetadata.getXrayTypeConcept(), type); HirifUtil.updateCodedObs(encounter, HirifMetadata.getXrayStatusConcept(), status); HirifUtil.updateCodedObs(encounter, HirifMetadata.getXrayLocationConcept(), location); HirifUtil.updateComplexObs(encounter, HirifMetadata.getXrayImageConcept(), xrayData); encounter = Context.getEncounterService().saveEncounter(encounter); return "redirect:/module/hirifxray/participant.form?id=" + patient.getPatientId() + "&type=" + type + "&xrayId=" + encounter.getEncounterId(); }