← Back to team overview

dhis2-devs team mailing list archive

[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 )"
+    }
+}