-
Notifications
You must be signed in to change notification settings - Fork 3.6k
/
OrderType.java
189 lines (161 loc) · 4.57 KB
/
OrderType.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
/**
* This Source Code Form is subject to the terms of the Mozilla Public License,
* v. 2.0. If a copy of the MPL was not distributed with this file, You can
* obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under
* the terms of the Healthcare Disclaimer located at http://openmrs.org/license.
*
* Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS
* graphic logo is a trademark of OpenMRS Inc.
*/
package org.openmrs;
import java.util.Collection;
import java.util.LinkedHashSet;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.envers.Audited;
import org.openmrs.annotation.Independent;
import org.openmrs.api.APIException;
import org.openmrs.api.context.Context;
/**
* OrderTypes are used to classify different types of Orders e.g to distinguish between Serology and
* Radiology TestOrders
*
*/
@Audited
public class OrderType extends BaseChangeableOpenmrsMetadata {
public static final long serialVersionUID = 23232L;
public static final String DRUG_ORDER_TYPE_UUID = "131168f4-15f5-102d-96e4-000c29c2a5d7";
public static final String TEST_ORDER_TYPE_UUID = "52a447d3-a64a-11e3-9aeb-50e549534c5e";
public static final String REFERRAL_ORDER_TYPE_UUID = "f1b63696-2b6c-11ec-8d3d-0242ac130003";
private Integer orderTypeId;
private String javaClassName;
private OrderType parent;
@Independent
private Collection<ConceptClass> conceptClasses;
/**
* default constructor
*/
public OrderType() {
}
/**
* Constructor with ID
*
* @param orderTypeId the ID of the {@link org.openmrs.OrderType}
*/
public OrderType(Integer orderTypeId) {
this.orderTypeId = orderTypeId;
}
/**
* Convenience constructor that takes in the elements required to save this OrderType to the
* database
*
* @param name The name of this order Type
* @param description A short description about this order type
* @param javaClassName The fully qualified java class name
*/
public OrderType(String name, String description, String javaClassName) {
setName(name);
setDescription(description);
setJavaClassName(javaClassName);
}
/**
* @return Returns the orderTypeId.
*/
public Integer getOrderTypeId() {
return orderTypeId;
}
/**
* @param orderTypeId The orderTypeId to set.
*/
public void setOrderTypeId(Integer orderTypeId) {
this.orderTypeId = orderTypeId;
}
/**
* @see org.openmrs.OpenmrsObject#getId()
*/
@Override
public Integer getId() {
return getOrderTypeId();
}
/**
* @see org.openmrs.OpenmrsObject#setId(java.lang.Integer)
*/
@Override
public void setId(Integer id) {
setOrderTypeId(id);
}
/**
* @return Returns the Java className as String
*/
public String getJavaClassName() {
return javaClassName;
}
/**
* @param javaClassName The Java class to set as String
*/
public void setJavaClassName(String javaClassName) {
this.javaClassName = javaClassName;
}
/**
* @return Returns the {@link org.openmrs.OrderType}
*/
public OrderType getParent() {
return parent;
}
/**
* @param parent The {@link org.openmrs.OrderType} to set
*/
public void setParent(OrderType parent) {
this.parent = parent;
}
/**
* @return Get the {@link org.openmrs.ConceptClass}es
*/
public Collection<ConceptClass> getConceptClasses() {
if (conceptClasses == null) {
conceptClasses = new LinkedHashSet<>();
}
return conceptClasses;
}
/**
* @param conceptClasses the collection containing the {@link org.openmrs.ConceptClass}es
*/
public void setConceptClasses(Collection<ConceptClass> conceptClasses) {
this.conceptClasses = conceptClasses;
}
/**
* Convenience method that returns a {@link java.lang.Class} object for the associated
* javaClassName
*
* @return The Java class as {@link java.lang.Class}
* @throws APIException
*/
public Class getJavaClass() {
try {
return Context.loadClass(javaClassName);
}
catch (ClassNotFoundException e) {
//re throw as a runtime exception
throw new APIException("OrderType.failed.load.class", new Object[] { javaClassName }, e);
}
}
/**
* Convenience method that adds the specified concept class
*
* @param conceptClass the ConceptClass to add
* <strong>Should</strong> add the specified concept class
* <strong>Should</strong> not add a duplicate concept class
*/
public void addConceptClass(ConceptClass conceptClass) {
getConceptClasses().add(conceptClass);
}
/**
* @see org.openmrs.BaseOpenmrsObject#toString()
*/
@Override
public String toString() {
if (StringUtils.isNotBlank(getName())) {
return getName();
}
return super.toString();
}
}