------------------------------------------------------------ revno: 10531 committer: Morten Olav Hansen <morte...@gmail.com> 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 <morte...@gmail.com> + */ +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 )" + } +}
_______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : dhis2-devs@lists.launchpad.net Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp