Skip to content

Commit aef1ebc

Browse files
authoredJan 22, 2025
O3-4357: Add Allergy Recording to Patient Visit Scenario (#54)
* O3-4357:Add Allergy Recording to Patient Visit Scenario * O3-4357:break into two actions * O3-4357:add constants * O3-4357:add getAllergen function * O3-4357:fix save allergies endpoint * O3-4357:fix some tab spacing issue * O3-4357:fix some tab spacing issue * O3-4357:remove unwanted spacing
1 parent 6b14c08 commit aef1ebc

File tree

4 files changed

+84
-7
lines changed

4 files changed

+84
-7
lines changed
 

‎src/test/java/org/openmrs/performance/Constants.java

+14-7
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ public class Constants {
66
public static final String ENV_USER_INCREMENT_PER_TIER = "USER_INCREMENT_PER_TIER";
77
public static final String ENV_TIER_DURATION = "TIER_DURATION_MINUTES";
88
public static final String ENV_TIER_COUNT = "TIER_COUNT";
9-
9+
1010
public static final String OUTPATIENT_CLINIC_LOCATION_UUID = "44c3efb0-2583-4c80-a79e-1f756a03c0a1";
1111
public static final String FACULTY_VISIT_TYPE_UUID = "7b0f5697-27e3-40c4-8bae-f4049abfb4ed";
12-
12+
1313
public static final String CARE_SETTING_UUID = "6f0c9a92-6f24-11e3-af88-005056821db0";
1414
public static final String DRUG_ORDER = "131168f4-15f5-102d-96e4-000c29c2a5d7";
15-
15+
1616
// Observation Types
1717
public static final String SYSTOLIC_BLOOD_PRESSURE = "5085AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
1818
public static final String DIASTOLIC_BLOOD_PRESSURE = "5086AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
@@ -24,15 +24,22 @@ public class Constants {
2424
public static final String RESPIRATORY_RATE = "5242AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
2525
public static final String ARTERIAL_BLOOD_OXYGEN_SATURATION = "5092AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
2626
public static final String UNKNOWN_OBSERVATION_TYPE = "165095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
27-
27+
2828
public static final String PERSON_ATTRIBUTE_PHONE_NUMBER = "14d4f066-15f5-102d-96e4-000c29c2a5d7";
29-
29+
3030
public static final String TABLET = "1513AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
3131
public static final String ORAL = "160240AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
3232
public static final String ONCE_DAILY = "136ebdb7-e989-47cf-8ec2-4e8b2ffe0ab3";
3333
public static final String DAYS = "1072AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
3434
public static final String ORDER = "39da3525-afe4-45ff-8977-c53b7b359158";
35-
35+
3636
public static final String DEFAULT_DOSING_TYPE = "org.openmrs.SimpleDosingInstructions";
37-
37+
38+
// Allergies
39+
public static final String DRUG_ALLERGEN_UUID = "162555AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
40+
public static final String ENVIRONMENTAL_ALLERGEN_UUID = "162552AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
41+
public static final String FOOD_ALLERGEN_UUID = "162554AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
42+
public static final String ALLERGY_REACTION_UUID = "162553AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
43+
public static final String CODED_ALLERGEN_UUID = "71617AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
44+
public static final String SEVERITY_UUID = "1498AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
3845
}

‎src/test/java/org/openmrs/performance/http/DoctorHttpService.java

+47
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,26 @@
66

77
import java.time.ZonedDateTime;
88
import java.time.format.DateTimeFormatter;
9+
import java.util.Collections;
910
import java.util.HashMap;
11+
import java.util.List;
1012
import java.util.Map;
1113

1214
import static io.gatling.javaapi.core.CoreDsl.StringBody;
1315
import static io.gatling.javaapi.core.CoreDsl.bodyString;
1416
import static io.gatling.javaapi.core.CoreDsl.jsonPath;
1517
import static io.gatling.javaapi.http.HttpDsl.http;
18+
import static org.openmrs.performance.Constants.ALLERGY_REACTION_UUID;
1619
import static org.openmrs.performance.Constants.CARE_SETTING_UUID;
20+
import static org.openmrs.performance.Constants.CODED_ALLERGEN_UUID;
1721
import static org.openmrs.performance.Constants.DAYS;
1822
import static org.openmrs.performance.Constants.DEFAULT_DOSING_TYPE;
1923
import static org.openmrs.performance.Constants.DRUG_ORDER;
2024
import static org.openmrs.performance.Constants.ONCE_DAILY;
2125
import static org.openmrs.performance.Constants.ORAL;
2226
import static org.openmrs.performance.Constants.ORDER;
2327
import static org.openmrs.performance.Constants.OUTPATIENT_CLINIC_LOCATION_UUID;
28+
import static org.openmrs.performance.Constants.SEVERITY_UUID;
2429
import static org.openmrs.performance.Constants.TABLET;
2530

2631
public class DoctorHttpService extends HttpService {
@@ -60,6 +65,8 @@ public HttpRequestActionBuilder getActiveVisitOfPatient(String patientUuid) {
6065
return http("Get Active Visits of Patient")
6166
.get("/openmrs/ws/rest/v1/visit?patient=" + patientUuid + "&v=" + customRepresentation + "&includeInactive=false");
6267
}
68+
69+
6370

6471
public HttpRequestActionBuilder getProgramEnrollments(String patientUuid) {
6572
String customRepresentation = "custom:(uuid,display,program,dateEnrolled,dateCompleted," +
@@ -153,6 +160,46 @@ public HttpRequestActionBuilder getAllergies(String patientUuid) {
153160
return http("Get Allergies of Patient")
154161
.get("/openmrs/ws/fhir2/R4/AllergyIntolerance?patient=" + patientUuid + "&_summary=data");
155162
}
163+
164+
public HttpRequestActionBuilder getAllergens(String allergenType, String allergenUuid) {
165+
return http("Get " + allergenType + " Allergens")
166+
.get("/openmrs/ws/rest/v1/concept/" + allergenUuid + "?v=full");
167+
}
168+
169+
170+
public HttpRequestActionBuilder saveAllergy(String patientUuid) {
171+
Map<String, Object> payload = new HashMap<>();
172+
173+
Map<String,String> codedAllergen = new HashMap<>();
174+
codedAllergen.put("uuid", CODED_ALLERGEN_UUID);
175+
176+
Map<String,Object>allergen = new HashMap<>();
177+
allergen.put("allergenType", "DRUG");
178+
allergen.put("codedAllergen", codedAllergen);
179+
180+
Map<String,String>severity = new HashMap<>();
181+
severity.put("uuid", SEVERITY_UUID);
182+
183+
Map<String, String> reactionUuid = new HashMap<>();
184+
reactionUuid.put("uuid", ALLERGY_REACTION_UUID);
185+
186+
Map<String, Object> reaction = new HashMap<>();
187+
reaction.put("reaction", reactionUuid);
188+
List<Map<String, Object>> reactions = Collections.singletonList(reaction);
189+
190+
payload.put("allergen", allergen);
191+
payload.put("severity", severity);
192+
payload.put("comment", "test");
193+
payload.put("reactions", reactions);
194+
195+
try {
196+
return http("Save an Allergy")
197+
.post("/openmrs/ws/rest/v1/patient/" + patientUuid + "/allergy")
198+
.body(StringBody(new ObjectMapper().writeValueAsString(payload)));
199+
} catch (JsonProcessingException e) {
200+
throw new RuntimeException(e);
201+
}
202+
}
156203

157204
public HttpRequestActionBuilder getConditions(String patientUuid) {
158205
return http("Get Conditions of Patient")

‎src/test/java/org/openmrs/performance/registries/DoctorRegistry.java

+21
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,13 @@
77
import java.util.Set;
88

99
import static io.gatling.javaapi.core.CoreDsl.exec;
10+
import static org.openmrs.performance.Constants.ALLERGY_REACTION_UUID;
1011
import static org.openmrs.performance.Constants.ARTERIAL_BLOOD_OXYGEN_SATURATION;
1112
import static org.openmrs.performance.Constants.DIASTOLIC_BLOOD_PRESSURE;
13+
import static org.openmrs.performance.Constants.DRUG_ALLERGEN_UUID;
14+
import static org.openmrs.performance.Constants.ENVIRONMENTAL_ALLERGEN_UUID;
1215
import static org.openmrs.performance.Constants.FACULTY_VISIT_TYPE_UUID;
16+
import static org.openmrs.performance.Constants.FOOD_ALLERGEN_UUID;
1317
import static org.openmrs.performance.Constants.HEIGHT_CM;
1418
import static org.openmrs.performance.Constants.MID_UPPER_ARM_CIRCUMFERENCE;
1519
import static org.openmrs.performance.Constants.OUTPATIENT_CLINIC_LOCATION_UUID;
@@ -21,6 +25,8 @@
2125
import static org.openmrs.performance.Constants.WEIGHT_KG;
2226
import static org.openmrs.performance.utils.CommonUtils.extractConceptIds;
2327

28+
29+
2430
public class DoctorRegistry extends Registry<DoctorHttpService>{
2531

2632
public DoctorRegistry() {
@@ -94,6 +100,21 @@ public ChainBuilder openLabResultsTab(String patientUuid) {
94100
public ChainBuilder openAllergiesTab(String patientUuid) {
95101
return exec(httpService.getAllergies(patientUuid));
96102
}
103+
104+
public ChainBuilder openAllergiesForm(){
105+
return exec(
106+
httpService.getAllergens("Drug",DRUG_ALLERGEN_UUID),
107+
httpService.getAllergens("Environment",ENVIRONMENTAL_ALLERGEN_UUID),
108+
httpService.getAllergens("Food",FOOD_ALLERGEN_UUID),
109+
httpService.getAllergens("Allergic Reactions",ALLERGY_REACTION_UUID)
110+
);
111+
}
112+
113+
public ChainBuilder recordAllergy(String patientUuid) {
114+
return exec(
115+
httpService.saveAllergy(patientUuid)
116+
);
117+
}
97118

98119
public ChainBuilder openConditionsTab(String patientUuid) {
99120
return exec(httpService.getConditions(patientUuid));

‎src/test/java/org/openmrs/performance/scenarios/VisitPatientScenario.java

+2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ public ScenarioBuilder getScenarioBuilder() {
2929
.exec(registry.openOrdersTab("#{patient_uuid}"))
3030
.exec(registry.openLabResultsTab("#{patient_uuid}"))
3131
.exec(registry.openAllergiesTab("#{patient_uuid}"))
32+
.exec(registry.openAllergiesForm())
33+
.exec(registry.recordAllergy("#{patient_uuid}"))
3234
.exec(registry.openConditionsTab("#{patient_uuid}"))
3335
.exec(registry.openImmunizationsTab("#{patient_uuid}"))
3436
.exec(registry.openAttachmentsTab("#{patient_uuid}"))

0 commit comments

Comments
 (0)
Failed to load comments.