From 2cc16de79d34c1098c6cf1d9fc6ff0469f757701 Mon Sep 17 00:00:00 2001 From: dilankavishka Date: Sun, 19 Jan 2025 10:22:17 +0530 Subject: [PATCH 1/2] update order set with annotations --- api/src/main/java/org/openmrs/OrderSet.java | 28 ++++++- api/src/main/resources/hibernate.cfg.xml | 1 - .../openmrs/api/db/hibernate/OrderSet.hbm.xml | 79 ------------------- .../org/openmrs/api/OrderServiceTest.java | 1 + 4 files changed, 27 insertions(+), 82 deletions(-) delete mode 100644 api/src/main/resources/org/openmrs/api/db/hibernate/OrderSet.hbm.xml diff --git a/api/src/main/java/org/openmrs/OrderSet.java b/api/src/main/java/org/openmrs/OrderSet.java index b8d904aff6e8..adf00aa76ba0 100644 --- a/api/src/main/java/org/openmrs/OrderSet.java +++ b/api/src/main/java/org/openmrs/OrderSet.java @@ -12,15 +12,21 @@ import java.util.ArrayList; import java.util.List; +import org.hibernate.annotations.GenericGenerator; +import org.hibernate.annotations.Parameter; import org.hibernate.envers.Audited; import org.openmrs.api.APIException; +import javax.persistence.*; + /** * Represents the grouping of orders into a set, * so as to give decision support for the doctors * * @since 1.12 */ +@Entity +@Table(name = "order_set") @Audited public class OrderSet extends BaseCustomizableMetadata { @@ -36,12 +42,30 @@ public enum Operator { ALL, ONE, ANY } + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "order_set_id_seq") + @GenericGenerator( + name = "order_set_id_seq", + strategy = "native", + parameters = @Parameter(name = "sequence", value = "order_set_order_set_id_seq") + ) + @Column(name = "order_set_id", nullable = false) private Integer orderSetId; - + + @Column(name = "operator", nullable = false) + @Enumerated(EnumType.STRING) private Operator operator; - + + @OneToMany( + mappedBy = "orderSet", + cascade = CascadeType.ALL, + orphanRemoval = true + ) + @OrderColumn(name = "sequence_number") private List orderSetMembers; + @ManyToOne + @JoinColumn(name = "category") private Concept category; /** diff --git a/api/src/main/resources/hibernate.cfg.xml b/api/src/main/resources/hibernate.cfg.xml index 2bd3c6ad8dc1..3ecd25083298 100644 --- a/api/src/main/resources/hibernate.cfg.xml +++ b/api/src/main/resources/hibernate.cfg.xml @@ -66,7 +66,6 @@ - diff --git a/api/src/main/resources/org/openmrs/api/db/hibernate/OrderSet.hbm.xml b/api/src/main/resources/org/openmrs/api/db/hibernate/OrderSet.hbm.xml deleted file mode 100644 index 8e7e228dd9e7..000000000000 --- a/api/src/main/resources/org/openmrs/api/db/hibernate/OrderSet.hbm.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - order_set_order_set_id_seq - - - - - - - - org.openmrs.OrderSet$Operator - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/api/src/test/java/org/openmrs/api/OrderServiceTest.java b/api/src/test/java/org/openmrs/api/OrderServiceTest.java index 6d553c038256..aaa6fd7a8591 100644 --- a/api/src/test/java/org/openmrs/api/OrderServiceTest.java +++ b/api/src/test/java/org/openmrs/api/OrderServiceTest.java @@ -2740,6 +2740,7 @@ public void saveOrder_shouldFailIfTheJavaTypeOfThePreviousOrderDoesNotMatch() th .addAnnotatedClass(ProgramAttributeType.class) .addAnnotatedClass(HL7InError.class) .addAnnotatedClass(OrderType.class) + .addAnnotatedClass(OrderSet.class) .getMetadataBuilder().build(); From 3c3906900f199ed03a7003b6eb275844c57a020a Mon Sep 17 00:00:00 2001 From: dilankavishka Date: Sun, 19 Jan 2025 12:56:13 +0530 Subject: [PATCH 2/2] use individual imports instead of wild card imports --- api/src/main/java/org/openmrs/OrderSet.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/api/src/main/java/org/openmrs/OrderSet.java b/api/src/main/java/org/openmrs/OrderSet.java index adf00aa76ba0..ab55cb58dad5 100644 --- a/api/src/main/java/org/openmrs/OrderSet.java +++ b/api/src/main/java/org/openmrs/OrderSet.java @@ -17,7 +17,19 @@ import org.hibernate.envers.Audited; import org.openmrs.api.APIException; -import javax.persistence.*; +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.OrderColumn; +import javax.persistence.Table; /** * Represents the grouping of orders into a set,