From acb7d358de5689383bd7546d09ee89a1bf4a6d26 Mon Sep 17 00:00:00 2001 From: Bawanthathilan <bawantharathnayaka@gmail.com> Date: Tue, 25 Feb 2025 00:15:09 +0530 Subject: [PATCH 1/9] O3-4280: implement Save a note in Visit Patient scenario --- .../org/openmrs/performance/Constants.java | 6 ++ .../performance/http/DoctorHttpService.java | 66 +++++++++++++++++++ .../registries/DoctorRegistry.java | 7 ++ .../scenarios/VisitPatientScenario.java | 1 + 4 files changed, 80 insertions(+) diff --git a/src/test/java/org/openmrs/performance/Constants.java b/src/test/java/org/openmrs/performance/Constants.java index ccb5c44..c473813 100644 --- a/src/test/java/org/openmrs/performance/Constants.java +++ b/src/test/java/org/openmrs/performance/Constants.java @@ -42,4 +42,10 @@ public class Constants { public static final String ALLERGY_REACTION_UUID = "162553AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; public static final String CODED_ALLERGEN_UUID = "71617AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; public static final String SEVERITY_UUID = "1498AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; + + //Save Visits + 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"; + public static final String VISIT_NOTE_ENCOUNTER_TYPE_UUID = "d7151f82-c1f3-4152-a605-2f9ea7414a79"; + public static final String VISIT_NOTE_CONCEPT_UUID = "162169AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; } diff --git a/src/test/java/org/openmrs/performance/http/DoctorHttpService.java b/src/test/java/org/openmrs/performance/http/DoctorHttpService.java index 22f0657..9a76b04 100644 --- a/src/test/java/org/openmrs/performance/http/DoctorHttpService.java +++ b/src/test/java/org/openmrs/performance/http/DoctorHttpService.java @@ -13,10 +13,12 @@ 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.ALLERGY_REACTION_UUID; import static org.openmrs.performance.Constants.CARE_SETTING_UUID; +import static org.openmrs.performance.Constants.CLINICIAN_ENCOUNTER_ROLE; 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; @@ -27,6 +29,9 @@ 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; +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 { @@ -287,4 +292,65 @@ public HttpRequestActionBuilder saveOrder(String patientUuid, String visitUuid, throw new RuntimeException(e); } } + + 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); + + Map<String, Object> obs = new HashMap<>(); + obs.put("concept", Map.of("uuid", VISIT_NOTE_CONCEPT_UUID)); + obs.put("value", value); + + visitNote.put("encounterProviders", List.of(encounterProvider)); + visitNote.put("obs", List.of(obs)); + + try { + String body = new ObjectMapper().writeValueAsString(visitNote); // Convert Map to JSON + + return http("Save Visit Note") + .post("/openmrs/ws/rest/v1/encounter") + .body(StringBody(body)) + .check(jsonPath("$.uuid").saveAs("encounterUuid")); // Store encounter UUID + } catch (JsonProcessingException e) { + throw new RuntimeException("Error converting visitNote to JSON", e); + } + } + + + public HttpRequestActionBuilder saveDiagnosis(String patientUuid, String encounterUuid, String diagnosisUuid,String certainty, int rank) { + try { + 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); + + ObjectMapper objectMapper = new ObjectMapper(); + String body = objectMapper.writeValueAsString(patientDiagnosis); + + exec(seassion -> { + System.out.println(body); + return seassion; + }); + + return http("Save Patient Diagnosis") + .post("/openmrs/ws/rest/v1/patientdiagnoses") + .body(StringBody(body)); + + } catch (Exception e) { + throw new RuntimeException("Error while serializing diagnosis data", e); + } +} } diff --git a/src/test/java/org/openmrs/performance/registries/DoctorRegistry.java b/src/test/java/org/openmrs/performance/registries/DoctorRegistry.java index d37fc0f..f6f56b3 100644 --- a/src/test/java/org/openmrs/performance/registries/DoctorRegistry.java +++ b/src/test/java/org/openmrs/performance/registries/DoctorRegistry.java @@ -144,4 +144,11 @@ public ChainBuilder addDrugOrder(String patientUuid, String visitUuid, String cu ); } + + public ChainBuilder addVisitNote(String patientUuid, String currentUserUuid) { + String visitNoteText = "Patient visit note"; + return exec( + httpService.saveVisitNote(patientUuid, currentUserUuid, visitNoteText) + ); + } } diff --git a/src/test/java/org/openmrs/performance/scenarios/VisitPatientScenario.java b/src/test/java/org/openmrs/performance/scenarios/VisitPatientScenario.java index ba215df..94bc6a3 100644 --- a/src/test/java/org/openmrs/performance/scenarios/VisitPatientScenario.java +++ b/src/test/java/org/openmrs/performance/scenarios/VisitPatientScenario.java @@ -35,6 +35,7 @@ public ScenarioBuilder getScenarioBuilder() { .exec(registry.openImmunizationsTab("#{patient_uuid}")) .exec(registry.openAttachmentsTab("#{patient_uuid}")) .exec(registry.addDrugOrder("#{patient_uuid}", "#{visitUuid}", "#{currentUserUuid}")) + .exec(registry.addVisitNote("#{patient_uuid}", "#{currentUserUuid}")) .exec(registry.endVisit("#{patient_uuid}")); } } From ebb0822e6eeaf26394388d4425d1b042caf08406 Mon Sep 17 00:00:00 2001 From: Bawanthathilan <bawantharathnayaka@gmail.com> Date: Tue, 25 Feb 2025 10:39:09 +0530 Subject: [PATCH 2/9] remove saveDiagnosis and fix indentation --- .../performance/http/DoctorHttpService.java | 48 ++++--------------- 1 file changed, 8 insertions(+), 40 deletions(-) diff --git a/src/test/java/org/openmrs/performance/http/DoctorHttpService.java b/src/test/java/org/openmrs/performance/http/DoctorHttpService.java index 9a76b04..875c7c4 100644 --- a/src/test/java/org/openmrs/performance/http/DoctorHttpService.java +++ b/src/test/java/org/openmrs/performance/http/DoctorHttpService.java @@ -299,58 +299,26 @@ public HttpRequestActionBuilder saveVisitNote(String patientUuid, String current 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); - + Map<String, Object> obs = new HashMap<>(); obs.put("concept", Map.of("uuid", VISIT_NOTE_CONCEPT_UUID)); obs.put("value", value); - + visitNote.put("encounterProviders", List.of(encounterProvider)); visitNote.put("obs", List.of(obs)); - + try { String body = new ObjectMapper().writeValueAsString(visitNote); // Convert Map to JSON - return http("Save Visit Note") - .post("/openmrs/ws/rest/v1/encounter") - .body(StringBody(body)) - .check(jsonPath("$.uuid").saveAs("encounterUuid")); // Store encounter UUID - } catch (JsonProcessingException e) { + return http("Save Visit Note").post("/openmrs/ws/rest/v1/encounter").body(StringBody(body)) + .check(jsonPath("$.uuid").saveAs("encounterUuid")); // Store encounter UUID + } + catch (JsonProcessingException e) { throw new RuntimeException("Error converting visitNote to JSON", e); } } - - - public HttpRequestActionBuilder saveDiagnosis(String patientUuid, String encounterUuid, String diagnosisUuid,String certainty, int rank) { - try { - 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); - - ObjectMapper objectMapper = new ObjectMapper(); - String body = objectMapper.writeValueAsString(patientDiagnosis); - - exec(seassion -> { - System.out.println(body); - return seassion; - }); - - return http("Save Patient Diagnosis") - .post("/openmrs/ws/rest/v1/patientdiagnoses") - .body(StringBody(body)); - - } catch (Exception e) { - throw new RuntimeException("Error while serializing diagnosis data", e); - } -} } From dc17c06120a01d21a09e9e15766ea307abba2e70 Mon Sep 17 00:00:00 2001 From: Bawanthathilan <bawantharathnayaka@gmail.com> Date: Tue, 25 Feb 2025 10:41:57 +0530 Subject: [PATCH 3/9] fix indentation --- .../org/openmrs/performance/registries/DoctorRegistry.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/test/java/org/openmrs/performance/registries/DoctorRegistry.java b/src/test/java/org/openmrs/performance/registries/DoctorRegistry.java index f6f56b3..dc6760d 100644 --- a/src/test/java/org/openmrs/performance/registries/DoctorRegistry.java +++ b/src/test/java/org/openmrs/performance/registries/DoctorRegistry.java @@ -147,8 +147,6 @@ public ChainBuilder addDrugOrder(String patientUuid, String visitUuid, String cu public ChainBuilder addVisitNote(String patientUuid, String currentUserUuid) { String visitNoteText = "Patient visit note"; - return exec( - httpService.saveVisitNote(patientUuid, currentUserUuid, visitNoteText) - ); + return exec(httpService.saveVisitNote(patientUuid, currentUserUuid, visitNoteText)); } } From 65803f875b115a0a11517e05d1e80775d6306752 Mon Sep 17 00:00:00 2001 From: Bawanthathilan <bawantharathnayaka@gmail.com> Date: Tue, 25 Feb 2025 10:44:04 +0530 Subject: [PATCH 4/9] change comment in Constants.java --- src/test/java/org/openmrs/performance/Constants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/openmrs/performance/Constants.java b/src/test/java/org/openmrs/performance/Constants.java index c473813..6b2e74d 100644 --- a/src/test/java/org/openmrs/performance/Constants.java +++ b/src/test/java/org/openmrs/performance/Constants.java @@ -43,7 +43,7 @@ public class Constants { public static final String CODED_ALLERGEN_UUID = "71617AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; public static final String SEVERITY_UUID = "1498AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; - //Save Visits + //Visit Notes 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"; public static final String VISIT_NOTE_ENCOUNTER_TYPE_UUID = "d7151f82-c1f3-4152-a605-2f9ea7414a79"; From a03acd7ec4cb6e8af76da1fa2ebccf4ce33d47c5 Mon Sep 17 00:00:00 2001 From: Bawanthathilan <bawantharathnayaka@gmail.com> Date: Tue, 25 Feb 2025 10:55:08 +0530 Subject: [PATCH 5/9] change customRepresentation in Get visits of patent --- .../performance/http/DoctorHttpService.java | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/test/java/org/openmrs/performance/http/DoctorHttpService.java b/src/test/java/org/openmrs/performance/http/DoctorHttpService.java index 875c7c4..89e03e7 100644 --- a/src/test/java/org/openmrs/performance/http/DoctorHttpService.java +++ b/src/test/java/org/openmrs/performance/http/DoctorHttpService.java @@ -41,15 +41,11 @@ public HttpRequestActionBuilder getVisitTypes() { } public HttpRequestActionBuilder getVisitsOfPatient(String patientUuid) { - String customRepresentation = "custom:(uuid,encounters:(uuid,diagnoses:(uuid,display,rank,diagnosis)," - + "form:(uuid,display),encounterDatetime,orders:full," - + "obs:(uuid,concept:(uuid,display,conceptClass:(uuid,display)),display," - + "groupMembers:(uuid,concept:(uuid,display),value:(uuid,display),display)," - + "value,obsDatetime),encounterType:(uuid,display,viewPrivilege,editPrivilege)," - + "encounterProviders:(uuid,display,encounterRole:(uuid,display)," - + "provider:(uuid,person:(uuid,display)))),visitType:(uuid,name,display)," - + "startDatetime,stopDatetime,patient," - + "attributes:(attributeType:ref,display,uuid,value))"; + String customRepresentation = "custom:(uuid,display,voided,indication,startDatetime,stopDatetime," + + "encounters:(uuid,display,encounterDatetime,form:(uuid,name),location:ref,encounterType:ref,encounterProviders:(uuid,display,provider:(uuid,display)))," + + "patient:(uuid,display)," + "visitType:(uuid,name,display)," + + "attributes:(uuid,display,attributeType:(name,datatypeClassname,uuid),value)," + + "location:(uuid,name,display))"; return http("Get Visits of Patient") .get("/openmrs/ws/rest/v1/visit?patient=" + patientUuid + "&v=" + customRepresentation); From 2168ef419e62db1db921579cdbee673c577f3ab6 Mon Sep 17 00:00:00 2001 From: Bawanthathilan <bawantharathnayaka@gmail.com> Date: Tue, 25 Feb 2025 12:21:28 +0530 Subject: [PATCH 6/9] add some pause after AddDrugOrder and after AddVisitNote --- .../org/openmrs/performance/scenarios/VisitPatientScenario.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/java/org/openmrs/performance/scenarios/VisitPatientScenario.java b/src/test/java/org/openmrs/performance/scenarios/VisitPatientScenario.java index 94bc6a3..cbb37fe 100644 --- a/src/test/java/org/openmrs/performance/scenarios/VisitPatientScenario.java +++ b/src/test/java/org/openmrs/performance/scenarios/VisitPatientScenario.java @@ -35,7 +35,9 @@ public ScenarioBuilder getScenarioBuilder() { .exec(registry.openImmunizationsTab("#{patient_uuid}")) .exec(registry.openAttachmentsTab("#{patient_uuid}")) .exec(registry.addDrugOrder("#{patient_uuid}", "#{visitUuid}", "#{currentUserUuid}")) + .pause(5) .exec(registry.addVisitNote("#{patient_uuid}", "#{currentUserUuid}")) + .pause(10) .exec(registry.endVisit("#{patient_uuid}")); } } From b5758827483ee5e7433cce5a0ec980569b3b4daa Mon Sep 17 00:00:00 2001 From: Bawanthathilan <bawantharathnayaka@gmail.com> Date: Tue, 25 Feb 2025 12:50:38 +0530 Subject: [PATCH 7/9] change custom representation in getCurrentVisit --- src/test/java/org/openmrs/performance/http/HttpService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/openmrs/performance/http/HttpService.java b/src/test/java/org/openmrs/performance/http/HttpService.java index 9a7522d..4407ff9 100644 --- a/src/test/java/org/openmrs/performance/http/HttpService.java +++ b/src/test/java/org/openmrs/performance/http/HttpService.java @@ -82,7 +82,7 @@ public HttpRequestActionBuilder getVisitQueueEntry(String patientUuid) { public HttpRequestActionBuilder getCurrentVisit(String patientUuid) { return http("Get Patient's current visit") - .get("/openmrs/ws/rest/v1/visit?patient="+patientUuid+"&v=custom:(uuid,encounters:(uuid,encounterDatetime,form:(uuid,name),location:ref,encounterType:ref,encounterProviders:(uuid,display,provider:(uuid,display,person:(display))),patient:(uuid,uuid),visitType:(uuid,name,display),attributes:(uuid,display,attributeType:(name,datatypeClassname,uuid),value),location:(uuid,name,display),startDatetime,stopDatetime)&includeInactive=false"); + .get("/openmrs/ws/rest/v1/visit?patient="+patientUuid+"&v=custom:(uuid,encounters:(uuid,encounterDatetime,form:(uuid,name),location:ref,encounterType:ref,encounterProviders:(uuid,display,provider:(uuid,display,person:(display)))),patient:(uuid,uuid),visitType:(uuid,name,display),attributes:(uuid,display,attributeType:(name,datatypeClassname,uuid),value),location:(uuid,name,display),startDatetime,stopDatetime)))"); } public HttpRequestActionBuilder getPatientSummaryData(String patientUuid) { From 92ef73f705e780e810d0c995f830f7224787fd10 Mon Sep 17 00:00:00 2001 From: Bawanthathilan <bawantharathnayaka@gmail.com> Date: Tue, 25 Feb 2025 14:07:02 +0530 Subject: [PATCH 8/9] change custom representation in getCurrentVisit and send real time --- .../java/org/openmrs/performance/http/DoctorHttpService.java | 4 ++++ src/test/java/org/openmrs/performance/http/HttpService.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/openmrs/performance/http/DoctorHttpService.java b/src/test/java/org/openmrs/performance/http/DoctorHttpService.java index 89e03e7..97674f6 100644 --- a/src/test/java/org/openmrs/performance/http/DoctorHttpService.java +++ b/src/test/java/org/openmrs/performance/http/DoctorHttpService.java @@ -290,11 +290,15 @@ public HttpRequestActionBuilder saveOrder(String patientUuid, String visitUuid, } public HttpRequestActionBuilder saveVisitNote(String patientUuid, String currentUser, String value) { + ZonedDateTime now = ZonedDateTime.now(); + String formattedStopDateTime = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ")); + 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); + visitNote.put("encounterDatetime", formattedStopDateTime); Map<String, Object> encounterProvider = new HashMap<>(); encounterProvider.put("encounterRole", CLINICIAN_ENCOUNTER_ROLE); diff --git a/src/test/java/org/openmrs/performance/http/HttpService.java b/src/test/java/org/openmrs/performance/http/HttpService.java index 4407ff9..02a2257 100644 --- a/src/test/java/org/openmrs/performance/http/HttpService.java +++ b/src/test/java/org/openmrs/performance/http/HttpService.java @@ -82,7 +82,7 @@ public HttpRequestActionBuilder getVisitQueueEntry(String patientUuid) { public HttpRequestActionBuilder getCurrentVisit(String patientUuid) { return http("Get Patient's current visit") - .get("/openmrs/ws/rest/v1/visit?patient="+patientUuid+"&v=custom:(uuid,encounters:(uuid,encounterDatetime,form:(uuid,name),location:ref,encounterType:ref,encounterProviders:(uuid,display,provider:(uuid,display,person:(display)))),patient:(uuid,uuid),visitType:(uuid,name,display),attributes:(uuid,display,attributeType:(name,datatypeClassname,uuid),value),location:(uuid,name,display),startDatetime,stopDatetime)))"); + .get("/openmrs/ws/rest/v1/visit?patient="+patientUuid+"&v=custom:(uuid,encounters:(uuid,diagnoses:(uuid,display,rank,diagnosis),form:(uuid,display),encounterDatetime,orders:full,obs:full,encounterType:(uuid,display,viewPrivilege,editPrivilege),encounterProviders:(uuid,display,encounterRole:(uuid,display),provider:(uuid,person:(uuid,display)))),visitType:(uuid,name,display),startDatetime,stopDatetime,patient,attributes:(attributeType:ref,display,uuid,value)&limit=5"); } public HttpRequestActionBuilder getPatientSummaryData(String patientUuid) { From 1d5fef1591fdca35c59e683ac387adae0fecf2aa Mon Sep 17 00:00:00 2001 From: Bawanthathilan <bawantharathnayaka@gmail.com> Date: Tue, 25 Feb 2025 14:26:22 +0530 Subject: [PATCH 9/9] change custom representation in getCurrentVisit and send real time --- .../java/org/openmrs/performance/http/DoctorHttpService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/openmrs/performance/http/DoctorHttpService.java b/src/test/java/org/openmrs/performance/http/DoctorHttpService.java index 97674f6..df90443 100644 --- a/src/test/java/org/openmrs/performance/http/DoctorHttpService.java +++ b/src/test/java/org/openmrs/performance/http/DoctorHttpService.java @@ -291,14 +291,14 @@ public HttpRequestActionBuilder saveOrder(String patientUuid, String visitUuid, public HttpRequestActionBuilder saveVisitNote(String patientUuid, String currentUser, String value) { ZonedDateTime now = ZonedDateTime.now(); - String formattedStopDateTime = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ")); + String encounterDatetime = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ")); 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); - visitNote.put("encounterDatetime", formattedStopDateTime); + visitNote.put("encounterDatetime", encounterDatetime); Map<String, Object> encounterProvider = new HashMap<>(); encounterProvider.put("encounterRole", CLINICIAN_ENCOUNTER_ROLE);