13
13
14
14
import static io .gatling .javaapi .core .CoreDsl .StringBody ;
15
15
import static io .gatling .javaapi .core .CoreDsl .bodyString ;
16
+ import static io .gatling .javaapi .core .CoreDsl .exec ;
16
17
import static io .gatling .javaapi .core .CoreDsl .jsonPath ;
17
18
import static io .gatling .javaapi .http .HttpDsl .http ;
18
19
import static org .openmrs .performance .Constants .ALLERGY_REACTION_UUID ;
19
20
import static org .openmrs .performance .Constants .CARE_SETTING_UUID ;
21
+ import static org .openmrs .performance .Constants .CLINICIAN_ENCOUNTER_ROLE ;
20
22
import static org .openmrs .performance .Constants .CODED_ALLERGEN_UUID ;
21
23
import static org .openmrs .performance .Constants .DAYS ;
22
24
import static org .openmrs .performance .Constants .DEFAULT_DOSING_TYPE ;
27
29
import static org .openmrs .performance .Constants .OUTPATIENT_CLINIC_LOCATION_UUID ;
28
30
import static org .openmrs .performance .Constants .SEVERITY_UUID ;
29
31
import static org .openmrs .performance .Constants .TABLET ;
32
+ import static org .openmrs .performance .Constants .VISIT_NOTE_CONCEPT_UUID ;
33
+ import static org .openmrs .performance .Constants .VISIT_NOTE_ENCOUNTER_TYPE_UUID ;
34
+ import static org .openmrs .performance .Constants .VISIT_NOTE_FORM_UUID ;
30
35
31
36
public class DoctorHttpService extends HttpService {
32
37
@@ -36,15 +41,11 @@ public HttpRequestActionBuilder getVisitTypes() {
36
41
}
37
42
38
43
public HttpRequestActionBuilder getVisitsOfPatient (String patientUuid ) {
39
- String customRepresentation = "custom:(uuid,encounters:(uuid,diagnoses:(uuid,display,rank,diagnosis),"
40
- + "form:(uuid,display),encounterDatetime,orders:full,"
41
- + "obs:(uuid,concept:(uuid,display,conceptClass:(uuid,display)),display,"
42
- + "groupMembers:(uuid,concept:(uuid,display),value:(uuid,display),display),"
43
- + "value,obsDatetime),encounterType:(uuid,display,viewPrivilege,editPrivilege),"
44
- + "encounterProviders:(uuid,display,encounterRole:(uuid,display),"
45
- + "provider:(uuid,person:(uuid,display)))),visitType:(uuid,name,display),"
46
- + "startDatetime,stopDatetime,patient,"
47
- + "attributes:(attributeType:ref,display,uuid,value))" ;
44
+ String customRepresentation = "custom:(uuid,display,voided,indication,startDatetime,stopDatetime,"
45
+ + "encounters:(uuid,display,encounterDatetime,form:(uuid,name),location:ref,encounterType:ref,encounterProviders:(uuid,display,provider:(uuid,display))),"
46
+ + "patient:(uuid,display)," + "visitType:(uuid,name,display),"
47
+ + "attributes:(uuid,display,attributeType:(name,datatypeClassname,uuid),value),"
48
+ + "location:(uuid,name,display))" ;
48
49
49
50
return http ("Get Visits of Patient" )
50
51
.get ("/openmrs/ws/rest/v1/visit?patient=" + patientUuid + "&v=" + customRepresentation );
@@ -287,4 +288,37 @@ public HttpRequestActionBuilder saveOrder(String patientUuid, String visitUuid,
287
288
throw new RuntimeException (e );
288
289
}
289
290
}
291
+
292
+ public HttpRequestActionBuilder saveVisitNote (String patientUuid , String currentUser , String value ) {
293
+ ZonedDateTime now = ZonedDateTime .now ();
294
+ String encounterDatetime = now .format (DateTimeFormatter .ofPattern ("yyyy-MM-dd'T'HH:mm:ss.SSSZ" ));
295
+
296
+ Map <String , Object > visitNote = new HashMap <>();
297
+ visitNote .put ("form" , VISIT_NOTE_FORM_UUID );
298
+ visitNote .put ("patient" , patientUuid );
299
+ visitNote .put ("location" , OUTPATIENT_CLINIC_LOCATION_UUID );
300
+ visitNote .put ("encounterType" , VISIT_NOTE_ENCOUNTER_TYPE_UUID );
301
+ visitNote .put ("encounterDatetime" , encounterDatetime );
302
+
303
+ Map <String , Object > encounterProvider = new HashMap <>();
304
+ encounterProvider .put ("encounterRole" , CLINICIAN_ENCOUNTER_ROLE );
305
+ encounterProvider .put ("provider" , currentUser );
306
+
307
+ Map <String , Object > obs = new HashMap <>();
308
+ obs .put ("concept" , Map .of ("uuid" , VISIT_NOTE_CONCEPT_UUID ));
309
+ obs .put ("value" , value );
310
+
311
+ visitNote .put ("encounterProviders" , List .of (encounterProvider ));
312
+ visitNote .put ("obs" , List .of (obs ));
313
+
314
+ try {
315
+ String body = new ObjectMapper ().writeValueAsString (visitNote ); // Convert Map to JSON
316
+
317
+ return http ("Save Visit Note" ).post ("/openmrs/ws/rest/v1/encounter" ).body (StringBody (body ))
318
+ .check (jsonPath ("$.uuid" ).saveAs ("encounterUuid" )); // Store encounter UUID
319
+ }
320
+ catch (JsonProcessingException e ) {
321
+ throw new RuntimeException ("Error converting visitNote to JSON" , e );
322
+ }
323
+ }
290
324
}
0 commit comments