[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openmrs-svn
Subject:    [30916] openmrs-modules/chica/branches/cerner/web/src/org/openmrs/module/ chica/web/ExternalFormCont
From:       svn-noreply () openmrs ! org
Date:       2014-09-19 19:05:16
Message-ID: 20140919190516.EA57D4028B () openmrs ! osuosl ! org
[Download RAW message or body]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[30916] openmrs-modules/chica/branches/cerner/web/src/org/openmrs/module/chica/web/ExternalFormController.java: \
Electronic PWS updates.</title> </head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: \
verdana,arial,helvetica,sans-serif; font-size: 10pt;  } #msg dl a { font-weight: \
bold} #msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: \
bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: \
6px; } #logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em \
0; } #logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg \
h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } \
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; \
} #logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: \
-1.5em; padding-left: 1.5em; } #logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em \
1em 0 1em; background: white;} #logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid \
#fa0; border-bottom: 1px solid #fa0; background: #fff; } #logmsg table th { \
text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted \
#fa0; } #logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: \
0.2em 0.5em; } #logmsg table thead th { text-align: center; border-bottom: 1px solid \
#fa0; } #logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: \
6px; } #patch { width: 100%; }
#patch h4 {font-family: \
verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
 #patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, \
#patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins \
{background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del \
{background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, \
                .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd>30916</dd>
<dt>Author</dt> <dd>sjmckee</dd>
<dt>Date</dt> <dd>2014-09-19 19:05:16 +0000 (Fri, 19 Sep 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Electronic PWS updates.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#openmrsmoduleschicabranchescernerwebsrcorgopenmrsmodulechicawebExternalF \
ormControllerjava">openmrs-modules/chica/branches/cerner/web/src/org/openmrs/module/chica/web/ExternalFormController.java</a></li>
 </ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="openmrsmoduleschicabranchescernerwebsrcorgopenmrsmodulechicawebExternalFormControllerjava"></a>
 <div class="modfile"><h4>Modified: \
openmrs-modules/chica/branches/cerner/web/src/org/openmrs/module/chica/web/ExternalFormController.java \
(30915 => 30916)</h4> <pre class="diff"><span>
<span class="info">--- \
openmrs-modules/chica/branches/cerner/web/src/org/openmrs/module/chica/web/ExternalFormController.java	2014-09-19 \
                14:23:08 UTC (rev 30915)
+++ openmrs-modules/chica/branches/cerner/web/src/org/openmrs/module/chica/web/ExternalFormController.java	2014-09-19 \
19:05:16 UTC (rev 30916) </span><span class="lines">@@ -14,6 +14,9 @@
</span><span class="cx"> package org.openmrs.module.chica.web;
</span><span class="cx"> 
</span><span class="cx"> import java.util.ArrayList;
</span><ins>+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
</ins><span class="cx"> import java.util.HashMap;
</span><span class="cx"> import java.util.List;
</span><span class="cx"> import java.util.Map;
</span><span class="lines">@@ -21,13 +24,15 @@
</span><span class="cx"> import javax.servlet.http.HttpServletRequest;
</span><span class="cx"> import javax.servlet.http.HttpServletResponse;
</span><span class="cx"> 
</span><del>-import org.hibernate.Hibernate;
</del><ins>+import org.openmrs.Encounter;
</ins><span class="cx"> import org.openmrs.Form;
</span><span class="cx"> import org.openmrs.Patient;
</span><span class="cx"> import org.openmrs.PatientIdentifierType;
</span><span class="cx"> import org.openmrs.api.PatientService;
</span><span class="cx"> import org.openmrs.api.context.Context;
</span><span class="cx"> import \
org.openmrs.api.context.ContextAuthenticationException; </span><ins>+import \
org.openmrs.module.atd.hibernateBeans.Statistics; +import \
org.openmrs.module.atd.service.ATDService; </ins><span class="cx"> import \
org.springframework.validation.BindException; </span><span class="cx"> import \
org.springframework.web.servlet.ModelAndView; </span><span class="cx"> import \
org.springframework.web.servlet.mvc.SimpleFormController; </span><span \
class="lines">@@ -54,19 +59,22 @@ </span><span class="cx"> 	@Override
</span><span class="cx"> 	protected Map&lt;String, Object&gt; \
referenceData(HttpServletRequest request) throws Exception { </span><span class="cx"> \
Map&lt;String, Object&gt; map = new HashMap&lt;String, Object&gt;(); \
</span><ins>+		map.put(&quot;formName&quot;, \
request.getParameter(&quot;formName&quot;)); +		map.put(&quot;formPage&quot;, \
request.getParameter(&quot;formPage&quot;)); +		map.put(&quot;mrn&quot;, \
request.getParameter(&quot;mrn&quot;)); </ins><span class="cx"> 		if \
(Context.getAuthenticatedUser() != null) { </span><span class="cx"> 			return map;
</span><span class="cx"> 		}
</span><span class="cx"> 		
</span><span class="cx"> 		String username = \
request.getParameter(&quot;username&quot;); </span><span class="cx"> 		if (username \
== null) { </span><del>-			map.put(&quot;invalidUser&quot;, &quot;true&quot;);
</del><ins>+			map.put(&quot;missingUser&quot;, &quot;true&quot;);
</ins><span class="cx"> 			return map;
</span><span class="cx"> 		}
</span><span class="cx"> 		
</span><span class="cx"> 		String password = \
request.getParameter(&quot;password&quot;); </span><span class="cx"> 		if (password \
== null) { </span><del>-			map.put(&quot;invalidPassword&quot;, &quot;true&quot;);
</del><ins>+			map.put(&quot;missingPassword&quot;, &quot;true&quot;);
</ins><span class="cx"> 			return map;
</span><span class="cx"> 		}
</span><span class="cx"> 		
</span><span class="lines">@@ -74,51 +82,63 @@
</span><span class="cx"> 			Context.authenticate(username, password);
</span><span class="cx"> 		} catch (ContextAuthenticationException e) {
</span><span class="cx"> 			// username/password not valid
</span><del>-			map.put(&quot;invalidPassword&quot;, &quot;true&quot;);
</del><ins>+			map.put(&quot;failedAuthentication&quot;, &quot;true&quot;);
</ins><span class="cx"> 			return map;
</span><span class="cx"> 		}
</span><span class="cx"> 		
</span><del>-		String formName = request.getParameter(&quot;formName&quot;);
</del><ins>+		return map;
+	}
+
+	/**
+     * @see org.springframework.web.servlet.mvc.SimpleFormController#onSubmit(javax.servlet.http.HttpServletRequest, \
javax.servlet.http.HttpServletResponse, java.lang.Object, \
org.springframework.validation.BindException) +     */
+    @Override
+    protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse \
response, Object command, +                                    BindException errors) \
throws Exception { +    	Map&lt;String, Object&gt; map = new HashMap&lt;String, \
Object&gt;(); +    	String view = getFormView();
+    	String formName = request.getParameter(&quot;formName&quot;);
+    	String formPage = request.getParameter(&quot;formPage&quot;);
+    	String mrn = request.getParameter(&quot;mrn&quot;);
+    	map.put(&quot;formName&quot;, formName);
+		map.put(&quot;formPage&quot;, formPage);
+		map.put(&quot;mrn&quot;, mrn);
+		
</ins><span class="cx"> 		if (formName == null) {
</span><span class="cx"> 			map.put(&quot;missingForm&quot;, &quot;true&quot;);
</span><del>-			return map;
</del><ins>+			return new ModelAndView(view, map);
</ins><span class="cx"> 		}
</span><span class="cx"> 		
</span><span class="cx"> 		Form form = Context.getFormService().getForm(formName);
</span><span class="cx"> 		if (form == null) {
</span><span class="cx"> 			map.put(&quot;invalidForm&quot;, &quot;true&quot;);
</span><del>-			return map;
</del><ins>+			return new ModelAndView(view, map);
</ins><span class="cx"> 		}
</span><span class="cx"> 		
</span><del>-		String formPage = request.getParameter(&quot;formPage&quot;);
</del><span class="cx"> 		if (formPage == null) {
</span><span class="cx"> 			map.put(&quot;missingFormPage&quot;, &quot;true&quot;);
</span><del>-			return map;
</del><ins>+			return new ModelAndView(view, map);
</ins><span class="cx"> 		}
</span><span class="cx"> 		
</span><del>-		String mrn = request.getParameter(&quot;mrn&quot;);
</del><span class="cx"> 		if (mrn == null) {
</span><span class="cx"> 			map.put(&quot;missingMRN&quot;, &quot;true&quot;);
</span><del>-			return map;
</del><ins>+			return new ModelAndView(view, map);
</ins><span class="cx"> 		}
</span><span class="cx"> 		
</span><span class="cx"> 		Patient patient = getPatientByMRN(mrn);
</span><span class="cx"> 		if (patient == null) {
</span><span class="cx"> 			map.put(&quot;invalidPatient&quot;, &quot;true&quot;);
</span><ins>+			return new ModelAndView(view, map);
</ins><span class="cx"> 		}
</span><span class="cx"> 		
</span><del>-		map.put(&quot;formName&quot;, formName);
-		map.put(&quot;formPage&quot;, formPage);
</del><ins>+		Encounter encounter = getRecentEncounter(patient);
+		if (encounter == null) {
+			map.put(&quot;missingEncounter&quot;, &quot;true&quot;);
+			return new ModelAndView(view, map);
+		}
</ins><span class="cx"> 		
</span><del>-		return map;
-	}
-
-	/**
-     * @see org.springframework.web.servlet.mvc.SimpleFormController#onSubmit(javax.servlet.http.HttpServletRequest, \
javax.servlet.http.HttpServletResponse, java.lang.Object, \
                org.springframework.validation.BindException)
-     */
-    @Override
-    protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse \
                response, Object command,
-                                    BindException errors) throws Exception {
</del><ins>+		
+    	
</ins><span class="cx"> 	    return super.onSubmit(request, response, command, \
errors); </span><span class="cx">     }
</span><span class="cx">     
</span><span class="lines">@@ -152,4 +172,37 @@
</span><span class="cx"> 	    
</span><span class="cx"> 	    return null;
</span><span class="cx">     }
</span><ins>+    
+    private Encounter getRecentEncounter(Patient patient) {
+    	// Get last encounter with last day
+		Calendar startCal = Calendar.getInstance();
+		startCal.set(GregorianCalendar.DAY_OF_MONTH, \
startCal.get(GregorianCalendar.DAY_OF_MONTH) - 3); +		Date startDate = \
startCal.getTime(); +		Date endDate = Calendar.getInstance().getTime();
+		List&lt;Encounter&gt; encounters = \
Context.getEncounterService().getEncounters(patient, null, startDate, endDate, null,  \
+			null, null, false); +		if (encounters == null || encounters.size() == 0) {
+			return null;
+		} else if (encounters.size() == 1) {
+			return encounters.get(0);
+		}
+		
+		// Do a check to find the latest encounters with observations with a scanned \
timestamp for the PSF. +		ATDService atdService = \
Context.getService(ATDService.class); +		for (int i = encounters.size() - 1; i &gt;= \
0; i--) { +			Encounter encounter = encounters.get(i);
+			List&lt;Statistics&gt; stats = \
atdService.getStatsByEncounterForm(encounter.getEncounterId(), &quot;PSF&quot;); \
+			if (stats == null || stats.size() == 0) { +				continue;
+			}
+			
+			for (Statistics stat : stats) {
+				if (stat.getScannedTimestamp() != null) {
+					return encounter;
+				}
+			}
+		}
+		
+		return null;
+    }
</ins><span class="cx"> }
</span></span></pre>
</div>
</div>

</body>
</html>

<p></p>

-- <br />
-- OpenMRS Subversion Commits: <a \
href="http://go.openmrs.org/svn">http://go.openmrs.org/svn</a><br /> Posting is not \
                allowed - please join dev@openmrs.org for discussion.<br />
Unsubscribe: svn+unsubscribe@openmrs.org<br />

<p></p>

To unsubscribe from this group and stop receiving emails from it, send an email to <a \
href="mailto:svn+unsubscribe@openmrs.org">svn+unsubscribe@openmrs.org</a>.<br />


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic