profile
viewpoint

Bahmni/bahmni-playbooks 10

Ansible playbooks for Bahmni (used for Bahmni deployments and Installer)

Bahmni/bahmni-vagrant 9

Management of Vagrant box using Packer. Out-Of-The-Box bahmni on CentOS 6.7

Bahmni/bahmni-offline 5

Repo to hold bahmni offline code. This will support Chromium app and Android app as of now.

Bahmni/emr-functional-tests 4

emr functional tests

Bahmni/bahmni-docker 3

Configuration required to build and run bahmni docker images

Bahmni/bahmni-java-utils 3

This repository has various functional utilities needed by bahmni.

Bahmni/bahmni-connect 2

Front end for the Bahmni Connect, written in AngularJS

Bahmni/bahmni-docker-old 2

DEPRECATED - This repository contains the relevant docker configuration for setting up Bahmni

Bahmni/bahmni-gauge 2

Bahmni Automation Test Suite using Gauge Framework

Bahmni/bahmni-tw-playbooks 2

Contains the files related to local environments

push eventbahmni-msf/amman-config

Supriya Muppiri

commit sha 26985eca206f818c2f56b38c2950ae85628dc9f9

Vinisha, Supriya | MOBN-1575 |MOBN-1579 | Add migrations to liquibase.xml

view details

push time in 2 hours

push eventbahmni-msf/amman-config

Supriya Muppiri

commit sha db2b46c46446eb56b2151e562d1a1333f4f54aa4

Vinisha, Supriya | MOBN-1575 |MOBN-1579 | Add migrations to liquibase.xml

view details

push time in 3 hours

push eventbahmni-msf/amman-config

Supriya Muppiri

commit sha 833e57122a30c861763316993da0957f046e3a4c

Vinisha, Supriya | MOBN-1575 | MOBN-1579 | Add mappings of child concepts to parent concepts and references to CEIL concepts for Network Physiotherapy form

view details

Supriya Muppiri

commit sha 7b869c18a75e0d70fbb958f5d85a39b5ac59be07

Vinisha, Supriya | MOBN-1575 | Change concept name to Network Physiotherapy

view details

push time in 3 hours

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

praveenadayanand

comment created time in 4 hours

push eventbahmni-msf/amman-config

Supriya Muppiri

commit sha f8ee7b5cbb80a3d67aa3be5cfa62b2cb9e1cc549

Vinisha, Supriya | MOBN-1575 | MOBN-1579 | Add mappings of child concepts to parent concepts and references to CEIL concepts for Network Physiotherapy form

view details

push time in 4 hours

push eventbahmni-msf/amman-config

Supriya Muppiri

commit sha 001a519dbd98fbf9a953edfca22c4d45736f2807

Vinisha,Supriya,Tarun | MOBN-1575 | Modify concept names to correct values.

view details

push time in 5 hours

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

gopikrishna-yaramothu

comment created time in 7 hours

Pull request review commentBahmni/bahmni-connect

BAH 1109, BAH 1106 | Shriram , Gopi , Rakesh , Aakash , Som | Zipping and importing AddressHierarchy & OfflineConcepts Data in BahmniConnect & Selective Sync Strategy

 '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 .

gopikrishna-yaramothu

comment created time in 7 hours

pull request commentBahmni/bahmni-connect

BAH 1109, BAH 1106 | Shriram , Gopi , Rakesh , Aakash , Som | Zipping and importing AddressHierarchy & OfflineConcepts Data in BahmniConnect & Selective Sync Strategy

@gopikrishna-yaramothu the below files doesn't have any new test cases added selectiveSyncService.js , selectiveSchedulerService.js

gopikrishna-yaramothu

comment created time in 15 hours

Pull request review commentBahmni/bahmni-connect

BAH 1109, BAH 1106 | Shriram , Gopi , Rakesh , Aakash , Som | Zipping and importing AddressHierarchy & OfflineConcepts Data in BahmniConnect & Selective Sync Strategy

 '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

gopikrishna-yaramothu

comment created time in 15 hours

Pull request review commentBahmni/bahmni-connect

BAH 1109, BAH 1106 | Shriram , Gopi , Rakesh , Aakash , Som | Zipping and importing AddressHierarchy & OfflineConcepts Data in BahmniConnect & Selective Sync Strategy

 '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

gopikrishna-yaramothu

comment created time in 15 hours

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 ?

gopikrishna-yaramothu

comment created time in 15 hours

create barnchbahmni-msf/openmrs-module-bahmniapps

branch : MOBN-658-695

created branch time in 2 days

push eventbahmni-msf/amman-config

tarunkumar-tw

commit sha 6b8b481591ff7688836946e7fb11e1a39c8308a5

Tarun | MOBN-1573 | Add caretaker program

view details

tarunkumar-tw

commit sha 9e62b1d9327a8532d6ca64e4eaec1ddb6e7c9df7

Merge pull request #6 from bahmni-msf/MOBN-1573 Tarun | MOBN-1573 | Add caretaker program

view details

push time in 3 days

create barnchbahmni-msf/amman-config

branch : MOBN-1573

created branch time in 3 days

create barnchbahmni-msf/amman-config

branch : MOBN-1575

created branch time in 3 days

PR opened Bahmni/form-controls

Supriya, Tarun | BAH-1132 | MOBN-1188 | Fix issues with complex concepts when addMore is enabled
  • 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

+83 -2

0 comment

2 changed files

pr created time in 4 days

PR opened Bahmni/form-controls

Supriya, Vinisha | BAH-1131 | MOBN-1559 | Add step attribute to numeric input field
  • 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

+4 -4

0 comment

2 changed files

pr created time in 4 days

PR opened Bahmni/form-controls

Bindu, Tarun | BAH-1017 | MOBN-1551 | Save event not working in Preview Tab
  • 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

+14 -1

0 comment

1 changed file

pr created time in 4 days

push eventbahmni-msf/bahmni-core

Ramakrishnan Kandasamy

commit sha 8a354bc8eee483f0b18555fe870cbd990d532867

Upgrade MySQL connector from 5.1.8 to 5.1.48 (#58)

view details

angshuman sarkar

commit sha f9a93573f73aaddc55edf43d7a6714538d9eddfc

updating pom files for dependencies to Bahmni java utils (#83) Fixing 1096, for mvn repo URLS from http to https updating package dependency for JDBCConnectionProvider

view details

push time in 4 days

push eventbahmni-msf/bahmni-core

Ramakrishnan Kandasamy

commit sha 8a354bc8eee483f0b18555fe870cbd990d532867

Upgrade MySQL connector from 5.1.8 to 5.1.48 (#58)

view details

angshuman sarkar

commit sha f9a93573f73aaddc55edf43d7a6714538d9eddfc

updating pom files for dependencies to Bahmni java utils (#83) Fixing 1096, for mvn repo URLS from http to https updating package dependency for JDBCConnectionProvider

view details

push time in 4 days

create barnchbahmni-msf/openmrs-module-bahmniapps

branch : BAH-1130

created branch time in 4 days

push eventbahmni-msf/openmrs-module-bahmniapps

Michaël Bontyes

commit sha e2fdbf79faf67a865a4b470e4b632a788ab71bbb

michael | BAH-1087 | Making the "Address information" section label dynamic in the registration page (#310)

view details

praveenadayanand

commit sha 294170913500d0c3e05f7e906df7c2a3ebb7302e

BAH-1093 : Tele-consultation feature merge (#326) * Create floating teleconsultation window * Shankar: Creating teleConsultation component * Shankar: Adding teleConsultation Component to UI * Shankar: Showing teleConsultation Component at dashboard header * Shankar: Creating draggable component * Shankar: Adding draggable component to page * Remove patch file * Delete old changes * Action to build and upload bahmniapps.zip dist * Update build_and_upload_artifact.yml * Praveena | Swati, Teleconsultation - Unit test fixed * Update build_and_upload_artifact.yml * swati/praveena removing the github workflow * make floating window fixed and minimum size * make floating window fixed after resizing Co-authored-by: Shanky <rshankar@thoughtworks.com> Co-authored-by: swatigogia2020 <swati.gogia@thoughtworks.com>

view details

buvaneswari-arun

commit sha e36b2c76863852f9896a3b1d101fe481423fce39

BAH-790|Buvaneswari|Privilage based access to forms (#324) * BAH-790|Buvaneswari|Privilage based access to forms * BAH-790|Buvaneswari|Testcase fixes for privilege based access to forms * BAH-790|Buvaneswari|Indendation issue fix

view details

buvaneswari-arun

commit sha f32427ab60bf1d38fdbf3dd42db6258dd55f5004

Bah 987 newbranch 6 dec 2020 (#333) * BAH-987-Registration & Clinical changes * BAH-987-Registration & Clinical changes * BAH-987|Buvaneswari| Removal of API change for treatmentservice * BAH-790|Buvaneswari|Privilage based access to forms * BAH-790|Buvaneswari|Testcase fixes for privilege based access to forms * BAH-790|Buvaneswari|Indendation issue fix * BAH-987|Buvaneswari|Testcase fixes for Internationalisation * BAH-790|buvaneswari|Indentation correction * BAH-987|Buvaneswari|Indendtation correction * BAH-987|Buvaneswari|Testcases failure fix * BAH-790|Buvaneswari|Testcase fixes * BAH-987|Buvaneswari|Resolving conflict * BAH-790|BAH-1099|Buvaneswari|Review comments implementation * BAH790|Buvaneswari|Conflict removal * BAH-790|Buvaneswari|Conflict Removal * BAH790|Buvaneswari|Conflict Removal * BAH987|Buvaneswari|Spacing issue fix * BAH-987|Buvaneswari|Review comments * BAH-987|Buvaneswari|Review Comments|Refactoring of code and sanity fixes * BAH-987|Buvaneswari|Review Comments|Refactoring of code and sanity fixes --- Indendation fixes * BAH-987|Buvaneswari|Review comments implementation

view details

push time in 4 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)">

instead of clubbing, the checks/conditions, can you pull these inside a method and then use the same here?

praveenadayanand

comment created time in 5 days

pull request commentBahmni/openerp-atomfeed-service

Bump jackson-databind from 2.8.1 to 2.9.10.7

CLA assistant check <br/>Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.<br/><sub>You have signed the CLA already but the status is still pending? Let us recheck it.</sub>

dependabot[bot]

comment created time in 5 days

delete branch Bahmni/openerp-atomfeed-service

delete branch : dependabot/maven/com.fasterxml.jackson.core-jackson-databind-2.9.10.5

delete time in 5 days

PR closed Bahmni/openerp-atomfeed-service

Bump jackson-databind from 2.8.1 to 2.9.10.5 dependencies

Bumps jackson-databind from 2.8.1 to 2.9.10.5. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/FasterXML/jackson/commits">compare view</a></li> </ul> </details> <br />

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


<details> <summary>Dependabot commands and options</summary> <br />

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the Security Alerts page.

</details>

+1 -1

2 comments

1 changed file

dependabot[bot]

pr closed time in 5 days

more