Skip to content

Commit 7ddc8ab

Browse files
authoredMar 4, 2025
O3-4484: Save Vitals Data in Visit Patient scenario (#71)
* O3-4484: Save Vitals Data in Visit Patient scenario * add some constants * add date in encounter * add new observation types * fixed list type * fixed list type * move save vitals in DoctorHttpService.java * changeed variable name * changeed variable name
1 parent c3dda41 commit 7ddc8ab

File tree

4 files changed

+54
-3
lines changed

4 files changed

+54
-3
lines changed
 

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

+4
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,8 @@ public class Constants {
5353
public static final String DIABETIC_KETOSIS_CONCEPT = "123107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
5454
public static final String DIABETIC_FOOT_ULCER_CONCEPT = "149069AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
5555

56+
// Vitals
57+
public static final String VITALS_FORM_UUID = "9f26aad4-244a-46ca-be49-1196df1a8c9a";
58+
public static final String VITALS_LOCATION_UUID = "ba685651-ed3b-4e63-9b35-78893060758a";
59+
public static final String VITALS_ENCOUNTER_TYPE_UUID = "67a71486-1a54-468f-ac3e-7091a9a79584";
5660
}

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

+46-1
Original file line numberDiff line numberDiff line change
@@ -7,32 +7,44 @@
77

88
import java.time.ZonedDateTime;
99
import java.time.format.DateTimeFormatter;
10+
import java.util.ArrayList;
1011
import java.util.Collections;
1112
import java.util.HashMap;
1213
import java.util.List;
1314
import java.util.Map;
1415

1516
import static io.gatling.javaapi.core.CoreDsl.StringBody;
1617
import static io.gatling.javaapi.core.CoreDsl.bodyString;
17-
import static io.gatling.javaapi.core.CoreDsl.exec;
1818
import static io.gatling.javaapi.core.CoreDsl.jsonPath;
1919
import static io.gatling.javaapi.http.HttpDsl.http;
2020
import static org.openmrs.performance.Constants.ALLERGY_REACTION_UUID;
21+
import static org.openmrs.performance.Constants.ARTERIAL_BLOOD_OXYGEN_SATURATION;
2122
import static org.openmrs.performance.Constants.CARE_SETTING_UUID;
2223
import static org.openmrs.performance.Constants.CLINICIAN_ENCOUNTER_ROLE;
2324
import static org.openmrs.performance.Constants.CODED_ALLERGEN_UUID;
2425
import static org.openmrs.performance.Constants.DAYS;
2526
import static org.openmrs.performance.Constants.DEFAULT_DOSING_TYPE;
27+
import static org.openmrs.performance.Constants.DIASTOLIC_BLOOD_PRESSURE;
2628
import static org.openmrs.performance.Constants.DRUG_ORDER;
29+
import static org.openmrs.performance.Constants.HEIGHT_CM;
30+
import static org.openmrs.performance.Constants.MID_UPPER_ARM_CIRCUMFERENCE;
2731
import static org.openmrs.performance.Constants.ONCE_DAILY;
2832
import static org.openmrs.performance.Constants.ORAL;
2933
import static org.openmrs.performance.Constants.ORDER;
3034
import static org.openmrs.performance.Constants.OUTPATIENT_CLINIC_LOCATION_UUID;
35+
import static org.openmrs.performance.Constants.PULSE;
36+
import static org.openmrs.performance.Constants.RESPIRATORY_RATE;
3137
import static org.openmrs.performance.Constants.SEVERITY_UUID;
38+
import static org.openmrs.performance.Constants.SYSTOLIC_BLOOD_PRESSURE;
3239
import static org.openmrs.performance.Constants.TABLET;
40+
import static org.openmrs.performance.Constants.TEMPERATURE_C;
3341
import static org.openmrs.performance.Constants.VISIT_NOTE_CONCEPT_UUID;
3442
import static org.openmrs.performance.Constants.VISIT_NOTE_ENCOUNTER_TYPE_UUID;
3543
import static org.openmrs.performance.Constants.VISIT_NOTE_FORM_UUID;
44+
import static org.openmrs.performance.Constants.VITALS_ENCOUNTER_TYPE_UUID;
45+
import static org.openmrs.performance.Constants.VITALS_FORM_UUID;
46+
import static org.openmrs.performance.Constants.VITALS_LOCATION_UUID;
47+
import static org.openmrs.performance.Constants.WEIGHT_KG;
3648

3749
public class DoctorHttpService extends HttpService {
3850

@@ -347,4 +359,37 @@ public HttpRequestActionBuilder saveDiagnosis(String patientUuid, String encount
347359
}
348360
}
349361

362+
public HttpRequestActionBuilder saveVitalsData(String patientUuid) {
363+
ZonedDateTime now = ZonedDateTime.now();
364+
String encounterDatetime = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ"));
365+
366+
Map<String, Object> encounter = new HashMap<>();
367+
encounter.put("form", VITALS_FORM_UUID);
368+
encounter.put("patient", patientUuid);
369+
encounter.put("location", VITALS_LOCATION_UUID);
370+
encounter.put("encounterType", VITALS_ENCOUNTER_TYPE_UUID);
371+
encounter.put("encounterDatetime", encounterDatetime);
372+
373+
List<Map<String, Object>> observations = new ArrayList<>();
374+
observations.add(Map.of("concept", SYSTOLIC_BLOOD_PRESSURE, "value", 34));
375+
observations.add(Map.of("concept", DIASTOLIC_BLOOD_PRESSURE, "value", 44));
376+
observations.add(Map.of("concept", RESPIRATORY_RATE, "value", 100));
377+
observations.add(Map.of("concept", ARTERIAL_BLOOD_OXYGEN_SATURATION, "value", 20));
378+
observations.add(Map.of("concept", PULSE, "value", 120));
379+
observations.add(Map.of("concept", TEMPERATURE_C, "value", 28));
380+
observations.add(Map.of("concept", WEIGHT_KG, "value", 60));
381+
observations.add(Map.of("concept", HEIGHT_CM, "value", 121));
382+
observations.add(Map.of("concept", MID_UPPER_ARM_CIRCUMFERENCE, "value", 34));
383+
384+
encounter.put("obs", observations);
385+
386+
try {
387+
String body = new ObjectMapper().writeValueAsString(encounter); // Convert Map to JSON
388+
return http("Save Vitals").post("/openmrs/ws/rest/v1/encounter").body(StringBody(body));
389+
}
390+
catch (JsonProcessingException e) {
391+
throw new RuntimeException("Error converting visitNote to JSON", e);
392+
}
393+
}
394+
350395
}

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.openmrs.performance.http;
22

33
import io.gatling.javaapi.http.HttpRequestActionBuilder;
4-
54
import java.util.Set;
65
import java.util.StringJoiner;
76

@@ -115,4 +114,6 @@ public HttpRequestActionBuilder getActiveOrders(String patientUuid) {
115114
return http("Get Active Orders")
116115
.get("/openmrs/ws/rest/v1/order?patient="+patientUuid+"&careSetting=6f0c9a92-6f24-11e3-af88-005056821db0&status=ACTIVE&orderType=131168f4-15f5-102d-96e4-000c29c2a5d7&v=custom:(uuid,dosingType,orderNumber,accessionNumber,patient:ref,action,careSetting:ref,previousOrder:ref,dateActivated,scheduledDate,dateStopped,autoExpireDate,orderType:ref,encounter:ref,orderer:(uuid,display,person:(display)),orderReason,orderReasonNonCoded,orderType,urgency,instructions,commentToFulfiller,drug:(uuid,display,strength,dosageForm:(display,uuid),concept),dose,doseUnits:ref,frequency:ref,asNeeded,asNeededCondition,quantity,quantityUnits:ref,numRefills,dosingInstructions,duration,durationUnits:ref,route:ref,brandName,dispenseAsWritten)");
117116
}
117+
118+
118119
}

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ public ChainBuilder openVitalsAndBiometricsTab(String patientUuid) {
7373
MID_UPPER_ARM_CIRCUMFERENCE
7474
);
7575
return exec(httpService.getPatientObservations(patientUuid, vitals))
76-
.exec(httpService.getPatientObservations(patientUuid, biometrics));
76+
.exec(httpService.getPatientObservations(patientUuid, biometrics))
77+
.exec(httpService.saveVitalsData(patientUuid));
7778
}
7879

7980
public ChainBuilder openMedicationsTab(String patientUuid) {

0 commit comments

Comments
 (0)
Failed to load comments.