~dhis2-devs-core/dhis2/dhis2-patient-tz

« back to all changes in this revision

Viewing changes to local/tz/dhis-web-maintenance-patient-tz/src/main/java/org/hisp/dhis/patient/action/relationship/SaveRelationshipAction.java

  • Committer: John Francis Mukulu
  • Date: 2011-08-09 06:36:18 UTC
  • mfrom: (4244.1.21 dhis2)
  • Revision ID: john.f.mukulu@gmail.com-20110809063618-wad1pcc9fd1mnc6k
[merge]

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright (c) 2004-2009, University of Oslo
3
 
 * All rights reserved.
4
 
 *
5
 
 * Redistribution and use in source and binary forms, with or without
6
 
 * modification, are permitted provided that the following conditions are met:
7
 
 * * Redistributions of source code must retain the above copyright notice, this
8
 
 *   list of conditions and the following disclaimer.
9
 
 * * Redistributions in binary form must reproduce the above copyright notice,
10
 
 *   this list of conditions and the following disclaimer in the documentation
11
 
 *   and/or other materials provided with the distribution.
12
 
 * * Neither the name of the HISP project nor the names of its contributors may
13
 
 *   be used to endorse or promote products derived from this software without
14
 
 *   specific prior written permission.
15
 
 *
16
 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17
 
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
 
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19
 
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
20
 
 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21
 
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
 
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
23
 
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
 
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25
 
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
 
 */
27
 
package org.hisp.dhis.patient.action.relationship;
28
 
 
29
 
import org.hisp.dhis.i18n.I18n;
30
 
import org.hisp.dhis.patient.Patient;
31
 
import org.hisp.dhis.patient.PatientService;
32
 
import org.hisp.dhis.patient.state.SelectedStateManager;
33
 
import org.hisp.dhis.relationship.Relationship;
34
 
import org.hisp.dhis.relationship.RelationshipService;
35
 
import org.hisp.dhis.relationship.RelationshipType;
36
 
import org.hisp.dhis.relationship.RelationshipTypeService;
37
 
 
38
 
import com.opensymphony.xwork2.Action;
39
 
 
40
 
/**
41
 
 * @author Abyot Asalefew Gizaw
42
 
 * @version $Id$
43
 
 */
44
 
public class SaveRelationshipAction
45
 
    implements Action
46
 
{
47
 
    // -------------------------------------------------------------------------
48
 
    // Dependencies
49
 
    // -------------------------------------------------------------------------
50
 
 
51
 
    private PatientService patientService;
52
 
 
53
 
    public void setPatientService( PatientService patientService )
54
 
    {
55
 
        this.patientService = patientService;
56
 
    }
57
 
 
58
 
    private SelectedStateManager selectedStateManager;
59
 
 
60
 
    public void setSelectedStateManager( SelectedStateManager selectedStateManager )
61
 
    {
62
 
        this.selectedStateManager = selectedStateManager;
63
 
    }
64
 
 
65
 
    private RelationshipTypeService relationshipTypeService;
66
 
 
67
 
    public void setRelationshipTypeService( RelationshipTypeService relationshipTypeService )
68
 
    {
69
 
        this.relationshipTypeService = relationshipTypeService;
70
 
    }
71
 
 
72
 
    private RelationshipService relationshipService;
73
 
 
74
 
    public void setRelationshipService( RelationshipService relationshipService )
75
 
    {
76
 
        this.relationshipService = relationshipService;
77
 
    }
78
 
 
79
 
    // -------------------------------------------------------------------------
80
 
    // Input/Output
81
 
    // -------------------------------------------------------------------------
82
 
 
83
 
    private Integer patientId;
84
 
    
85
 
    public void setPatientId( Integer patientId )
86
 
    {
87
 
        this.patientId = patientId;
88
 
    }
89
 
 
90
 
    private Integer partnerId;
91
 
 
92
 
    public void setPartnerId( Integer partnerId )
93
 
    {
94
 
        this.partnerId = partnerId;
95
 
    }
96
 
    
97
 
    private Integer relationshipTypeId;
98
 
 
99
 
    public void setRelationshipTypeId( Integer relationshipTypeId )
100
 
    {
101
 
        this.relationshipTypeId = relationshipTypeId;
102
 
    }
103
 
 
104
 
    private String relationshipName;
105
 
 
106
 
    public void setRelationshipName( String relationshipName )
107
 
    {
108
 
        this.relationshipName = relationshipName;
109
 
    }
110
 
    
111
 
    private String message;
112
 
 
113
 
    public String getMessage()
114
 
    {
115
 
        return message;
116
 
    }
117
 
 
118
 
    private I18n i18n;
119
 
 
120
 
    public void setI18n( I18n i18n )
121
 
    {
122
 
        this.i18n = i18n;
123
 
    }
124
 
 
125
 
    // -------------------------------------------------------------------------
126
 
    // Action implementation
127
 
    // -------------------------------------------------------------------------
128
 
 
129
 
    public String execute()
130
 
        throws Exception
131
 
    {
132
 
        Patient patient = patientService.getPatient( patientId );
133
 
 
134
 
        Patient partner = patientService.getPatient( partnerId );
135
 
 
136
 
        RelationshipType relationshipType = relationshipTypeService.getRelationshipType( relationshipTypeId );
137
 
 
138
 
        Relationship relationship = relationshipService.getRelationship( patient, partner, relationshipType );
139
 
 
140
 
        if ( relationship != null )
141
 
        {
142
 
            message = i18n.getString( "the_relationship_already_exists" );
143
 
 
144
 
            return INPUT;
145
 
        }
146
 
 
147
 
        // ---------------------------------------------------------------------
148
 
        // Validation success
149
 
        // ---------------------------------------------------------------------
150
 
 
151
 
        relationship = new Relationship();
152
 
 
153
 
        if ( relationshipType.getaIsToB().equalsIgnoreCase( relationshipName ) )
154
 
        {
155
 
            relationship.setPatientA( partner );
156
 
            relationship.setPatientB( patient );
157
 
 
158
 
            relationship.setRelationshipType( relationshipType );
159
 
            relationshipService.saveRelationship( relationship );
160
 
 
161
 
        }
162
 
        else if ( relationshipType.getbIsToA().equalsIgnoreCase( relationshipName ) )
163
 
        {
164
 
            relationship.setPatientA( patient );
165
 
            relationship.setPatientB( partner );
166
 
 
167
 
            relationship.setRelationshipType( relationshipType );
168
 
            relationshipService.saveRelationship( relationship );
169
 
        }
170
 
 
171
 
        return SUCCESS;
172
 
    }
173
 
}