ShruthiPitta/AndroidBootCamp 0
TW android boot camp
Modals and popups provider for Angular.js applications
OpenMRS API and web application code
ShruthiPitta/openmrs-module-bahmniapps 0
Angular.JS based UI application that is used by Clinicians and Patient care providers.
ShruthiPitta/openmrs-module-emrapi 0
Higher-level APIs to support building EMR functionality in OpenMRS, to supplement the data-level APIs in the OpenMRS core.
Pull request review commentBahmni/bahmni-java-utils
BAH-1127|Buvaneswari|OpenElis not syncing with OpenMRS
public HttpRequestDetails getRequestDetails(URI uri) { @Override public HttpRequestDetails refreshRequestDetails(URI uri) {- DefaultHttpClient httpClient = new DefaultHttpClient(); try {+ CookieStore cookieStore = new BasicCookieStore(); HttpContext httpContext = new BasicHttpContext();- httpContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);-- httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, authenticationDetails.getReadTimeout());- httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, authenticationDetails.getConnectionTimeout());-+ httpContext.setAttribute(HttpClientContext.COOKIE_STORE, cookieStore); HttpPost httpPost = new HttpPost(uri); logger.info(String.format("Executing request: %s", httpPost.getRequestLine()));+ RequestConfig requestConfig = RequestConfig.custom()+ .setConnectTimeout(authenticationDetails.getReadTimeout())+ .setSocketTimeout(60000)
@buvaneswari-arun can we have constant defined here instead of hardcoding the value
comment created time in 44 minutes
PR opened Bahmni/openmrs-module-bahmni.ie.apps
pr created time in 4 hours
push eventBahmni/openmrs-module-appointments
commit sha 0db57629bacc8e97991e1c328aeb938d074f6b29
Bindu | BAH-1136 | Change query to get provider from patient appointment provider table
commit sha 1bdd81cb23abfa2462d4298df8939d9d68bd6f19
Merge pull request #52 from Bahmni/BAH-1136 Bindu | BAH-1136 | Change query to get provider from patient appointment provider table
push time in 4 hours
PR merged Bahmni/openmrs-module-appointments
https://bahmni.atlassian.net/browse/BAH-1136
pr closed time in 4 hours
Pull request review commentBahmni/default-config
BAH-1125 - Swati/Praveena - Hide 'Join teleconsultation' button on non-teleconsultation Appointments
angular.module('bahmni.common.displaycontrol.custom') var jitsiMeetingId = $scope.upcomingAppointmentsUUIDs[appointmentIndex]; appService.setTeleConsultationVars(jitsiMeetingId, true); };+ $scope.showJoinTeleconsultationOption = function (appointmentIndex) {
Please refrain from hard-coding texts. 'Scheduled' - please pull it from config.
comment created time in 5 hours
PR opened Bahmni/openmrs-module-appointments
https://bahmni.atlassian.net/browse/BAH-1136
pr created time in 5 hours
Pull request review commentBahmni/bahmni-core
BAH-1127|Buvaneswari|openElis to OpenMRS sync
<version>${calculationModuleVersion}</version> <scope>test</scope> </dependency>+
Agreed. Will remove this.
comment created time in 18 hours
Pull request review commentBahmni/bahmni-core
BAH-1127|Buvaneswari|openElis to OpenMRS sync
<version>${calculationModuleVersion}</version> <scope>test</scope> </dependency>+
are these needed? jaxb are all XML schema and binding dependencies.
comment created time in 18 hours
Pull request review commentBahmni/bahmni-java-utils
BAH-1127|Buvaneswari|OpenElis not syncing with OpenMRS
public HttpResponse get(HttpRequestDetails requestDetails) { } public HttpResponse get(HttpRequestDetails requestDetails, HttpHeaders httpHeaders) {- defaultHttpClient = (connectionManager == null) ? new DefaultHttpClient() : new DefaultHttpClient(connectionManager);- defaultHttpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, readTimeout);- defaultHttpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, connectTimeout); HttpGet httpGet = new HttpGet(requestDetails.getUri());+ RequestConfig requestConfig = RequestConfig.custom()+ .setConnectTimeout(readTimeout)+ .setSocketTimeout(connectTimeout)+ .build();+ if(connectionManager == null) {+ connectionManager = new PoolingHttpClientConnectionManager();+ }+ closeableHttpClient = HttpClientBuilder.create()
you could have done with try with resources block, then you would not have to handle the closing part. But if caller is calling the closeConnection() and you wouldn't want to refactor that - then its ok
comment created time in 18 hours
Pull request review commentBahmni/bahmni-java-utils
BAH-1127|Buvaneswari|OpenElis not syncing with OpenMRS
<scope>test</scope> </dependency> </dependencies>+ <build>
is this required? the httpcomponents is mentioned as provided dependency anyway
comment created time in 18 hours
issue openedBahmni/bahmni-playbooks
Successfully installed bahmni, but failed to install dcm4chee.
Use docker container (centos 7.6) and bahmni install command to deploy bahmni(0.92) successfully, and can access services such as Bahmni-EMR and Bahmni-LAB through the web. But cannot access http://172.17.0.2/dcm4chee-web3, because dcm4chee has not been installed correctly. Querying Bahmni Wiki: Advanced Installation Options did not find out how to install dcm4chee through bahmni install. Any help would be appreciated.
bahmni start:
PLAY [pacs-integration-db:pacs-integration-db-slave] ***************************
skipping: no hosts matched
[WARNING]: Could not match supplied host pattern, ignoring: pacs-integration
PLAY [pacs-integration] ********************************************************
skipping: no hosts matched
PLAY [atomfeed-console] ********************************************************
META: ran handlers
META: ran handlers
META: ran handlers
[WARNING]: Could not match supplied host pattern, ignoring: dcm4chee-db
[WARNING]: Could not match supplied host pattern, ignoring: dcm4chee-db-slave
PLAY [dcm4chee-db,dcm4chee-db-slave] *******************************************
skipping: no hosts matched
[WARNING]: Could not match supplied host pattern, ignoring: dcm4chee
PLAY [dcm4chee] ****************************************************************
skipping: no hosts matched
[WARNING]: Could not match supplied host pattern, ignoring: bahmni-event-log-
service
PLAY [bahmni-event-log-service] ************************************************
skipping: no hosts matched
created time in 2 days
Pull request review commentBahmni/default-config
BAH-1125 - Swati/Praveena - Hide 'Join teleconsultation' button on non-teleconsultation Appointments
<h2 class="section-title" ng-click="goToListView()"><span style="border-bottom: {{detail}} </td> <td>- <button style="background: #669998; color: white;" ng-if="appointment.DASHBOARD_APPOINTMENTS_STATUS_KEY == 'Scheduled'" ng-click="openJitsiMeet($index)">+ <button style="background: #669998; color: white;" ng-if="appointment.DASHBOARD_APPOINTMENTS_STATUS_KEY == 'Scheduled' && appointment.DASHBOARD_APPOINTMENTS_TELECONSULTATION == true" ng-click="openJitsiMeet($index)">
changes done
comment created time in 3 days
Pull request review commentBahmni/bahmni-offline-sync
BAh-1106 | Gopi,Shriram | Changes Related To Zipping of AddressHierarchy and OfflineConcepts
+package org.bahmni.module.bahmniOfflineSync.strategy;++import org.apache.commons.logging.Log;+import org.apache.commons.logging.LogFactory;+import org.bahmni.module.bahmniOfflineSync.eventLog.EventLog;+import org.bahmni.module.bahmniOfflineSync.utils.AddressHierarchyLevelWithLevelEntryName;+import org.bahmni.module.bahmniOfflineSync.utils.SelectiveSyncStrategyHelper;+import org.ict4h.atomfeed.server.domain.EventRecord;+import org.openmrs.*;+import org.openmrs.api.context.Context;+import org.openmrs.module.addresshierarchy.AddressHierarchyEntry;+import org.openmrs.module.addresshierarchy.AddressHierarchyLevel;+import org.openmrs.module.addresshierarchy.service.AddressHierarchyService;+import org.springframework.util.StringUtils;++import java.sql.SQLException;+import java.util.*;++public class SelectiveSyncStrategy extends AbstractOfflineSyncStrategy {+ private static final String ATTRIBUTE_TYPE_NAME = "addressCode";+ protected static Log log = LogFactory.getLog(SelectiveSyncStrategy.class);+ private static AddressHierarchyService addressHierarchyService = Context.getService(AddressHierarchyService.class);++ public SelectiveSyncStrategy() throws SQLException {+ super();++ }++ protected String evaluateFilterForPatient(String uuid) {+ String patientFilter = null;+ Patient patient = patientService.getPatientByUuid(uuid);++ if (patient != null && patient.getAttribute(ATTRIBUTE_TYPE_NAME) != null) {+ patientFilter = patient.getAttribute(ATTRIBUTE_TYPE_NAME).getValue();+ }++ return patientFilter;+ }++ private String evaluateFilterForEncounter(String uuid) {+ String filter = null;+ Encounter encounter = encounterService.getEncounterByUuid(uuid);+ if (encounter != null)+ filter = evaluateFilterForPatient(encounter.getPatient().getUuid());+ return filter;+ }++ private String evaluateFilterForAddressHierarchy(String uuid) {+ String addressHierarchyFilter = null;+ AddressHierarchyService addressHierarchyService = Context.getService(AddressHierarchyService.class);+ AddressHierarchyEntry addressHierarchyEntry = addressHierarchyService.getAddressHierarchyEntryByUuid(uuid);+ if (addressHierarchyEntry != null && addressHierarchyEntry.getLevel() != null && addressHierarchyEntry.getLevel().getId() > 3) {+ addressHierarchyFilter = addressHierarchyEntry.getUserGeneratedId();+ }+ return addressHierarchyFilter;+ }+++ public Map<String, List<String>> getFilterForDevice(String providerUuid, String addressUuid, String loginLocationUuid) {+ if(addressUuid.equals("null") || addressUuid.isEmpty()) {+ throw new RuntimeException("Please give address for this login location in openmrs");+ }+ Map<String, List<String>> categoryFilterMap = new HashMap();+ AddressHierarchyService addressHierarchyService = Context.getService(AddressHierarchyService.class);+ AddressHierarchyEntry addressHierarchyEntry = addressHierarchyService.getAddressHierarchyEntryByUuid(addressUuid);+ List transactionalDataFilters = getTransactionalDataFilters(loginLocationUuid, addressHierarchyService, addressHierarchyEntry);+ categoryFilterMap.put("patient", transactionalDataFilters);+ categoryFilterMap.put("encounter", transactionalDataFilters);+ categoryFilterMap.put("addressHierarchy", getFiltersForAddressHierarchy(addressHierarchyEntry));+ //categoryFilterMap.put("parentAddressHierarchy", new ArrayList<String>());+ categoryFilterMap.put("offline-concepts", new ArrayList<String>());+ categoryFilterMap.put("forms", new ArrayList<>());+ return categoryFilterMap;+ }++ private List getTransactionalDataFilters(String loginLocationUuid, AddressHierarchyService addressHierarchyService, AddressHierarchyEntry addressHierarchyEntry) {+ List transactionalDataFilters = new ArrayList();+ if (addressHierarchyEntry != null) {+ LocationAttributeType catchmentFiltersAttribute = locationService.getLocationAttributeTypeByName("catchmentFilters");+ String userGeneratedId = addressHierarchyEntry.getUserGeneratedId();+ LocationAttribute catchmentFilters = getCatchmentFilters(loginLocationUuid, catchmentFiltersAttribute);+ List<AddressHierarchyEntry> childAddressHierarchyEntries = addressHierarchyService.getChildAddressHierarchyEntries(addressHierarchyEntry);+ List<String> transactionalFilters = getCatchmentIds(catchmentFilters, childAddressHierarchyEntries, addressHierarchyService, addressHierarchyEntry);+ transactionalDataFilters.add(userGeneratedId);+ transactionalDataFilters.addAll(transactionalFilters);+ }+ return transactionalDataFilters;+ }++ private LocationAttribute getCatchmentFilters(String loginLocationUuid, LocationAttributeType catchmentFiltersAttribute) {+ Location location = locationService.getLocationByUuid(loginLocationUuid);+ List<LocationAttribute> attributes = (List<LocationAttribute>) location.getActiveAttributes();+ for (LocationAttribute attribute : attributes) {+ if (attribute.getAttributeType().equals(catchmentFiltersAttribute)) {+ return attribute;+ }+ }+ return null;+ }++ private List<String> getCatchmentIds(LocationAttribute catchmentFilters, List<AddressHierarchyEntry> childAddressHierarchyEntries, AddressHierarchyService addressHierarchyService, AddressHierarchyEntry addressHierarchyEntry) {+ List<String> wardIDs = new ArrayList();+ if (catchmentFilters != null) {+ String wardsName = trim(catchmentFilters.getValue().toString());+ Set<String> wardsNameList = StringUtils.commaDelimitedListToSet(wardsName);+ for (String wardName : wardsNameList) {+ AddressHierarchyEntry childAddressHierarchyEntry = addressHierarchyService.getChildAddressHierarchyEntryByName(addressHierarchyEntry, wardName);+ if (childAddressHierarchyEntry == null) {+ throw new RuntimeException("Please check your catchmentFilters configuration in openmrs!!");+ } else {+ getAllWardIds(childAddressHierarchyEntry, addressHierarchyService, wardIDs);+ }+ }+ } else {+ updateWardIds(addressHierarchyService, wardIDs, childAddressHierarchyEntries);+ }+ return wardIDs;+ }++ private void getAllWardIds(AddressHierarchyEntry addressHierarchyEntry, AddressHierarchyService addressHierarchyService, List<String> wardIDs) {+ if (addressHierarchyEntry == null) {+ return;+ }+ wardIDs.add(addressHierarchyEntry.getUserGeneratedId());+ List<AddressHierarchyEntry> childAddressHierarchyEntries = addressHierarchyService.getChildAddressHierarchyEntries(addressHierarchyEntry);+ updateWardIds(addressHierarchyService, wardIDs, childAddressHierarchyEntries);+ }++ private void updateWardIds(AddressHierarchyService addressHierarchyService, List<String> wardIDs, List<AddressHierarchyEntry> childAddressHierarchyEntries) {+ for (AddressHierarchyEntry childAddressHierarchyEntry : childAddressHierarchyEntries) {+ getAllWardIds(childAddressHierarchyEntry, addressHierarchyService, wardIDs);+ }+ }++ private String trim(String content) {+ content = content.trim();+ return content.replaceAll("(\\s*,\\s*)", ",");+ }++ @Override+ public List<String> getEventCategoriesList() {+ List<String> eventCategoryList = new ArrayList();++ eventCategoryList.add("patient");+ eventCategoryList.add("encounter");+ eventCategoryList.add("addressHierarchy");+ eventCategoryList.add("parentAddressHierarchy");+ eventCategoryList.add("offline-concepts");+ eventCategoryList.add("forms");++ return eventCategoryList;+ }++++ private List<String> getFiltersForAddressHierarchy(AddressHierarchyEntry addressHierarchyEntry) {+ List addressHierarchyFilters = new ArrayList();+ while (addressHierarchyEntry.getParent() != null) {+ if (addressHierarchyEntry.getUserGeneratedId().length() == 6) {+ addressHierarchyFilters.add(addressHierarchyEntry.getUserGeneratedId());+ break;+ }+ addressHierarchyEntry = addressHierarchyEntry.getParent();+ }+ return addressHierarchyFilters;+ }++ @Override+ public List<EventLog> getEventLogsFromEventRecords(List<EventRecord> eventRecords) {+ List<EventLog> eventLogs = new ArrayList<EventLog>();++ for (EventRecord er : eventRecords) {+ EventLog eventLog = new EventLog(er.getUuid(),er.getCategory(),er.getTimeStamp(),er.getContents(), null, er.getUuid());+ String category = er.getCategory();+ String uuid = getUuidFromURL(er.getContents());+ String filter = null;++ if (!uuid.isEmpty()) {+ if (category.equalsIgnoreCase("all-concepts")) {+ if (isOfflineConceptEvent(uuid)) {+ eventLog.setCategory("offline-concepts");+ } else {+ eventLog.setCategory("concepts");+ }+ }++ if (category.equalsIgnoreCase("Patient")|| category.equalsIgnoreCase("LabOrderResults")) {+ // filter = evaluateFilterForPatient(uuid);
Removed comments @binduak
comment created time in 3 days
Pull request review commentBahmni/bahmni-connect
'use strict'; angular.module('bahmni.home')- .controller('DashboardController', ['$scope', '$state', 'appService', 'locationService', 'spinner', '$bahmniCookieStore', '$window', '$q', 'offlineService', 'schedulerService', 'eventQueue', 'offlineDbService', 'androidDbService', 'networkStatusService', 'messagingService', '$translate',- function ($scope, $state, appService, locationService, spinner, $bahmniCookieStore, $window, $q, offlineService, schedulerService, eventQueue, offlineDbService, androidDbService, networkStatusService, messagingService, $translate) {+ .controller('DashboardController', ['$scope', '$state', 'appService', 'locationService', 'spinner', '$bahmniCookieStore', '$window', '$q', 'offlineService', 'schedulerService', 'eventQueue', 'offlineDbService', 'androidDbService', 'networkStatusService', 'messagingService', '$translate', '$http',+ function ($scope, $state, appService, locationService, spinner, $bahmniCookieStore, $window, $q, offlineService, schedulerService, eventQueue, offlineDbService, androidDbService, networkStatusService, messagingService, $translate, $http) { $scope.appExtensions = appService.getAppDescriptor().getExtensions($state.current.data.extensionPointId, "link") || []; $scope.selectedLocationUuid = {}; $scope.isOfflineApp = offlineService.isOfflineApp(); $scope.isPWAapp = offlineService.isChromeApp();+ $scope.isSelectiveSyncStrategy = false;++ var verifySelectiveSync = function () {+ $http.get('/openmrs/ws/rest/v1/eventlog/filter/globalProperty/', {+ method: "GET",+ params: { q: 'bahmniOfflineSync.strategy' },
We didn't have any service that will do the needful Bindu. if it's better to use service we will create a new service . please suggest us .
comment created time in 3 days
push eventBahmni/openmrs-module-appointments
commit sha c5c09c29a5efc3a34fed2a4e43fd17b92ba90278
BAH-1133: Setting up time zone sensitive tests, adjusting GitHub Actions. (#51) * BAH-1133: Setting up time zone sensitive tests, adjusting GitHub Actions. * BAH-1133: setAppointments_shouldThrowWhenFrequecyIsDecreasedSuchThatEndDateIsInPast to run on IST. * BAH-1133: Removed already simplified shouldThrowExceptionWhenFrequecyIsDecreasedSuchThatEndateIsInPast. * BAH-1133: Simplifying further setAppointments_shouldThrowWhenFrequecyIsDecreasedSuchThatEndDateIsInPast.
push time in 3 days
PR merged Bahmni/openmrs-module-appointments
Ticket
https://bahmni.atlassian.net/browse/BAH-1133
pr closed time in 3 days
Pull request review commentBahmni/openmrs-module-appointments
BAH-1133: Setting up time zone sensitive tests, adjusting GitHub Actions.
public void shouldReturnEndOfDay() { @Test public void shouldConvertDateToMilliSeconds() throws ParseException {+ TimeZone.setDefault(TimeZone.getTimeZone("IST"));
my bad...i missed going through the card before having a look at PR. Totally makes sense
comment created time in 3 days
pull request commentBahmni/bahmni-connect
@gopikrishna-yaramothu the below files doesn't have any new test cases added selectiveSyncService.js , selectiveSchedulerService.js
comment created time in 3 days
Pull request review commentBahmni/bahmni-connect
'use strict'; angular.module('bahmni.registration')- .controller('NavigationController', ['$scope', '$rootScope', '$location', 'sessionService', '$window', 'appService', '$sce', 'offlineService', 'schedulerService',- function ($scope, $rootScope, $location, sessionService, $window, appService, $sce, offlineService, schedulerService) {+ .controller('NavigationController', ['$scope', '$rootScope', '$location', 'sessionService', '$window', 'appService', '$sce', 'offlineService', 'schedulerService', '$http',+ function ($scope, $rootScope, $location, sessionService, $window, appService, $sce, offlineService, schedulerService, $http) { $scope.extensions = appService.getAppDescriptor().getExtensions("org.bahmni.registration.navigation", "link"); $scope.isOfflineApp = offlineService.isOfflineApp();+ $scope.isSelectiveSyncStrategy = false;++ var verifySelectiveSync = function () {+ $http.get('/openmrs/ws/rest/v1/eventlog/filter/globalProperty/', {+ method: "GET",+ params: { q: 'bahmniOfflineSync.strategy' },
@gopikrishna-yaramothu same as mentioned above
comment created time in 3 days
Pull request review commentBahmni/bahmni-connect
'use strict'; angular.module('bahmni.home')- .controller('DashboardController', ['$scope', '$state', 'appService', 'locationService', 'spinner', '$bahmniCookieStore', '$window', '$q', 'offlineService', 'schedulerService', 'eventQueue', 'offlineDbService', 'androidDbService', 'networkStatusService', 'messagingService', '$translate',- function ($scope, $state, appService, locationService, spinner, $bahmniCookieStore, $window, $q, offlineService, schedulerService, eventQueue, offlineDbService, androidDbService, networkStatusService, messagingService, $translate) {+ .controller('DashboardController', ['$scope', '$state', 'appService', 'locationService', 'spinner', '$bahmniCookieStore', '$window', '$q', 'offlineService', 'schedulerService', 'eventQueue', 'offlineDbService', 'androidDbService', 'networkStatusService', 'messagingService', '$translate', '$http',+ function ($scope, $state, appService, locationService, spinner, $bahmniCookieStore, $window, $q, offlineService, schedulerService, eventQueue, offlineDbService, androidDbService, networkStatusService, messagingService, $translate, $http) { $scope.appExtensions = appService.getAppDescriptor().getExtensions($state.current.data.extensionPointId, "link") || []; $scope.selectedLocationUuid = {}; $scope.isOfflineApp = offlineService.isOfflineApp(); $scope.isPWAapp = offlineService.isChromeApp();+ $scope.isSelectiveSyncStrategy = false;++ var verifySelectiveSync = function () {+ $http.get('/openmrs/ws/rest/v1/eventlog/filter/globalProperty/', {+ method: "GET",+ params: { q: 'bahmniOfflineSync.strategy' },
this shouldn't be part of controller. Do we have any service that it talks to. If yes, we can move the code to the service file @gopikrishna-yaramothu
comment created time in 3 days
Pull request review commentBahmni/bahmni-offline-sync
BAh-1106 | Gopi,Shriram | Changes Related To Zipping of AddressHierarchy and OfflineConcepts
+package org.bahmni.module.bahmniOfflineSync.strategy;++import org.apache.commons.logging.Log;+import org.apache.commons.logging.LogFactory;+import org.bahmni.module.bahmniOfflineSync.eventLog.EventLog;+import org.bahmni.module.bahmniOfflineSync.utils.AddressHierarchyLevelWithLevelEntryName;+import org.bahmni.module.bahmniOfflineSync.utils.SelectiveSyncStrategyHelper;+import org.ict4h.atomfeed.server.domain.EventRecord;+import org.openmrs.*;+import org.openmrs.api.context.Context;+import org.openmrs.module.addresshierarchy.AddressHierarchyEntry;+import org.openmrs.module.addresshierarchy.AddressHierarchyLevel;+import org.openmrs.module.addresshierarchy.service.AddressHierarchyService;+import org.springframework.util.StringUtils;++import java.sql.SQLException;+import java.util.*;++public class SelectiveSyncStrategy extends AbstractOfflineSyncStrategy {+ private static final String ATTRIBUTE_TYPE_NAME = "addressCode";+ protected static Log log = LogFactory.getLog(SelectiveSyncStrategy.class);+ private static AddressHierarchyService addressHierarchyService = Context.getService(AddressHierarchyService.class);++ public SelectiveSyncStrategy() throws SQLException {+ super();++ }++ protected String evaluateFilterForPatient(String uuid) {+ String patientFilter = null;+ Patient patient = patientService.getPatientByUuid(uuid);++ if (patient != null && patient.getAttribute(ATTRIBUTE_TYPE_NAME) != null) {+ patientFilter = patient.getAttribute(ATTRIBUTE_TYPE_NAME).getValue();+ }++ return patientFilter;+ }++ private String evaluateFilterForEncounter(String uuid) {+ String filter = null;+ Encounter encounter = encounterService.getEncounterByUuid(uuid);+ if (encounter != null)+ filter = evaluateFilterForPatient(encounter.getPatient().getUuid());+ return filter;+ }++ private String evaluateFilterForAddressHierarchy(String uuid) {+ String addressHierarchyFilter = null;+ AddressHierarchyService addressHierarchyService = Context.getService(AddressHierarchyService.class);+ AddressHierarchyEntry addressHierarchyEntry = addressHierarchyService.getAddressHierarchyEntryByUuid(uuid);+ if (addressHierarchyEntry != null && addressHierarchyEntry.getLevel() != null && addressHierarchyEntry.getLevel().getId() > 3) {+ addressHierarchyFilter = addressHierarchyEntry.getUserGeneratedId();+ }+ return addressHierarchyFilter;+ }+++ public Map<String, List<String>> getFilterForDevice(String providerUuid, String addressUuid, String loginLocationUuid) {+ if(addressUuid.equals("null") || addressUuid.isEmpty()) {+ throw new RuntimeException("Please give address for this login location in openmrs");+ }+ Map<String, List<String>> categoryFilterMap = new HashMap();+ AddressHierarchyService addressHierarchyService = Context.getService(AddressHierarchyService.class);+ AddressHierarchyEntry addressHierarchyEntry = addressHierarchyService.getAddressHierarchyEntryByUuid(addressUuid);+ List transactionalDataFilters = getTransactionalDataFilters(loginLocationUuid, addressHierarchyService, addressHierarchyEntry);+ categoryFilterMap.put("patient", transactionalDataFilters);+ categoryFilterMap.put("encounter", transactionalDataFilters);+ categoryFilterMap.put("addressHierarchy", getFiltersForAddressHierarchy(addressHierarchyEntry));+ //categoryFilterMap.put("parentAddressHierarchy", new ArrayList<String>());+ categoryFilterMap.put("offline-concepts", new ArrayList<String>());+ categoryFilterMap.put("forms", new ArrayList<>());+ return categoryFilterMap;+ }++ private List getTransactionalDataFilters(String loginLocationUuid, AddressHierarchyService addressHierarchyService, AddressHierarchyEntry addressHierarchyEntry) {+ List transactionalDataFilters = new ArrayList();+ if (addressHierarchyEntry != null) {+ LocationAttributeType catchmentFiltersAttribute = locationService.getLocationAttributeTypeByName("catchmentFilters");+ String userGeneratedId = addressHierarchyEntry.getUserGeneratedId();+ LocationAttribute catchmentFilters = getCatchmentFilters(loginLocationUuid, catchmentFiltersAttribute);+ List<AddressHierarchyEntry> childAddressHierarchyEntries = addressHierarchyService.getChildAddressHierarchyEntries(addressHierarchyEntry);+ List<String> transactionalFilters = getCatchmentIds(catchmentFilters, childAddressHierarchyEntries, addressHierarchyService, addressHierarchyEntry);+ transactionalDataFilters.add(userGeneratedId);+ transactionalDataFilters.addAll(transactionalFilters);+ }+ return transactionalDataFilters;+ }++ private LocationAttribute getCatchmentFilters(String loginLocationUuid, LocationAttributeType catchmentFiltersAttribute) {+ Location location = locationService.getLocationByUuid(loginLocationUuid);+ List<LocationAttribute> attributes = (List<LocationAttribute>) location.getActiveAttributes();+ for (LocationAttribute attribute : attributes) {+ if (attribute.getAttributeType().equals(catchmentFiltersAttribute)) {+ return attribute;+ }+ }+ return null;+ }++ private List<String> getCatchmentIds(LocationAttribute catchmentFilters, List<AddressHierarchyEntry> childAddressHierarchyEntries, AddressHierarchyService addressHierarchyService, AddressHierarchyEntry addressHierarchyEntry) {+ List<String> wardIDs = new ArrayList();+ if (catchmentFilters != null) {+ String wardsName = trim(catchmentFilters.getValue().toString());+ Set<String> wardsNameList = StringUtils.commaDelimitedListToSet(wardsName);+ for (String wardName : wardsNameList) {+ AddressHierarchyEntry childAddressHierarchyEntry = addressHierarchyService.getChildAddressHierarchyEntryByName(addressHierarchyEntry, wardName);+ if (childAddressHierarchyEntry == null) {+ throw new RuntimeException("Please check your catchmentFilters configuration in openmrs!!");+ } else {+ getAllWardIds(childAddressHierarchyEntry, addressHierarchyService, wardIDs);+ }+ }+ } else {+ updateWardIds(addressHierarchyService, wardIDs, childAddressHierarchyEntries);+ }+ return wardIDs;+ }++ private void getAllWardIds(AddressHierarchyEntry addressHierarchyEntry, AddressHierarchyService addressHierarchyService, List<String> wardIDs) {+ if (addressHierarchyEntry == null) {+ return;+ }+ wardIDs.add(addressHierarchyEntry.getUserGeneratedId());+ List<AddressHierarchyEntry> childAddressHierarchyEntries = addressHierarchyService.getChildAddressHierarchyEntries(addressHierarchyEntry);+ updateWardIds(addressHierarchyService, wardIDs, childAddressHierarchyEntries);+ }++ private void updateWardIds(AddressHierarchyService addressHierarchyService, List<String> wardIDs, List<AddressHierarchyEntry> childAddressHierarchyEntries) {+ for (AddressHierarchyEntry childAddressHierarchyEntry : childAddressHierarchyEntries) {+ getAllWardIds(childAddressHierarchyEntry, addressHierarchyService, wardIDs);+ }+ }++ private String trim(String content) {+ content = content.trim();+ return content.replaceAll("(\\s*,\\s*)", ",");+ }++ @Override+ public List<String> getEventCategoriesList() {+ List<String> eventCategoryList = new ArrayList();++ eventCategoryList.add("patient");+ eventCategoryList.add("encounter");+ eventCategoryList.add("addressHierarchy");+ eventCategoryList.add("parentAddressHierarchy");+ eventCategoryList.add("offline-concepts");+ eventCategoryList.add("forms");++ return eventCategoryList;+ }++++ private List<String> getFiltersForAddressHierarchy(AddressHierarchyEntry addressHierarchyEntry) {+ List addressHierarchyFilters = new ArrayList();+ while (addressHierarchyEntry.getParent() != null) {+ if (addressHierarchyEntry.getUserGeneratedId().length() == 6) {+ addressHierarchyFilters.add(addressHierarchyEntry.getUserGeneratedId());+ break;+ }+ addressHierarchyEntry = addressHierarchyEntry.getParent();+ }+ return addressHierarchyFilters;+ }++ @Override+ public List<EventLog> getEventLogsFromEventRecords(List<EventRecord> eventRecords) {+ List<EventLog> eventLogs = new ArrayList<EventLog>();++ for (EventRecord er : eventRecords) {+ EventLog eventLog = new EventLog(er.getUuid(),er.getCategory(),er.getTimeStamp(),er.getContents(), null, er.getUuid());+ String category = er.getCategory();+ String uuid = getUuidFromURL(er.getContents());+ String filter = null;++ if (!uuid.isEmpty()) {+ if (category.equalsIgnoreCase("all-concepts")) {+ if (isOfflineConceptEvent(uuid)) {+ eventLog.setCategory("offline-concepts");+ } else {+ eventLog.setCategory("concepts");+ }+ }++ if (category.equalsIgnoreCase("Patient")|| category.equalsIgnoreCase("LabOrderResults")) {+ // filter = evaluateFilterForPatient(uuid);
@gopikrishna-yaramothu not realised before.. i see comments here too. are these required here ?
comment created time in 3 days
Pull request review commentBahmni/openmrs-module-appointments
BAH-1133: Setting up time zone sensitive tests, adjusting GitHub Actions.
public void shouldReturnEndOfDay() { @Test public void shouldConvertDateToMilliSeconds() throws ParseException {+ TimeZone.setDefault(TimeZone.getTimeZone("IST"));
@binduak it is not ok to have Maven builds that are time zone dependent. The whole point of this ticket is to get rid of that situation.
Devs, when writing test cases that are time zone dependent, should be aware of it and should explicitly make this part of their test setups.
comment created time in 6 days
Pull request review commentBahmni/openmrs-module-appointments
BAH-1133: Setting up time zone sensitive tests, adjusting GitHub Actions.
public void shouldReturnEndOfDay() { @Test public void shouldConvertDateToMilliSeconds() throws ParseException {+ TimeZone.setDefault(TimeZone.getTimeZone("IST"));
@mks-d we can have this timezone configuration as part of the mvn build command ?
comment created time in 6 days
PR opened Bahmni/openmrs-module-appointments
Ticket
https://bahmni.atlassian.net/browse/BAH-1133
pr created time in 6 days
PR opened Bahmni/form-controls
-
Tarun,Supriya | MOBN-1188 | Fix issues with complex concepts when addMore is enabled
-
Supriya, Tarun | MOBN-1188 | Fix unit tests
-
Supriya, Tarun | MOBN-1188 | Fix issues for complex concepts with addMore enabled
-
Supriya, Tarun | MOBN-1188 | Fix issues for complex concepts with addMore enabled
-
Supriya, Tarun | MOBN-1188 | Add unit tests for canAddNextFormFieldPath Co-authored-by: Supriya Muppiri supriya.muppiri@thoughtworks.com
https://bahmni.atlassian.net/browse/BAH-1132
pr created time in 7 days
PR opened Bahmni/form-controls
-
Supriya, Vinisha | MOBN-1559 | Add step attribute to numeric input field
-
Supriya, Vinisha | MOBN-1559 | Bump up version to 0.93.1
https://bahmni.atlassian.net/browse/BAH-1131
pr created time in 7 days
PR opened Bahmni/form-controls
-
Bindu, Tarun | MOBN-1551 | added callback method to get the container data object
-
Bindu, Tarun | MOBN-1551 | Refactor code and fix unit tests
-
Bindu, Tarun | MOBN-1551 | Bump up form-controls version to 0.93.3
Co-authored-by: tarunkumar-tw tarunkumar.s@thoughtworks.com
pr created time in 7 days
PR opened Bahmni/openmrs-module-bahmniapps
https://bahmni.atlassian.net/browse/BAH-1130
pr created time in 7 days
push eventBahmni/openmrs-module-appointments-frontend
commit sha 1a4a9ef4c2f4e5497709216c9e4f5c3f076400e4
Vineela, Bindu, Kirity| AP-74 | Duplicate appointments created when trying to create a single appointment
commit sha 39f1af945f9e92f162401d5d5e48a58af1b19b19
Vineela | AP-69 | Add date and week picker and navigator
commit sha 652d55a66a5d0527fc8c468a4a325072cb292faa
Supriya, Tarun, Vineela | AP-69 | Fix test cases and css
commit sha 3e65b22ae6bf95488ab1053954f05381ecb6a3b6
Bindu | AP-75 | Add gradle files to build rpm for appointments-frontend
commit sha 4e731ffd33e45502248d2b5b9dce33b92eec9cd9
Bindu | AP-75 | Adding executable permissions to gradlew file
commit sha 27def50dba5010760823f1c0d83731a1713b5814
Merge pull request #133 from bahmni-msf/AP-74 Vineela, Bindu, Kirity| AP-74 | Duplicate appointments created when trying to create a single appointment
commit sha 6e387da3ba7aa5a2b2232fa37a70f880a14a046e
Merge pull request #147 from Bahmni/AP-75 Bindu | AP-75 | Build an rpm to build bahmni-appointments-frontend code to deploy in the bahmni instance
commit sha 44a872733414d800d15049a16f61771be344b930
BAH-1093 : Tele-consultation feature merge (#149) * Gracil/Hamza | Add 'Add Teleconsultation' button to the appointment plan component * CON-19 | Gracil - Added Join Teleconsultation button on the appointment popup * [Kaleeaswari] Deploying app to the environment * [Kaleeaswari] Deploying app to the environment - specifying correct project name * [Kaleeaswari] Deploying app to the environment - moving dist to appropriate folder * [Kaleeaswari] Deploying app to the environment - moving dist to appropriate folder * [Kaleeaswari] Deploying app to the environment - Extracting test to separate task * SM, DL: templated/standardised octo CLI commands * Temporary test to see if changes are reflected in app on env * Revert temp test * [vishal] add rename isTeleconsulationEnabled to teleconslutation * Zafar/Natheesh | #40, Added teleconsulting in list view. Co-authored-by: Natheeshkumar <natheeshece@gmail.com> * Zafar/Natheesh | #40, Fixed join teleconsultation visibility Co-authored-by: Natheeshkumar <natheeshece@gmail.com> * Zafar/Natheesh | #97, Added copy link button in list-view Co-authored-by: Natheeshkumar <natheeshece@gmail.com> * Zafar/Natheesh | #97, Added copy link button in calender-view Co-authored-by: Natheeshkumar <natheeshece@gmail.com> * Zafar/Natheesh | #97, Added title for copy link button. Co-authored-by: Natheeshkumar <natheeshece@gmail.com> * Zafar/Natheesh | #97, Refactored class name and padding for copy-clip button Co-authored-by: Natheeshkumar <natheeshece@gmail.com> * WIP Appointment UI - Separate field for Teleconsultation - pairing with @Ana Karolina * Appointment UI - Separate field for Teleconsultation - Clean up code - pairing with Ana Karolina * Appointment UI - Separate field for Teleconsultation - Clean up code - Pairing with Ana Karolina * Fix Appointment Type not appearing when editing existing appointment * Open Patient summary when clicking Join Teleconsultation * Natheesh/Monica | #112 Fixed check/uncheck Teleconsultiation checkbox Signed-off-by: Natheeshkumar <natheeshkumar.r@thoughtworks.com> * Natheesh/Monica | #112 Fixed the SQL Exception Signed-off-by: natheeshsunway <natheeshece@gmail.com> Co-authored-by: monicarajendran <monicarajendran96@gmail.com> * Natheesh/Monica | #119 Added Email warning message on saving appointment Co-authored-by: monicarajendran <monicarajendran96@gmail.com> Signed-off-by: natheeshsunway <natheeshece@gmail.com> * Natheesh/Monica | #119 Refactored Email warning message showing based on teleconsultation Co-authored-by: monicarajendran <monicarajendran96@gmail.com> Signed-off-by: natheeshsunway <natheeshece@gmail.com> * make join teleconsult button enable for only scheduled meetings * Removed usage of "::set_env" from github actions * Praveena/Swati : navigation control fix * Resolve review comments * remove https from constants * Praveena | Removed github actions before merging to Bahmni product * swati|praveena: Implementation of review comments * make CopyLink internationalisation Co-authored-by: kaleeaswari <skaleeas@thoughtworks.com> Co-authored-by: Steve M <smorris@thoughtworks.com> Co-authored-by: Deedee <deedee> Co-authored-by: Zafar <momin.zafaraabid@thoughtworks.com> Co-authored-by: Natheeshkumar <natheeshece@gmail.com> Co-authored-by: Carlos Rigo <carlos.rigocano@thoughtworks.com> Co-authored-by: Natheeshkumar <natheeshkumar.r@thoughtworks.com> Co-authored-by: monicarajendran <monicarajendran96@gmail.com> Co-authored-by: Mahesh Ippili <maheshippili@Maheshs-MacBook-Pro.local> Co-authored-by: swatigogia2020 <swati.gogia@thoughtworks.com>
commit sha 0b64050168d2cfebd1162b335c78dc37f4003173
BAH-1123: Patient ID as configurable hyperlink on Appointments List View (#152) * Patient ID as configurable hyperlink on Appointments List View * Open patient dashboard on new window * Reviewed configurable patient link to use alias substitution * Bump version from 0.0.2 to 0.0.3 * Updated patient link URL
commit sha 2f3ebfa281e6ec2bce0a2c4dd0a6a1c4f1a88f2c
Bump angular from 1.5.7 to 1.8.0 Bumps [angular](https://github.com/angular/angular.js) from 1.5.7 to 1.8.0. - [Release notes](https://github.com/angular/angular.js/releases) - [Changelog](https://github.com/angular/angular.js/blob/master/CHANGELOG.md) - [Commits](https://github.com/angular/angular.js/compare/v1.5.7...v1.8.0) Signed-off-by: dependabot[bot] <support@github.com>
push time in 7 days