diff --git a/src/test/java/org/openmrs/performance/Constants.java b/src/test/java/org/openmrs/performance/Constants.java index 79704a93..ccb5c44f 100644 --- a/src/test/java/org/openmrs/performance/Constants.java +++ b/src/test/java/org/openmrs/performance/Constants.java @@ -6,13 +6,13 @@ public class Constants { public static final String ENV_USER_INCREMENT_PER_TIER = "USER_INCREMENT_PER_TIER"; public static final String ENV_TIER_DURATION = "TIER_DURATION_MINUTES"; public static final String ENV_TIER_COUNT = "TIER_COUNT"; - + public static final String OUTPATIENT_CLINIC_LOCATION_UUID = "44c3efb0-2583-4c80-a79e-1f756a03c0a1"; public static final String FACULTY_VISIT_TYPE_UUID = "7b0f5697-27e3-40c4-8bae-f4049abfb4ed"; - + public static final String CARE_SETTING_UUID = "6f0c9a92-6f24-11e3-af88-005056821db0"; public static final String DRUG_ORDER = "131168f4-15f5-102d-96e4-000c29c2a5d7"; - + // Observation Types public static final String SYSTOLIC_BLOOD_PRESSURE = "5085AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; public static final String DIASTOLIC_BLOOD_PRESSURE = "5086AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; @@ -24,15 +24,22 @@ public class Constants { public static final String RESPIRATORY_RATE = "5242AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; public static final String ARTERIAL_BLOOD_OXYGEN_SATURATION = "5092AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; public static final String UNKNOWN_OBSERVATION_TYPE = "165095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; - + public static final String PERSON_ATTRIBUTE_PHONE_NUMBER = "14d4f066-15f5-102d-96e4-000c29c2a5d7"; - + public static final String TABLET = "1513AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; public static final String ORAL = "160240AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; public static final String ONCE_DAILY = "136ebdb7-e989-47cf-8ec2-4e8b2ffe0ab3"; public static final String DAYS = "1072AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; public static final String ORDER = "39da3525-afe4-45ff-8977-c53b7b359158"; - + public static final String DEFAULT_DOSING_TYPE = "org.openmrs.SimpleDosingInstructions"; - + + // Allergies + public static final String DRUG_ALLERGEN_UUID = "162555AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; + public static final String ENVIRONMENTAL_ALLERGEN_UUID = "162552AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; + public static final String FOOD_ALLERGEN_UUID = "162554AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; + public static final String ALLERGY_REACTION_UUID = "162553AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; + public static final String CODED_ALLERGEN_UUID = "71617AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; + public static final String SEVERITY_UUID = "1498AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; } diff --git a/src/test/java/org/openmrs/performance/http/DoctorHttpService.java b/src/test/java/org/openmrs/performance/http/DoctorHttpService.java index 84a1f0f9..22f06571 100644 --- a/src/test/java/org/openmrs/performance/http/DoctorHttpService.java +++ b/src/test/java/org/openmrs/performance/http/DoctorHttpService.java @@ -6,14 +6,18 @@ import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; +import java.util.Collections; import java.util.HashMap; +import java.util.List; import java.util.Map; import static io.gatling.javaapi.core.CoreDsl.StringBody; import static io.gatling.javaapi.core.CoreDsl.bodyString; import static io.gatling.javaapi.core.CoreDsl.jsonPath; import static io.gatling.javaapi.http.HttpDsl.http; +import static org.openmrs.performance.Constants.ALLERGY_REACTION_UUID; import static org.openmrs.performance.Constants.CARE_SETTING_UUID; +import static org.openmrs.performance.Constants.CODED_ALLERGEN_UUID; import static org.openmrs.performance.Constants.DAYS; import static org.openmrs.performance.Constants.DEFAULT_DOSING_TYPE; import static org.openmrs.performance.Constants.DRUG_ORDER; @@ -21,6 +25,7 @@ import static org.openmrs.performance.Constants.ORAL; import static org.openmrs.performance.Constants.ORDER; import static org.openmrs.performance.Constants.OUTPATIENT_CLINIC_LOCATION_UUID; +import static org.openmrs.performance.Constants.SEVERITY_UUID; import static org.openmrs.performance.Constants.TABLET; public class DoctorHttpService extends HttpService { @@ -60,6 +65,8 @@ public HttpRequestActionBuilder getActiveVisitOfPatient(String patientUuid) { return http("Get Active Visits of Patient") .get("/openmrs/ws/rest/v1/visit?patient=" + patientUuid + "&v=" + customRepresentation + "&includeInactive=false"); } + + public HttpRequestActionBuilder getProgramEnrollments(String patientUuid) { String customRepresentation = "custom:(uuid,display,program,dateEnrolled,dateCompleted," + @@ -153,6 +160,46 @@ public HttpRequestActionBuilder getAllergies(String patientUuid) { return http("Get Allergies of Patient") .get("/openmrs/ws/fhir2/R4/AllergyIntolerance?patient=" + patientUuid + "&_summary=data"); } + + public HttpRequestActionBuilder getAllergens(String allergenType, String allergenUuid) { + return http("Get " + allergenType + " Allergens") + .get("/openmrs/ws/rest/v1/concept/" + allergenUuid + "?v=full"); + } + + + public HttpRequestActionBuilder saveAllergy(String patientUuid) { + Map<String, Object> payload = new HashMap<>(); + + Map<String,String> codedAllergen = new HashMap<>(); + codedAllergen.put("uuid", CODED_ALLERGEN_UUID); + + Map<String,Object>allergen = new HashMap<>(); + allergen.put("allergenType", "DRUG"); + allergen.put("codedAllergen", codedAllergen); + + Map<String,String>severity = new HashMap<>(); + severity.put("uuid", SEVERITY_UUID); + + Map<String, String> reactionUuid = new HashMap<>(); + reactionUuid.put("uuid", ALLERGY_REACTION_UUID); + + Map<String, Object> reaction = new HashMap<>(); + reaction.put("reaction", reactionUuid); + List<Map<String, Object>> reactions = Collections.singletonList(reaction); + + payload.put("allergen", allergen); + payload.put("severity", severity); + payload.put("comment", "test"); + payload.put("reactions", reactions); + + try { + return http("Save an Allergy") + .post("/openmrs/ws/rest/v1/patient/" + patientUuid + "/allergy") + .body(StringBody(new ObjectMapper().writeValueAsString(payload))); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } public HttpRequestActionBuilder getConditions(String patientUuid) { return http("Get Conditions of Patient") diff --git a/src/test/java/org/openmrs/performance/registries/DoctorRegistry.java b/src/test/java/org/openmrs/performance/registries/DoctorRegistry.java index 27875e27..d37fc0f8 100644 --- a/src/test/java/org/openmrs/performance/registries/DoctorRegistry.java +++ b/src/test/java/org/openmrs/performance/registries/DoctorRegistry.java @@ -7,9 +7,13 @@ import java.util.Set; import static io.gatling.javaapi.core.CoreDsl.exec; +import static org.openmrs.performance.Constants.ALLERGY_REACTION_UUID; import static org.openmrs.performance.Constants.ARTERIAL_BLOOD_OXYGEN_SATURATION; import static org.openmrs.performance.Constants.DIASTOLIC_BLOOD_PRESSURE; +import static org.openmrs.performance.Constants.DRUG_ALLERGEN_UUID; +import static org.openmrs.performance.Constants.ENVIRONMENTAL_ALLERGEN_UUID; import static org.openmrs.performance.Constants.FACULTY_VISIT_TYPE_UUID; +import static org.openmrs.performance.Constants.FOOD_ALLERGEN_UUID; import static org.openmrs.performance.Constants.HEIGHT_CM; import static org.openmrs.performance.Constants.MID_UPPER_ARM_CIRCUMFERENCE; import static org.openmrs.performance.Constants.OUTPATIENT_CLINIC_LOCATION_UUID; @@ -21,6 +25,8 @@ import static org.openmrs.performance.Constants.WEIGHT_KG; import static org.openmrs.performance.utils.CommonUtils.extractConceptIds; + + public class DoctorRegistry extends Registry<DoctorHttpService>{ public DoctorRegistry() { @@ -94,6 +100,21 @@ public ChainBuilder openLabResultsTab(String patientUuid) { public ChainBuilder openAllergiesTab(String patientUuid) { return exec(httpService.getAllergies(patientUuid)); } + + public ChainBuilder openAllergiesForm(){ + return exec( + httpService.getAllergens("Drug",DRUG_ALLERGEN_UUID), + httpService.getAllergens("Environment",ENVIRONMENTAL_ALLERGEN_UUID), + httpService.getAllergens("Food",FOOD_ALLERGEN_UUID), + httpService.getAllergens("Allergic Reactions",ALLERGY_REACTION_UUID) + ); + } + + public ChainBuilder recordAllergy(String patientUuid) { + return exec( + httpService.saveAllergy(patientUuid) + ); + } public ChainBuilder openConditionsTab(String patientUuid) { return exec(httpService.getConditions(patientUuid)); diff --git a/src/test/java/org/openmrs/performance/scenarios/VisitPatientScenario.java b/src/test/java/org/openmrs/performance/scenarios/VisitPatientScenario.java index f19ba71b..ba215dfc 100644 --- a/src/test/java/org/openmrs/performance/scenarios/VisitPatientScenario.java +++ b/src/test/java/org/openmrs/performance/scenarios/VisitPatientScenario.java @@ -29,6 +29,8 @@ public ScenarioBuilder getScenarioBuilder() { .exec(registry.openOrdersTab("#{patient_uuid}")) .exec(registry.openLabResultsTab("#{patient_uuid}")) .exec(registry.openAllergiesTab("#{patient_uuid}")) + .exec(registry.openAllergiesForm()) + .exec(registry.recordAllergy("#{patient_uuid}")) .exec(registry.openConditionsTab("#{patient_uuid}")) .exec(registry.openImmunizationsTab("#{patient_uuid}")) .exec(registry.openAttachmentsTab("#{patient_uuid}"))