dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #21993
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 10531: added new action for getting all info for a certain psiid (IDs, dates, comments, data values, etc)
------------------------------------------------------------
revno: 10531
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Sat 2013-04-13 12:13:24 +0700
message:
added new action for getting all info for a certain psiid (IDs, dates, comments, data values, etc)
added:
dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/GetProgramStageInstanceAction.java
dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonProgramStageInstance.vm
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/GetProgramStageInstanceAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/GetProgramStageInstanceAction.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseentry/GetProgramStageInstanceAction.java 2013-04-13 05:13:24 +0000
@@ -0,0 +1,167 @@
+package org.hisp.dhis.caseentry.action.caseentry;
+
+/*
+ * Copyright (c) 2004-2013, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * * Neither the name of the HISP project nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import com.opensymphony.xwork2.Action;
+import org.hisp.dhis.patientdatavalue.PatientDataValue;
+import org.hisp.dhis.patientdatavalue.PatientDataValueService;
+import org.hisp.dhis.program.ProgramStageInstance;
+import org.hisp.dhis.program.ProgramStageInstanceService;
+import org.hisp.dhis.system.util.ValidationUtils;
+import org.hisp.dhis.user.CurrentUserService;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+public class GetProgramStageInstanceAction implements Action
+{
+
+ // -------------------------------------------------------------------------
+ // Dependencies
+ // -------------------------------------------------------------------------
+
+ private ProgramStageInstanceService programStageInstanceService;
+
+ public void setProgramStageInstanceService( ProgramStageInstanceService programStageInstanceService )
+ {
+ this.programStageInstanceService = programStageInstanceService;
+ }
+
+ private CurrentUserService currentUserService;
+
+ public void setCurrentUserService( CurrentUserService currentUserService )
+ {
+ this.currentUserService = currentUserService;
+ }
+
+ private PatientDataValueService patientDataValueService;
+
+ public void setPatientDataValueService( PatientDataValueService patientDataValueService )
+ {
+ this.patientDataValueService = patientDataValueService;
+ }
+
+ // -------------------------------------------------------------------------
+ // Input & Output
+ // -------------------------------------------------------------------------
+
+ private Integer programStageInstanceId;
+
+ public void setProgramStageInstanceId( Integer programStageInstanceId )
+ {
+ this.programStageInstanceId = programStageInstanceId;
+ }
+
+ private ProgramStageInstance programStageInstance;
+
+ public ProgramStageInstance getProgramStageInstance()
+ {
+ return programStageInstance;
+ }
+
+ private String latitude;
+
+ public String getLatitude()
+ {
+ return latitude;
+ }
+
+ private String longitude;
+
+ public String getLongitude()
+ {
+ return longitude;
+ }
+
+ private String currentUsername;
+
+ public String getCurrentUsername()
+ {
+ return currentUsername;
+ }
+
+ private Map<String, PatientDataValue> dataValueMap = new HashMap<String, PatientDataValue>();
+
+ public Map<String, PatientDataValue> getDataValueMap()
+ {
+ return dataValueMap;
+ }
+
+ // -------------------------------------------------------------------------
+ // Action Implementation
+ // -------------------------------------------------------------------------
+
+ @Override
+ public String execute() throws Exception
+ {
+ if ( programStageInstanceId == null )
+ {
+ return INPUT;
+ }
+
+ programStageInstance = programStageInstanceService.getProgramStageInstance( programStageInstanceId );
+
+ populateCurrentUsername();
+ populateCoordinates();
+ populateDataValueMap();
+
+ return SUCCESS;
+ }
+
+ private void populateCurrentUsername()
+ {
+ currentUsername = currentUserService.getCurrentUsername();
+ }
+
+ private void populateCoordinates()
+ {
+ if ( programStageInstance.getProgramStage().getCaptureCoordinates() )
+ {
+ longitude = ValidationUtils.getLongitude( programStageInstance.getCoordinates() );
+ latitude = ValidationUtils.getLatitude( programStageInstance.getCoordinates() );
+ }
+ }
+
+ private void populateDataValueMap()
+ {
+ Collection<PatientDataValue> patientDataValues = patientDataValueService
+ .getPatientDataValues( programStageInstance );
+
+ dataValueMap = new HashMap<String, PatientDataValue>( patientDataValues.size() );
+
+ for ( PatientDataValue patientDataValue : patientDataValues )
+ {
+ dataValueMap.put( patientDataValue.getDataElement().getUid(), patientDataValue );
+ }
+ }
+}
+
=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonProgramStageInstance.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonProgramStageInstance.vm 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/jsonProgramStageInstance.vm 2013-04-13 05:13:24 +0000
@@ -0,0 +1,53 @@
+{
+ "currentUser": "$currentUsername",
+ "id": "$!programStageInstance.id",
+ "dueDate": "$format.formatDate( $!programStageInstance.dueDate )",
+ "executionDate": "$format.formatDate( $!programStageInstance.executionDate )",
+ "status": "$!programStageInstance.getEventStatus()",
+ "completed": "$!programStageInstance.completed",
+ #if($programStageInstance.programStage.captureCoordinates)
+ "latitude": "$!latitude",
+ "longitude": "$!longitude",
+ #end
+
+ "comments": [
+ #set( $size = $programStageInstance.patientComments.size() )
+ #foreach( $comment in $programStageInstance.patientComments )
+{"createdDate": "$format.formatDateTime($comment.createdDate)", "creator": "$comment.creator", "text": "$!comment.commentText"}#if( $velocityCount < $size ),
+ #end
+ #end
+
+ ],
+
+ "dataValues": {
+ #set( $size = $dataValueMap.keySet().size() )
+ #foreach( $key in $dataValueMap.keySet() )
+ #set( $value = $dataValueMap.get($key) )
+"$key": {"value": "$!value.value", "timestamp": "$!value.timestamp", "providedElsewhere": "$!value.providedElsewhere", "storedBy": "$!value.storedBy"}#if( $velocityCount < $size ),
+ #end
+ #end
+
+ },
+
+ "program": {
+ "id": "$!programStageInstance.programInstance.program.id",
+ "uid": "$!programStageInstance.programInstance.program.uid",
+ "blockEntryForm": "$!programStageInstance.programInstance.program.blockEntryForm",
+ "remindCompleted": "$!programStageInstance.programInstance.program.remindCompleted"
+ },
+
+ "programStage": {
+ "id": "$!programStageInstance.programStage.id",
+ "uid": "$!programStageInstance.programStage.uid",
+ "name": "$!programStageInstance.programStage.displayName",
+ "irregular": "$!programStageInstance.programStage.irregular",
+ "displayGenerateEventBox": "$!programStageInstance.programStage.displayGenerateEventBox",
+ "validCompleteOnly": "$!programStageInstance.programStage.validCompleteOnly",
+ "captureCoordinates": "$!programStageInstance.programStage.captureCoordinates"
+ },
+
+ "programInstance": {
+ "id": "$!programStageInstance.programInstance.id",
+ "dateOfIncident": "$format.formatDate( $!programStageInstance.programInstance.dateOfIncident )"
+ }
+}