Changeset 5452
- Timestamp:
- 09/07/08 05:25:56 (3 months ago)
- Files:
-
- openmrs-modules/personportrait/metadata/config.xml (modified) (1 diff)
- openmrs-modules/personportrait/src/org/openmrs/module/personportrait/PortraitProperties.java (added)
- openmrs-modules/personportrait/web/module/portlets/personPortraitDashboardPortlet.jsp (modified) (3 diffs)
- openmrs-modules/personportrait/web/module/portlets/upload.jsp (deleted)
- openmrs-modules/personportrait/web/src/org/openmrs/module/personportrait/web/FormImageUploadServlet.java (modified) (6 diffs)
- openmrs-modules/personportrait/web/src/org/openmrs/module/personportrait/web/ImagePersonHandler.java (modified) (4 diffs)
- openmrs-modules/personportrait/web/src/org/openmrs/module/personportrait/web/ViewImageServlet.java (modified) (4 diffs)
- openmrs-modules/personportrait/web/src/org/openmrs/module/personportrait/web/ViewImageServlet2.java (added)
- openmrs-modules/personportrait/web/src/org/openmrs/module/personportrait/web/controller/PortraitPortletController.java (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
openmrs-modules/personportrait/metadata/config.xml
r5406 r5452 30 30 <globalProperty> 31 31 <property>@MODULE_ID@.person_portrait_concept</property> 32 <defaultValue>PERSONPORTRAIT </defaultValue>32 <defaultValue>PERSONPORTRAIT2</defaultValue> 33 33 <description> 34 34 The concept to use when saving a person portrait. openmrs-modules/personportrait/web/module/portlets/personPortraitDashboardPortlet.jsp
r5406 r5452 59 59 '\n\nThe output div should have already been updated with the responseText.'); 60 60 } 61 62 function preview() {63 alert("preview");64 var source=what.value;65 }66 67 function uploadPersonImage() {68 alert("The image is loadeding...");69 var fvalue = $('#recentPortraitViewBox').val();70 var img = new Image();71 img.src = fvalue;72 $("#recentPortraitViewBox").val(img);73 74 alert("The image is loaded");75 }76 77 61 </script> 78 62 </head> … … 85 69 <div id="personPortraitUploadBox" class="box${model.patientVariation}"> 86 70 <br> 87 <form name="uploadForm" action="<%= request.getContextPath() %>/moduleServlet/personportrait/formImageUpload?patientId=${param.patientId} "71 <form name="uploadForm" action="<%= request.getContextPath() %>/moduleServlet/personportrait/formImageUpload?patientId=${param.patientId}&description=${uploadForm.comment.value}" 88 72 enctype="multipart/form-data" method="post"> 89 73 <label>Image File: </label> 90 74 <input type="file" id="imageFile" name="imageFile"/> 91 <br><br> 92 <label>Portrait Date: </label> 93 <input type="text" id="portraitDate" name="portraitDate"/> 75 <input type="submit" name='Upload' value="Upload Portrait"> 94 76 <br><br> 95 77 <label>Description: </label> 96 <textarea rows="3" cols="60" id="imageDescription"></textarea> 97 <br><br> 98 <input type="submit" name='Upload' value="Upload Portrait"> 78 <textarea rows="3" cols="60" name="description"></textarea> 99 79 </form> 100 <br><br> 101 <form name="showAllPortraitsForm" action="<%= request.getContextPath() %>/moduleServlet/personportrait/formShowImages?obsId=${model.test}" 102 enctype="multipart/form-data" method="post"> 103 <input type="submit" name='showAllPortraits' value="Show All Portraits"> 104 <input type="submit" name='hideAllPortraits' value="Hide All Portraits"> 105 <input type="submit" name='deletePortrait' value="Delete Portrait"> 106 </form> 80 <br> 107 81 </div> 108 82 … … 112 86 113 87 <div id="recentPortraitViewBox" class="box${model.patientVariation}"> 114 <img src="${pageContext.request.contextPath}/moduleServlet/personportrait/formImageUpload?patientId=${param.patientId}"> 88 <table border="1" cellpadding="5"> 89 <tr><td> 90 <img src="${pageContext.request.contextPath}/moduleServlet/personportrait/formShowImages?obsId=${model.recentPortrait.obsId}&operation=SHOW_PORTRAIT"> 91 </td><td> 92 <label>Date Uploaded: ${model.recentPortrait.dateCreated}</label><br><br> 93 <label>Time Uploaded: ${model.recentPortrait.timeCreated}</label><br><br> 94 <label>Description: ${model.recentPortrait.description}</label> 95 </td></tr> 96 </table> 115 97 </div> 116 98 117 <div class="box${model.patientVariation}"> 118 <label>Portrait</label> 119 <table cellpadding="10"> 120 <c:forEach var="imageObsId" items="${model.portraits}"> 121 <tr> 122 <td> 123 <img src="${pageContext.request.contextPath}/moduleServlet/personportrait/formShowImages?obsId=${imageObsId}"> 124 </td> 125 </tr> 126 127 </c:forEach> 99 <div id="allPortraitsViewBox" class="box${model.patientVariation}"> 100 <input type="button" name='showAllPortraits' value="Show All Portraits" onClick="model.allPortraits='YES';"> 101 <input type="submit" name='hideAllPortraits' value="Hide All Portraits"> 102 103 <table border="1" cellpadding="3"> 104 <c:if test="${model.allPortraits == 'NO'}"> 105 <c:forEach var="portrait" items="${model.portraits}"> 106 <tr><td> 107 <form action="<%= request.getContextPath() %>/moduleServlet/personportrait/formShowImages?patientId=${param.patientId}&obsId=${portrait.obsId}&operation=DELETE_PORTRAIT" method="post"> 108 <input type="submit" value="Delete Portrait"> 109 </form> 110 <img src="${pageContext.request.contextPath}/moduleServlet/personportrait/formShowImages?obsId=${portrait.obsId}&operation=SHOW_PORTRAIT"> 111 <br> 112 <label>Date Uploaded: ${portrait.dateCreated}</label> 113 <br> 114 <label>Time Uploaded: ${portrait.timeCreated}</label> 115 <br> 116 <label>Description: ${portrait.description}</label> 117 </td></tr> 118 </c:forEach> 119 </c:if> 128 120 </table> 129 121 </div> openmrs-modules/personportrait/web/src/org/openmrs/module/personportrait/web/FormImageUploadServlet.java
r5409 r5452 48 48 private ImagePersonHandler imagePersonHandler; 49 49 50 @Override51 50 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 52 51 53 52 imagePersonHandler = new ImagePersonHandler(); 54 53 HttpSession httpSession = request.getSession(); 54 // ServletOutputStream sos = response.getOutputStream(); 55 55 56 56 // Create a new file upload handler … … 66 66 String fileType = item.getContentType(); 67 67 68 69 68 if(fileType.equals("image/png") || fileType.equals("image/gif") || 70 69 fileType.equals("image/jpeg")) { … … 74 73 75 74 String patientId = request.getParameter("patientId"); 75 String description = request.getParameter("description"); 76 76 77 77 PatientService patientService = Context.getPatientService(); … … 81 81 } 82 82 83 84 83 //Here's where you get the right ConceptComplex 85 84 String conceptName = Context.getAdministrationService().getGlobalProperty("personportrait.person_portrait_concept"); 86 Concept conceptTmp = Context.getConceptService().getConcept(conceptName); 87 ConceptComplex concept = Context.getConceptService().getConceptComplex(conceptTmp.getConceptId()); 88 85 Concept concept = Context.getConceptService().getConcept(conceptName); 86 // ConceptComplex conceptComplex = Context.getConceptService().getConceptComplex(concept.getConceptId()); 87 88 // sos.println("conceptName = "+conceptName); 89 // sos.println("concept = "+concept.getConceptId()); 90 // sos.println("Description = "+description); 91 // sos.println("conceptComplex = "+conceptComplex.getConceptId()); 89 92 90 93 // Create an obs object and add required fields … … 101 104 obsImage.setLocation(location); 102 105 obsImage.setVoided(false); 106 obsImage.setComment(description); 103 107 104 108 // Create a ComplexData to store the object … … 106 110 107 111 obsImage.setComplexData(dataImage); 108 109 Context.getObsService().createObs((Obs)obsImage);110 111 112 112 113 imagePersonHandler.saveObs(obsImage); 114 115 Context.getObsService().createObs((Obs)obsImage); 116 113 117 uploadedStream.close(); 114 115 //I don't think you need these:116 //obsImage = imagePersonHandler.getObs(obsImage);117 //getImage(obsImage, response);118 118 } 119 119 else { openmrs-modules/personportrait/web/src/org/openmrs/module/personportrait/web/ImagePersonHandler.java
r5406 r5452 31 31 import org.openmrs.obs.ComplexData; 32 32 import org.openmrs.obs.ComplexObsHandler; 33 import org.openmrs.obs.handler.ImageHandler;34 33 import org.openmrs.util.OpenmrsUtil; 35 import org.openmrs.web.WebConstants;36 import org.springframework.web.util.WebUtils;37 34 38 35 /** … … 100 97 String mime = (titles.length < 2) ? titles[0] 101 98 : titles[titles.length - 1]; 102 String MIME = mimes.contains(mime) ? mime : Image Handler.MIME;99 String MIME = mimes.contains(mime) ? mime : ImagePersonHandler.MIME; 103 100 String title = obs.getComplexData().getTitle().replace("." + MIME, ""); 104 101 … … 152 149 153 150 public Obs getObs(Obs obs) { 154 File file = Image Handler.getComplexDataFile(obs);151 File file = ImagePersonHandler.getComplexDataFile(obs); 155 152 System.out.println("getObs: " + obs.getValueComplex()); 156 153 System.out.println("getObs: " + file.getAbsolutePath()); … … 174 171 */ 175 172 public boolean purgeComplexData(Obs obs) { 176 File file = Image Handler.getComplexDataFile(obs);173 File file = ImagePersonHandler.getComplexDataFile(obs); 177 174 if (file.exists() && file.delete()) { 178 175 obs.setComplexData(null); openmrs-modules/personportrait/web/src/org/openmrs/module/personportrait/web/ViewImageServlet.java
r5406 r5452 1 1 package org.openmrs.module.personportrait.web; 2 2 3 import java.awt.image.BufferedImage; 3 4 import java.io.File; 4 5 import java.io.FileInputStream; 5 6 import java.io.IOException; 6 7 import java.io.InputStream; 8 import java.text.DateFormat; 9 import java.util.ArrayList; 10 import java.util.Calendar; 11 import java.util.Date; 7 12 import java.util.Iterator; 8 13 import java.util.List; 9 14 15 import javax.imageio.ImageIO; 10 16 import javax.servlet.ServletException; 11 17 import javax.servlet.ServletOutputStream; … … 17 23 import org.apache.commons.logging.Log; 18 24 import org.apache.commons.logging.LogFactory; 25 import org.openmrs.Concept; 19 26 import org.openmrs.Obs; 27 import org.openmrs.Patient; 20 28 import org.openmrs.Person; 21 29 import org.openmrs.api.ObsService; 22 30 import org.openmrs.api.context.Context; 31 import org.openmrs.module.personportrait.PortraitProperties; 23 32 import org.openmrs.util.OpenmrsUtil; 24 33 import org.openmrs.web.WebConstants; … … 32 41 private static final DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 33 42 34 @Override35 43 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 36 ImagePersonHandler imagePersonHandler = new ImagePersonHandler(); 44 HttpSession httpSession = request.getSession(); 45 46 String operation = request.getParameter("operation"); 47 if (operation != null & operation.equals("DELETE_PORTRAIT")) { 48 String patientId = request.getParameter("patientId"); 49 String obsPortraitId = request.getParameter("obsId"); 50 deletePortrait(patientId, obsPortraitId); 51 } 52 } 53 54 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 37 55 HttpSession httpSession = request.getSession(); 38 56 ServletOutputStream outputStream = response.getOutputStream(); 39 57 40 String imageObsId = request.getParameter("obsId"); 41 outputStream.println("Images"); 42 if (imageObsId == null) { 43 return; 58 String obsPortraitId = null; 59 String operation = request.getParameter("operation"); 60 if (operation != null & operation.equals("SHOW_PORTRAIT")) { 61 obsPortraitId = request.getParameter("obsId"); 62 if (obsPortraitId == null || obsPortraitId.length()==0) { 63 httpSession.setAttribute(WebConstants.OPENMRS_ERROR_ATTR, "This Person Has No Portrait."); 64 return; 65 } 66 67 ObsService service = Context.getObsService(); 68 Obs complexObs = service.getObs(Integer.valueOf(obsPortraitId)); 69 70 loadImage(complexObs, outputStream); 44 71 } 45 outputStream.println("imageObsId : "+imageObsId);46 47 /*48 String patientId = request.getParameter("patientId");49 if (patientId == null) {50 return;51 }52 outputStream.println("patientId : "+patientId);53 54 ObsService service = Context.getObsService();55 List<Obs> listComplexObs = service.getAllComplexObs();56 if (listComplexObs == null || listComplexObs.isEmpty()) {57 return;58 }59 60 Iterator obsIt = listComplexObs.iterator();61 while (obsIt.hasNext()) {62 Obs obs = (Obs)obsIt.next();63 if (obs != null) {64 Person patient = obs.getPerson();65 if (patient.getPersonId().equals(Integer.valueOf(patientId))) {66 Obs obsTemp = imagePersonHandler.getObs(obs);67 getImage(obsTemp, outputStream);68 }69 }70 }71 */72 72 } 73 74 public void getImage(Obs complexObs, ServletOutputStream outputStream) throws ServletException, IOException {73 74 public void loadImage(Obs complexObs, ServletOutputStream outputStream) throws ServletException, IOException { 75 75 76 76 String[] valComplex = complexObs.getValueComplex().split("\\|"); … … 99 99 } 100 100 101 public void findMostRecentPortrait () { 101 public String findMostRecentPortrait(String patientId) { 102 String mostRecentPortraitID = null; 103 Date mostRecentDate = null; 104 Date tempDate = null; 102 105 103 } 104 105 // for testing 106 @Override 107 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 108 ServletOutputStream out = response.getOutputStream(); 109 response.setStatus(HttpServletResponse.SC_BAD_REQUEST); 110 out.print("<html><head>Invalid Response</head></html>"); 106 Person person = Context.getPersonService().getPerson(Integer.valueOf(patientId)); 107 if (person == null) 108 throw new RuntimeException("Unable to load person from request"); 109 110 String conceptName = Context.getAdministrationService().getGlobalProperty("personportrait.person_portrait_concept"); 111 Concept concept = Context.getConceptService().getConcept(conceptName); 112 113 List<Obs> obsList = Context.getObsService().getObservationsByPerson(person); 114 if (obsList == null & obsList.isEmpty()) 115 return null; 116 117 boolean isFirst = true; 118 for (Obs obs:obsList){ 119 if (obs.isComplex() && obs.getConcept().getConceptId() == concept.getConceptId()) { 120 if (isFirst) { 121 mostRecentDate = obs.getDateCreated(); 122 mostRecentPortraitID = ""+obs.getObsId(); 123 isFirst = false; 124 } 125 else { 126 tempDate = obs.getDateCreated(); 127 if (mostRecentDate.before(tempDate)) { 128 mostRecentPortraitID = ""+obs.getObsId(); 129 } 130 } 131 } 132 } 133 134 return mostRecentPortraitID; 111 135 } 112 136 137 public void deletePortrait(String patientId, String obsPortraitId) { 138 ImagePersonHandler imagePersonHandler = new ImagePersonHandler(); 139 140 Person person = Context.getPersonService().getPerson(Integer.valueOf(patientId)); 141 if (person == null) 142 throw new RuntimeException("Unable to load person from request"); 143 144 String conceptName = Context.getAdministrationService().getGlobalProperty("personportrait.person_portrait_concept"); 145 Concept concept = Context.getConceptService().getConcept(conceptName); 146 147 List<Obs> obsList = Context.getObsService().getObservationsByPerson(person); 148 if (obsList == null & obsList.isEmpty()) 149 return; 150 151 for (Obs obs:obsList){ 152 if (obs.isComplex() && obs.getConcept().getConceptId() == concept.getConceptId()) { 153 Integer obsIdTemp = obs.getObsId(); 154 if (obsIdTemp == Integer.parseInt(obsPortraitId)) { 155 imagePersonHandler.purgeComplexData(obs); 156 Context.getObsService().purgeObs(obs); 157 } 158 } 159 } 160 } 113 161 } 114 162 openmrs-modules/personportrait/web/src/org/openmrs/module/personportrait/web/controller/PortraitPortletController.java
r5407 r5452 18 18 import java.io.IOException; 19 19 import java.io.InputStream; 20 import java.text.DateFormat; 20 21 import java.util.ArrayList; 21 22 import java.util.Collection; 23 import java.util.Date; 22 24 import java.util.HashMap; 23 25 import java.util.Iterator; … … 39 41 import org.openmrs.api.ObsService; 40 42 import org.openmrs.api.context.Context; 43 import org.openmrs.module.personportrait.PortraitProperties; 41 44 import org.openmrs.module.personportrait.web.ImagePersonHandler; 42 45 import org.openmrs.util.OpenmrsUtil; … … 46 49 public class PortraitPortletController extends PortletController { 47 50 48 @SuppressWarnings("unchecked")49 51 protected void populateModel(HttpServletRequest request, Map<String, Object> model) { 50 52 51 53 //remove this when finished coding: 52 54 log.info("Hitting PortraitPortletController"); 53 54 List listP ersonObs = new ArrayList();55 Person person = (Person) model.get("person");55 Patient patient = null; 56 List listPortraits = new ArrayList(); 57 Person person = (Person)model.get("person"); 56 58 if (person == null){ 57 Patient p= (Patient) model.get("patient");58 person = Context.getPersonService().getPerson(p .getPatientId());59 patient = (Patient) model.get("patient"); 60 person = Context.getPersonService().getPerson(patient.getPatientId()); 59 61 } 60 62 if (person == null) … … 65 67 66 68 List<Obs> oList = Context.getObsService().getObservationsByPerson(person); 67 for (Obs o:oList){ 68 if (o.isComplex() && o.getConcept().getConceptId() == concept.getConceptId()) 69 listPersonObs.add(o); 69 for (Obs obs:oList){ 70 if (obs.isComplex() && obs.getConcept().getConceptId() == concept.getConceptId()) { 71 PortraitProperties portraitProperties = new PortraitProperties(); 72 73 portraitProperties.setObsId(obs.getObsId()); 74 75 Date date = obs.getDateCreated(); 76 String dateString = DateFormat.getDateInstance().format(date); 77 portraitProperties.setDateCreated(dateString); 78 79 String timeString = DateFormat.getTimeInstance().format(date); 80 portraitProperties.setTimeCreated(timeString); 81 82 portraitProperties.setDescription(obs.getComment()); 83 84 listPortraits.add(portraitProperties); 85 } 70 86 } 87 model.put("portraits", listPortraits); 88 // To remove when finished coding 89 log.info("This many portraits found: "+listPortraits.size()); 71 90 72 //remove this when finished coding: 73 log.info("This many portraits found: " + listPersonObs.size()); 91 String recentPortraitID = findMostRecentPortrait(person.getPersonId()); 92 ObsService service = Context.getObsService(); 93 Obs recentObs = service.getObs(Integer.valueOf(recentPortraitID)); 74 94 75 model.put("portraits", listPersonObs); 95 PortraitProperties portraitProperties = new PortraitProperties(); 96 portraitProperties.setObsId(recentObs.getObsId()); 97 98 Date date = recentObs.getDateCreated(); 99 String dateString = DateFormat.getDateInstance().format(date); 100 portraitProperties.setDateCreated(dateString); 101 102 String timeString = DateFormat.getTimeInstance().format(date); 103 portraitProperties.setTimeCreated(timeString); 104 105 portraitProperties.setDescription(recentObs.getComment()); 106 107 model.put("recentPortrait", portraitProperties); 108 109 model.put("deletePortrait", "DELETE_PORTRAIT"); 110 model.put("allPortraits", "NO"); 111 } 112 113 public String findMostRecentPortrait(Integer patientId) { 114 String mostRecentPortraitID = null; 115 Date mostRecentDate = null; 116 Date tempDate = null; 117 118 Person person = Context.getPersonService().getPerson(patientId); 119 if (person == null) 120 throw new RuntimeException("Unable to load person from request"); 121 122 String conceptName = Context.getAdministrationService().getGlobalProperty("personportrait.person_portrait_concept"); 123 Concept concept = Context.getConceptService().getConcept(conceptName); 124 125 List<Obs> obsList = Context.getObsService().getObservationsByPerson(person); 126 if (obsList == null & obsList.isEmpty()) 127 return null; 128 129 boolean isFirst = true; 130 for (Obs obs:obsList){ 131 if (obs.isComplex() && obs.getConcept().getConceptId() == concept.getConceptId()) { 132 if (isFirst) { 133 mostRecentDate = obs.getDateCreated(); 134 mostRecentPortraitID = ""+obs.getObsId(); 135 isFirst = false; 136 } 137 else { 138 tempDate = obs.getDateCreated(); 139 if (mostRecentDate.before(tempDate)) { 140 mostRecentPortraitID = ""+obs.getObsId(); 141 } 142 } 143 } 144 } 145 146 return mostRecentPortraitID; 76 147 } 77 148 … … 93 164 return imageFile; 94 165 } 95 96 97 166 }