Skip to content

Commit 069b8eb

Browse files
authored
Merge branch 'master' into TRUNK-5861
2 parents ff8d218 + 162fb63 commit 069b8eb

File tree

88 files changed

+13557
-9887
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+13557
-9887
lines changed

.github/workflows/scorecard.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
persist-credentials: false
3333

3434
- name: "Run analysis"
35-
uses: ossf/[email protected].1
35+
uses: ossf/[email protected].2
3636
with:
3737
results_file: results.sarif
3838
results_format: sarif

Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ COPY liquibase/pom.xml liquibase/
3535
COPY api/pom.xml api/
3636
COPY web/pom.xml web/
3737
COPY webapp/pom.xml webapp/
38+
COPY test-module/pom.xml test-module/
39+
COPY test-module/api/pom.xml test-module/api/
40+
COPY test-module/omod/pom.xml test-module/omod/
3841

3942
# Install dependencies
4043
RUN mvn $MVN_SETTINGS -B dependency:go-offline -P !default-tools.jar,!mac-tools.jar

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

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,19 @@
99
*/
1010
package org.openmrs;
1111

12+
import org.hibernate.annotations.BatchSize;
13+
import org.hibernate.annotations.GenericGenerator;
14+
import org.hibernate.annotations.Parameter;
1215
import org.hibernate.envers.Audited;
1316

17+
import javax.persistence.Column;
18+
import javax.persistence.Entity;
19+
import javax.persistence.GeneratedValue;
20+
import javax.persistence.GenerationType;
21+
import javax.persistence.Id;
22+
import javax.persistence.JoinColumn;
23+
import javax.persistence.ManyToOne;
24+
import javax.persistence.Table;
1425
import java.util.Date;
1526

1627
/**
@@ -20,34 +31,55 @@
2031
*
2132
* @see Concept#getAnswers()
2233
*/
34+
@Entity
35+
@Table(name = "concept_answer")
36+
@BatchSize(size = 25)
2337
@Audited
2438
public class ConceptAnswer extends BaseOpenmrsObject implements Auditable, java.io.Serializable, Comparable<ConceptAnswer> {
2539

2640
public static final long serialVersionUID = 3744L;
2741

2842
// Fields
43+
@Id
44+
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "concept_answer_id_seq")
45+
@GenericGenerator(
46+
name = "concept_answer_id_seq",
47+
strategy = "native",
48+
parameters = @Parameter(name = "sequence", value = "concept_answer_concept_answer_id_seq")
49+
)
50+
@Column(name = "concept_answer_id")
2951
private Integer conceptAnswerId;
3052

3153
/**
3254
* The question concept that this object is answering
3355
*/
56+
@ManyToOne
57+
@JoinColumn(name = "concept_id", nullable = false)
3458
private Concept concept;
3559

3660
/**
3761
* The answer to the question
3862
*/
63+
@ManyToOne
64+
@JoinColumn(name = "answer_concept", nullable = false)
3965
private Concept answerConcept;
4066

4167
/**
4268
* The {@link Drug} answer to the question. This can be null if this does not represent a drug
4369
* type of answer
4470
*/
71+
@ManyToOne
72+
@JoinColumn(name = "answer_drug")
4573
private Drug answerDrug;
4674

75+
@ManyToOne
76+
@JoinColumn(name = "creator", nullable = false)
4777
private User creator;
4878

79+
@Column(name = "date_created", nullable = false)
4980
private Date dateCreated;
5081

82+
@Column(name = "sort_weight")
5183
private Double sortWeight;
5284

5385
// Constructors

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

Lines changed: 49 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,27 @@
1212
import java.util.Date;
1313

1414
import org.codehaus.jackson.annotate.JsonIgnore;
15+
import org.hibernate.annotations.Cache;
16+
import org.hibernate.annotations.CacheConcurrencyStrategy;
17+
import org.hibernate.annotations.GenericGenerator;
18+
import org.hibernate.annotations.Parameter;
1519
import org.hibernate.envers.Audited;
1620
import org.openmrs.customdatatype.CustomDatatypeUtil;
1721
import org.openmrs.customdatatype.CustomValueDescriptor;
1822
import org.openmrs.customdatatype.NotYetPersistedException;
1923
import org.openmrs.customdatatype.SingleCustomValue;
2024

25+
import javax.persistence.Entity;
26+
import javax.persistence.Table;
27+
import javax.persistence.AttributeOverride;
28+
import javax.persistence.Column;
29+
import javax.persistence.Id;
30+
import javax.persistence.GeneratedValue;
31+
import javax.persistence.GenerationType;
32+
import javax.persistence.ManyToOne;
33+
import javax.persistence.JoinColumn;
34+
import javax.persistence.Lob;
35+
2136
/**
2237
* A FormResource is meant as a way for modules to add arbitrary information to
2338
* a Form. FormResources are essentially just key-value pairs. The value is
@@ -30,33 +45,59 @@
3045
*
3146
* @since 1.9
3247
*/
48+
@Entity
49+
@Table(name = "form_resource")
50+
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
51+
@AttributeOverride(name = "uuid", column = @Column(name = "uuid", unique = true, nullable = false, length = 38))
3352
@Audited
3453
public class FormResource extends BaseOpenmrsObject implements CustomValueDescriptor, SingleCustomValue<FormResource> {
3554

3655
private static final long serialVersionUID = 1L;
3756

57+
@Id
58+
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "form_resource_form_resource_id_seq")
59+
@GenericGenerator(
60+
name = "form_resource_form_resource_id_seq",
61+
strategy = "native",
62+
parameters = @Parameter(name = "sequence", value = "form_resource_form_resource_id_seq")
63+
)
64+
@Column(name = "form_resource_id")
3865
private Integer formResourceId;
39-
66+
67+
@ManyToOne
68+
@JoinColumn(name = "form_id", nullable = false)
4069
private Form form;
41-
70+
71+
@Column(name = "name", length = 255, nullable = true)
4272
private String name;
43-
73+
74+
@Lob
75+
@Column(name = "value_reference", length = 65535, nullable = true)
4476
private String valueReference;
45-
77+
78+
@Column(name = "datatype", length = 255)
4679
private String datatypeClassname;
47-
80+
81+
@Lob
82+
@Column(name = "datatype_config", length = 65535)
4883
private String datatypeConfig;
49-
84+
85+
@Column(name = "preferred_handler", length = 255)
5086
private String preferredHandlerClassname;
51-
87+
88+
@Lob
89+
@Column(name = "handler_config", length = 65535)
5290
private String handlerConfig;
5391

5492
private transient boolean dirty = false;
5593

5694
private transient Object typedValue;
57-
95+
96+
@ManyToOne
97+
@JoinColumn(name = "changed_by")
5898
private User changedBy;
5999

100+
@Column(name = "date_changed", length = 19)
60101
private Date dateChanged;
61102

62103
public FormResource() {

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ public class Provider extends BaseCustomizableMetadata<ProviderAttribute> {
3232
private Concept role;
3333

3434
private Concept speciality;
35+
36+
private ProviderRole providerRole;
3537

3638
public Provider() {
3739
}
@@ -137,6 +139,26 @@ public void setSpeciality(Concept speciality) {
137139
public Concept getSpeciality() {
138140
return speciality;
139141
}
142+
143+
/**
144+
* Gets the provider role
145+
*
146+
* @since 2.8.0
147+
* @return the provider role
148+
*/
149+
public ProviderRole getProviderRole() {
150+
return providerRole;
151+
}
152+
153+
/**
154+
* Sets the provider role
155+
*
156+
* @since 2.8.0
157+
* @param providerRole the provider role to set
158+
*/
159+
public void setProviderRole(ProviderRole providerRole) {
160+
this.providerRole = providerRole;
161+
}
140162

141163
@Override
142164
public String toString() {
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
/**
2+
* This Source Code Form is subject to the terms of the Mozilla Public License,
3+
* v. 2.0. If a copy of the MPL was not distributed with this file, You can
4+
* obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under
5+
* the terms of the Healthcare Disclaimer located at http://openmrs.org/license.
6+
*
7+
* Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS
8+
* graphic logo is a trademark of OpenMRS Inc.
9+
*/
10+
package org.openmrs;
11+
12+
import org.openmrs.annotation.OpenmrsProfile;
13+
14+
import javax.persistence.Column;
15+
import javax.persistence.Entity;
16+
import javax.persistence.GeneratedValue;
17+
import javax.persistence.GenerationType;
18+
import javax.persistence.Id;
19+
import javax.persistence.Table;
20+
import java.io.Serializable;
21+
22+
/**
23+
* Used to store the possible provider roles. A Provide can only have a single role (though a single person
24+
* could be associated with more than one Provider object).
25+
* <p>
26+
* A provider role specifies what Provider/Patient relationships a provider with that role can support,
27+
* as well as the provider roles that another provider role can provider oversight for.
28+
* <p>
29+
* For example, a "Community Health Worker" role might support an "Accompagnateur" relationship,
30+
* and "Head Surgeon" role might be able to oversee a person with Provider Role of "Surgeon".
31+
*
32+
* @since 2.8.0
33+
*/
34+
@Entity
35+
@Table(name = "provider_role")
36+
public class ProviderRole extends BaseOpenmrsMetadata implements Serializable {
37+
38+
private static final long serialVersionUID = 1L;
39+
40+
@Id
41+
@GeneratedValue(strategy = GenerationType.IDENTITY)
42+
@Column(name = "provider_role_id")
43+
private Integer providerRoleId;
44+
45+
@Override
46+
public Integer getId() {
47+
return providerRoleId;
48+
}
49+
50+
@Override
51+
public void setId(Integer id) {
52+
this.providerRoleId = id;
53+
}
54+
55+
public Integer getProviderRoleId() {
56+
return providerRoleId;
57+
}
58+
59+
public void setProviderRoleId(Integer id) {
60+
this.providerRoleId = id;
61+
}
62+
63+
@Override
64+
public String toString() {
65+
return "ProviderRole{" +
66+
"providerRoleId=" + providerRoleId +
67+
", name=" + this.getName() +
68+
'}';
69+
}
70+
}

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

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@
99
*/
1010
package org.openmrs;
1111

12+
import javax.persistence.Column;
13+
import javax.persistence.Entity;
14+
import javax.persistence.GeneratedValue;
15+
import javax.persistence.GenerationType;
16+
import javax.persistence.Id;
17+
import javax.persistence.Table;
18+
1219
import org.hibernate.envers.Audited;
1320

1421
/**
@@ -17,11 +24,16 @@
1724
*
1825
* @since 1.9
1926
*/
27+
@Entity
28+
@Table(name = "visit_type")
2029
@Audited
21-
public class VisitType extends BaseChangeableOpenmrsMetadata{
30+
public class VisitType extends BaseChangeableOpenmrsMetadata {
2231

2332
private static final long serialVersionUID = 1L;
2433

34+
@Id
35+
@GeneratedValue(strategy = GenerationType.IDENTITY)
36+
@Column(name = "visit_type_id")
2537
private Integer visitTypeId;
2638

2739
/** default constructor */

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2037,7 +2037,7 @@ public List<ConceptSearchResult> getOrderableConcepts(String phrase, List<Locale
20372037
* @since 2.7.0
20382038
*/
20392039
@Authorized(PrivilegeConstants.GET_CONCEPTS)
2040-
public ConceptReferenceRange getConceptReferenceRange(Person person, Concept concept);
2040+
ConceptReferenceRange getConceptReferenceRange(Person person, Concept concept);
20412041

20422042
/**
20432043
* Completely purge a <code>ConceptReferenceRange</code> from the database.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/**
2+
* This Source Code Form is subject to the terms of the Mozilla Public License,
3+
* v. 2.0. If a copy of the MPL was not distributed with this file, You can
4+
* obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under
5+
* the terms of the Healthcare Disclaimer located at http://openmrs.org/license.
6+
*
7+
* Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS
8+
* graphic logo is a trademark of OpenMRS Inc.
9+
*/
10+
package org.openmrs.api;
11+
12+
import org.openmrs.util.OpenmrsConstants;
13+
import org.openmrs.util.OpenmrsUtil;
14+
import org.springframework.context.annotation.Bean;
15+
import org.springframework.context.annotation.Configuration;
16+
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
17+
import org.springframework.core.io.ClassPathResource;
18+
import org.springframework.core.io.FileSystemResource;
19+
import java.util.Properties;
20+
21+
/**
22+
* Provides a PropertySourcesPlaceholderConfigurer that uses OpenmrsUtil.getApplicationDataDirectory()
23+
* to resolve the runtime properties file location, ensuring the property is always set.
24+
*
25+
* @since 2.8.0
26+
*/
27+
@Configuration
28+
public class OpenmrsPropertyConfig {
29+
30+
@Bean
31+
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
32+
PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer();
33+
String appDataDir = OpenmrsUtil.getApplicationDataDirectory();
34+
Properties props = new Properties();
35+
props.setProperty(OpenmrsConstants.KEY_OPENMRS_APPLICATION_DATA_DIRECTORY, appDataDir);
36+
configurer.setProperties(props);
37+
configurer.setLocations(new ClassPathResource("hibernate.default.properties"),
38+
new FileSystemResource(appDataDir + "/openmrs-runtime.properties"));
39+
configurer.setIgnoreResourceNotFound(true);
40+
configurer.setLocalOverride(true);
41+
return configurer;
42+
}
43+
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
* {@link ObjectMetadata} can be passed in save methods. It is implementation dependent on how the metadata is
2828
* used or persisted.
2929
*
30-
* @since 2.8.0, 2.7.4, 2.6.16, 2.5.15
30+
* @since 2.8.0, 2.7.5, 2.6.16, 2.5.15
3131
*/
3232
public interface StorageService extends OpenmrsService {
3333

0 commit comments

Comments
 (0)