Show
Ignore:
Timestamp:
04/04/09 16:49:14 (3 years ago)
Author:
olger
Message:

Hibernate changes to the Team, Member and Role structure to prevent returning teammembers x roles. (enforce a distinct)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • his/tags/1.6.0/data/src/main/java/org/joiningtracks/his/data/model/Team.java

    r1171 r1269  
    2222import java.util.ArrayList; 
    2323import java.util.List; 
     24import java.util.Set; 
     25import java.util.HashSet; 
    2426 
    2527@SuppressWarnings({"JpaDataSourceORMInspection", "JpaModelErrorInspection"}) 
     
    3537    @JoinColumn(name = "team_id", referencedColumnName = "id", nullable = false) 
    3638    @Cascade(value=org.hibernate.annotations.CascadeType.DELETE_ORPHAN) 
    37     List<TeamMember> teamMembers = new ArrayList<TeamMember>(); 
     39    Set<TeamMember> teamMembers = new HashSet<TeamMember>(); 
    3840 
    3941    public Team() { 
     
    8183    } 
    8284 
    83     public List<TeamMember> getTeamMembers() { 
     85    public Set<TeamMember> getTeamMembers() { 
    8486        return teamMembers; 
    8587    } 
    8688 
    87     public void setTeamMembers(List<TeamMember> teamMembers) { 
     89    public void setTeamMembers(Set<TeamMember> teamMembers) { 
    8890        this.teamMembers = teamMembers; 
    8991    } 
  • his/tags/1.6.0/data/src/test/java/org/joiningtracks/his/data/dao/Database.java

    r1104 r1269  
    867867            long id, 
    868868            String groupName, 
    869             String groupType) { 
     869            String groupType, 
     870            Long teamId) { 
    870871 
    871872        JdbcInsertStatement stmt = new JdbcInsertStatementBuilder("patientgroup") 
     
    873874                .addParameter("group_name", groupName) 
    874875                .addParameter("group_type", groupType) 
    875                 .addParameter("version", 0) 
    876                 .build(); 
    877  
    878         jdbcTemplate.update(stmt.getSql(), stmt.getParameters()); 
    879     } 
    880  
    881     /** 
    882      * Insert a patientgroup 
    883      * 
    884      * @param id        the id of the new patientgroup_appointment 
    885      * @param patientGroupId the name of the patient group 
    886      * @param appointment_identifier the identifier of the appointment 
    887      */ 
     876                .addParameter("team_id", teamId) 
     877                .addParameter("version", 0) 
     878                .build(); 
     879 
     880        jdbcTemplate.update(stmt.getSql(), stmt.getParameters()); 
     881    } 
     882 
     883    public void insertPatientGroup( 
     884            long id, 
     885            String groupName, 
     886            String groupType) { 
     887        JdbcInsertStatement stmt = new JdbcInsertStatementBuilder("patientgroup") 
     888                .addParameter("id", id) 
     889                .addParameter("group_name", groupName) 
     890                .addParameter("group_type", groupType) 
     891                .addParameter("version", 0) 
     892                .build(); 
     893 
     894        jdbcTemplate.update(stmt.getSql(), stmt.getParameters()); 
     895    } 
     896 
     897    public void insertPatientGroupPathwayParticipation( 
     898            long id, 
     899            long patientGroupId, 
     900            long pathwayParticipationId) { 
     901 
     902        JdbcInsertStatement stmt = new JdbcInsertStatementBuilder("patientgroup_pathway_participation") 
     903                .addParameter("id", id) 
     904                .addParameter("pathway_participation_id", pathwayParticipationId) 
     905                .addParameter("patientgroup_id", patientGroupId) 
     906                .addParameter("version", 0) 
     907                .build(); 
     908 
     909        jdbcTemplate.update(stmt.getSql(), stmt.getParameters()); 
     910    } 
     911 
    888912    public void insertPatientGroupPathwayParticipation( 
    889913            long id, 
     
    10001024    } 
    10011025 
     1026    public void insertTeamMemberRole( 
     1027            long id, 
     1028            String description) { 
     1029 
     1030        JdbcInsertStatement stmt = new JdbcInsertStatementBuilder("team_member_roles") 
     1031                .addParameter("id", id) 
     1032                .addParameter("role_description", description) 
     1033                .addParameter("version", 0) 
     1034                .build(); 
     1035 
     1036        jdbcTemplate.update(stmt.getSql(), stmt.getParameters()); 
     1037    } 
     1038 
     1039    public void insertTeam( 
     1040            long id, 
     1041            String name) { 
     1042 
     1043        JdbcInsertStatement stmt = new JdbcInsertStatementBuilder("team") 
     1044                .addParameter("id", id) 
     1045                .addParameter("team_name", name) 
     1046                .addParameter("version", 0) 
     1047                .build(); 
     1048 
     1049        jdbcTemplate.update(stmt.getSql(), stmt.getParameters()); 
     1050    } 
     1051 
     1052    public void insertTeamMember( 
     1053            long id, 
     1054            String ldapId, 
     1055            long teamMemberRoleId, 
     1056            long teamId) { 
     1057 
     1058 
     1059        JdbcInsertStatement stmt = new JdbcInsertStatementBuilder("team_members") 
     1060                .addParameter("id", id) 
     1061                .addParameter("version", 0) 
     1062                .addParameter("team_id", teamId) 
     1063                .addParameter("ldap_id", ldapId) 
     1064                .addParameter("role_id", teamMemberRoleId) 
     1065                .build(); 
     1066 
     1067        jdbcTemplate.update(stmt.getSql(), stmt.getParameters()); 
     1068    } 
    10021069    //========================================== Getters/Setters ======================================================= 
    10031070 
  • his/tags/1.6.0/data/src/test/java/org/joiningtracks/his/data/dao/jpa/JpaPatientGroupDaoTest.java

    r1203 r1269  
    1313import org.joiningtracks.his.data.model.Patient; 
    1414import org.joiningtracks.his.data.model.PatientGroup; 
     15import org.joiningtracks.his.data.model.Team; 
    1516 
    1617import java.util.Collection; 
     
    362363    } 
    363364 
     365    public void testPatientGroupWithTeam() { 
     366        db.insertTeamMemberRole(1L, "rol 1"); 
     367        db.insertTeamMemberRole(2L, "rol 2"); 
     368        db.insertTeam(1L, "team  1"); 
     369        db.insertTeamMember(1L, "LDAPID 1", 1L, 1L); 
     370        db.insertTeamMember(2L, "LDAPID 2", 2L, 1L); 
     371 
     372        OccurredAppointment occurredAppointment = new OccurredAppointment("identifier", "description", new DateTime(), new DateTime()); 
     373        db.insertAppointment(1L, occurredAppointment.getIdentifier(), occurredAppointment.getDescription(), occurredAppointment.getStartDate(), occurredAppointment.getEndDate()); 
     374 
     375        db.insertPatientGroup(1L, "groupname", "grouptype 1", 1L); 
     376        db.insertPatientGroupAppointment(1L, 1L, "identifier"); 
     377 
     378        db.insertProcessDefinition(1L, "", ""); 
     379        db.insertProcessInstance(1L, new Date(), 1L); 
     380        db.insertProcessInstance(2L, new Date(), 1L); 
     381        db.insertGeneralPractitioner(1L, "", "", "", "", "", "", "", "", 1L); 
     382        db.insertPatient(1L, 1L, "firstname", "lastname", "initials", new Date(), Patient.Gender.MALE, "+31211111111", "+31612345678", "email@host.com", "Teststreet", "80", "1234 XP", "Amsterdam", COUNTRY_ID_NETHERLANDS, null); 
     383        db.insertPatient(2L, 1L, "firstname", "lastname", "initials", new Date(), Patient.Gender.MALE, "+31211111111", "+31612345678", "email@host.com", "Teststreet", "80", "1234 XP", "Amsterdam", COUNTRY_ID_NETHERLANDS, null); 
     384        db.insertPathwayParticipation(1L, 1L, 1L, 1L); 
     385        db.insertPathwayParticipation(2L, 2L, 2L, 1L); 
     386 
     387        db.insertPatientGroupPathwayParticipation(1L, 1L, 1L); 
     388        db.insertPatientGroupPathwayParticipation(2L, 1L, 2L); 
     389 
     390        PatientGroup patientGroup = dao.getById(1L); 
     391        assertNotNull(patientGroup); 
     392        Team team = patientGroup.getTeam(); 
     393        assertNotNull(team); 
     394        assertEquals("Teammembers should be 2", 2, team.getTeamMembers().size()); 
     395 
     396    } 
    364397} 
  • his/tags/1.6.0/data/src/test/java/org/joiningtracks/his/data/dao/jpa/JpaTeamDaoTest.java

    r1197 r1269  
    3939        assertNull(dao.getById(id)); 
    4040    } 
     41 
     42    public void testFetchTeamMembersAndRoles() throws Exception { 
     43 
     44        db.insertTeamMemberRole(1L, "rol 1"); 
     45        db.insertTeamMemberRole(2L, "rol 2"); 
     46        db.insertTeam(1L, "team  1"); 
     47        db.insertTeamMember(1L, "LDAPID 1", 1L, 1L); 
     48        db.insertTeamMember(2L, "LDAPID 2", 2L, 1L); 
     49 
     50        Team team = dao.getById(1L); 
     51        assertNotNull(team); 
     52        assertEquals("Expected 2 teammembers", 2, team.getTeamMembers().size()); 
     53 
     54        team = dao.getById(1L); 
     55        assertNotNull(team); 
     56        assertEquals("Expected 2 teammembers", 2, team.getTeamMembers().size()); 
     57 
     58    } 
     59 
    4160}