diff --git a/src/test/java/org/openmrs/performance/Constants.java b/src/test/java/org/openmrs/performance/Constants.java index 79704a93..e0131848 100644 --- a/src/test/java/org/openmrs/performance/Constants.java +++ b/src/test/java/org/openmrs/performance/Constants.java @@ -12,6 +12,9 @@ public class Constants { public static final String CARE_SETTING_UUID = "6f0c9a92-6f24-11e3-af88-005056821db0"; public static final String DRUG_ORDER = "131168f4-15f5-102d-96e4-000c29c2a5d7"; + + public static final String VISIT_NOTE_FORM_UUID = "c75f120a-04ec-11e3-8780-2b40bef9a44b"; + public static final String CLINICIAN_ENCOUNTER_ROLE = "240b26f9-dd88-4172-823d-4a8bfeb7841f"; // Observation Types public static final String SYSTOLIC_BLOOD_PRESSURE = "5085AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; @@ -32,6 +35,8 @@ public class Constants { 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 VISIT_NOTE_ENCOUNTER_TYPE_UUID = "d7151f82-c1f3-4152-a605-2f9ea7414a79"; + public static final String VISIT_NOTE_CONCEPT_UUID = "162169AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; public static final String DEFAULT_DOSING_TYPE = "org.openmrs.SimpleDosingInstructions"; diff --git a/src/test/java/org/openmrs/performance/http/DoctorHttpService.java b/src/test/java/org/openmrs/performance/http/DoctorHttpService.java index 3a7707ae..47641bac 100644 --- a/src/test/java/org/openmrs/performance/http/DoctorHttpService.java +++ b/src/test/java/org/openmrs/performance/http/DoctorHttpService.java @@ -1,18 +1,23 @@ package org.openmrs.performance.http; import com.google.gson.Gson; +import com.google.gson.GsonBuilder; import io.gatling.javaapi.http.HttpRequestActionBuilder; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; 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.exec; import static io.gatling.javaapi.core.CoreDsl.jsonPath; import static io.gatling.javaapi.http.HttpDsl.http; import static org.openmrs.performance.Constants.CARE_SETTING_UUID; +import static org.openmrs.performance.Constants.CLINICIAN_ENCOUNTER_ROLE; 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 +26,9 @@ import static org.openmrs.performance.Constants.ORDER; import static org.openmrs.performance.Constants.OUTPATIENT_CLINIC_LOCATION_UUID; import static org.openmrs.performance.Constants.TABLET; +import static org.openmrs.performance.Constants.VISIT_NOTE_CONCEPT_UUID; +import static org.openmrs.performance.Constants.VISIT_NOTE_ENCOUNTER_TYPE_UUID; +import static org.openmrs.performance.Constants.VISIT_NOTE_FORM_UUID; public class DoctorHttpService extends HttpService { @@ -232,4 +240,65 @@ public HttpRequestActionBuilder saveOrder(String patientUuid, String visitUuid, .post("/openmrs/ws/rest/v1/encounter") .body(StringBody(body)); } + + public HttpRequestActionBuilder saveVisitNote(String patientUuid, String currentUser, String value) { + Map<String, Object> visitNote = new HashMap<>(); + visitNote.put("form", VISIT_NOTE_FORM_UUID); + visitNote.put("patient", patientUuid); + visitNote.put("location", OUTPATIENT_CLINIC_LOCATION_UUID); + visitNote.put("encounterType", VISIT_NOTE_ENCOUNTER_TYPE_UUID); + + Map<String, Object> encounterProvider = new HashMap<>(); + encounterProvider.put("encounterRole", CLINICIAN_ENCOUNTER_ROLE); + encounterProvider.put("provider", currentUser); + + visitNote.put("encounterProviders", List.of(encounterProvider)); + + Map<String, Object> concept = new HashMap<>(); + concept.put("uuid", VISIT_NOTE_CONCEPT_UUID); + + + Map<String, Object> obs = new HashMap<>(); + obs.put("concept", concept); + obs.put("value", value); + visitNote.put("obs", List.of(obs)); + + Gson gson = new Gson(); + String body = gson.toJson(visitNote); + + exec(session -> { + System.out.println(body); + return session; + }); + + return http("Save Visit Note").post("/openmrs/ws/rest/v1/encounter").body(StringBody(body)) + .check(jsonPath("$.uuid").saveAs("encounter_uuid")); + } + + public HttpRequestActionBuilder saveDiagnosis(String patientUuid, String encounterUuid, String diagnosisUuid, + String certainty, int rank) { + Map<String, Object> patientDiagnosis = new HashMap<>(); + patientDiagnosis.put("patient", patientUuid); + patientDiagnosis.put("encounter", encounterUuid); + patientDiagnosis.put("certainty", certainty); + patientDiagnosis.put("rank", rank); + patientDiagnosis.put("condition", null); + + Map<String, Object> diagnosis = new HashMap<>(); + diagnosis.put("coded", diagnosisUuid); + patientDiagnosis.put("diagnosis", diagnosis); + + Gson gson = new GsonBuilder().serializeNulls().create(); + String body = gson.toJson(patientDiagnosis); + + exec(seassion -> { + System.out.println(body); + return seassion; + }); + + return http("Save Patient Diagnosis") + .post("/openmrs/ws/rest/v1/patientdiagnoses") + .body(StringBody(body)); + } + } diff --git a/src/test/java/org/openmrs/performance/registries/DoctorRegistry.java b/src/test/java/org/openmrs/performance/registries/DoctorRegistry.java index 27875e27..08f49934 100644 --- a/src/test/java/org/openmrs/performance/registries/DoctorRegistry.java +++ b/src/test/java/org/openmrs/performance/registries/DoctorRegistry.java @@ -121,6 +121,20 @@ public ChainBuilder addDrugOrder(String patientUuid, String visitUuid, String cu httpService.searchForDrug("Tylenol"), httpService.saveOrder(patientUuid, visitUuid, currentUserUuid, asprin_162_5mg, asprinConcept) ); - + } + + public ChainBuilder addVisitNote(String patientUuid, String currentUserUuid) { + String visitNoteText = "Patient visit note"; + String diabeticKetosisConcept = "119441AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; + String diabeticFootUlcerConcept = "142451AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; + String fatigueConcept = "140501AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; + String certainty = "PROVISIONAL"; + String encounterUuid = "#{encounter_uuid}"; + return exec( + httpService.saveVisitNote(patientUuid, currentUserUuid, visitNoteText), + httpService.saveDiagnosis(patientUuid, encounterUuid, diabeticKetosisConcept, certainty, 1), + httpService.saveDiagnosis(patientUuid, encounterUuid, diabeticFootUlcerConcept, certainty, 1), + httpService.saveDiagnosis(patientUuid, encounterUuid, fatigueConcept, certainty, 2) + ); } } diff --git a/src/test/java/org/openmrs/performance/scenarios/VisitPatientScenario.java b/src/test/java/org/openmrs/performance/scenarios/VisitPatientScenario.java index f19ba71b..721c375d 100644 --- a/src/test/java/org/openmrs/performance/scenarios/VisitPatientScenario.java +++ b/src/test/java/org/openmrs/performance/scenarios/VisitPatientScenario.java @@ -32,7 +32,9 @@ public ScenarioBuilder getScenarioBuilder() { .exec(registry.openConditionsTab("#{patient_uuid}")) .exec(registry.openImmunizationsTab("#{patient_uuid}")) .exec(registry.openAttachmentsTab("#{patient_uuid}")) - .exec(registry.addDrugOrder("#{patient_uuid}", "#{visitUuid}", "#{currentUserUuid}")) +// .exec(registry.addDrugOrder("#{patient_uuid}", "#{visitUuid}", "#{currentUserUuid}")) + .exec(registry.addVisitNote("#{patient_uuid}", "#{currentUserUuid}")) + .pause(7) .exec(registry.endVisit("#{patient_uuid}")); } }