Skip to content

Commit 43027d3

Browse files
pidsonnManojLL
andauthored
TRUNK-5924: Migrate PatientIdentifier to JPA annotations (#5383)
* TRUNK-5924: Migrate PatientIdentifier to JPA annotations * TRUNK-5924: Remove redundant mapping for PatientIdentifier and fix build failure * Update api/src/main/java/org/openmrs/PatientIdentifier.java Co-authored-by: Manoj Lakshan <[email protected]> * Update api/src/main/resources/hibernate.cfg.xml Co-authored-by: Manoj Lakshan <[email protected]> * Remove unused import in PatientIdentifier.java * TRUNK-5924: Set PatientIdentifier.preferred column as non-nullable * TRUNK-5924: Align Liquibase schema with nullable constraints --------- Co-authored-by: Manoj Lakshan <[email protected]>
1 parent 921ef2e commit 43027d3

File tree

4 files changed

+27
-47
lines changed

4 files changed

+27
-47
lines changed

api/src/main/java/org/openmrs/PatientIdentifier.java

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,14 @@
1414
import java.lang.reflect.Method;
1515
import java.util.Comparator;
1616

17+
import jakarta.persistence.Table;
18+
import jakarta.persistence.Column;
19+
import jakarta.persistence.Entity;
20+
import jakarta.persistence.GeneratedValue;
21+
import jakarta.persistence.GenerationType;
22+
import jakarta.persistence.Id;
23+
import jakarta.persistence.JoinColumn;
24+
import jakarta.persistence.ManyToOne;
1725
import org.codehaus.jackson.annotate.JsonIgnore;
1826
import org.hibernate.envers.Audited;
1927
import org.hibernate.search.engine.backend.types.Sortable;
@@ -43,6 +51,8 @@
4351
*/
4452
@Indexed
4553
@Audited
54+
@Entity
55+
@Table(name = "patient_identifier")
4656
public class PatientIdentifier extends BaseChangeableOpenmrsData implements java.io.Serializable, Cloneable, Comparable<PatientIdentifier> {
4757

4858
public static final long serialVersionUID = 1123121L;
@@ -55,29 +65,42 @@ public class PatientIdentifier extends BaseChangeableOpenmrsData implements java
5565
* @since 1.5
5666
*/
5767
@DocumentId
68+
@Id
69+
@GeneratedValue(strategy = GenerationType.IDENTITY)
70+
@Column(name = "patient_identifier_id", nullable = false)
5871
private Integer patientIdentifierId;
5972

73+
@ManyToOne
74+
@JoinColumn(name = "patient_id", nullable = false)
6075
@IndexedEmbedded(includeEmbeddedObjectId = true)
6176
@AssociationInverseSide(inversePath = @ObjectPath({
6277
@PropertyValue(propertyName = "identifiers")
6378
}))
6479
private Patient patient;
65-
80+
6681
@FullTextField(name = "identifierPhrase", analyzer = SearchAnalysis.PHRASE_ANALYZER)
6782
@FullTextField(name = "identifierExact", analyzer = SearchAnalysis.EXACT_ANALYZER)
6883
@FullTextField(name = "identifierStart", analyzer = SearchAnalysis.START_ANALYZER, searchAnalyzer = SearchAnalysis.EXACT_ANALYZER)
6984
@FullTextField(name = "identifierAnywhere", analyzer = SearchAnalysis.ANYWHERE_ANALYZER, searchAnalyzer = SearchAnalysis.EXACT_ANALYZER)
7085
@KeywordField(name = "identifierExact_sort", sortable = Sortable.YES)
86+
@Column(name = "identifier", length = 50, nullable = false)
7187
private String identifier;
7288

89+
@ManyToOne
90+
@JoinColumn(name = "identifier_type", nullable = false)
7391
@IndexedEmbedded(includeEmbeddedObjectId = true)
7492
@IndexingDependency(reindexOnUpdate = ReindexOnUpdate.SHALLOW)
7593
private PatientIdentifierType identifierType;
76-
94+
95+
@ManyToOne
96+
@JoinColumn(name = "location_id")
7797
private Location location;
7898

99+
@ManyToOne
100+
@JoinColumn(name = "patient_program_id")
79101
private PatientProgram patientProgram;
80102

103+
@Column(name = "preferred", nullable = false)
81104
@GenericField
82105
private Boolean preferred = false;
83106

api/src/main/resources/hibernate.cfg.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
<mapping resource="org/openmrs/api/db/hibernate/PersonName.hbm.xml" />
4040
<mapping resource="org/openmrs/api/db/hibernate/Role.hbm.xml" />
4141
<mapping resource="org/openmrs/api/db/hibernate/Patient.hbm.xml" />
42-
<mapping resource="org/openmrs/api/db/hibernate/PatientIdentifier.hbm.xml" />
4342
<mapping resource="org/openmrs/api/db/hibernate/PatientProgramAttribute.hbm.xml" />
4443
<mapping resource="org/openmrs/api/db/hibernate/RelationshipType.hbm.xml" />
4544
<mapping resource="org/openmrs/api/db/hibernate/Order.hbm.xml" />

api/src/main/resources/org/openmrs/api/db/hibernate/PatientIdentifier.hbm.xml

Lines changed: 0 additions & 44 deletions
This file was deleted.

api/src/test/java/org/openmrs/api/OrderServiceTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
import org.openmrs.OrderSet;
6363
import org.openmrs.OrderType;
6464
import org.openmrs.Patient;
65+
import org.openmrs.PatientIdentifier;
6566
import org.openmrs.PatientIdentifierType;
6667
import org.openmrs.PatientProgram;
6768
import org.openmrs.PatientState;
@@ -2855,6 +2856,7 @@ public void saveOrder_shouldFailIfTheJavaTypeOfThePreviousOrderDoesNotMatch() th
28552856
.addAnnotatedClass(DrugReferenceMap.class)
28562857
.addAnnotatedClass(AlertRecipient.class)
28572858
.addAnnotatedClass(PatientIdentifierType.class)
2859+
.addAnnotatedClass(PatientIdentifier.class)
28582860
.addAnnotatedClass(ProgramAttributeType.class)
28592861
.addAnnotatedClass(HL7InError.class)
28602862
.addAnnotatedClass(OrderType.class)

0 commit comments

Comments
 (0)