@Test public void testFilterAndGroupForTwoResultsOfSameUnitOneIsSekrForVardadmin() { when(webCertUserService.getUser()).thenReturn(buildUserOfRole(AUTHORITIES_RESOLVER.getRole("VARDADMINISTRATOR"))); Personnummer pnr1 = Personnummer.createPersonnummer(PNR1).get(); Personnummer pnr2 = Personnummer.createPersonnummer(PNR2).get(); Map<Personnummer, SekretessStatus> sekrMap = new HashMap<>(); sekrMap.put(pnr1, SekretessStatus.FALSE); sekrMap.put(pnr2, SekretessStatus.TRUE); when(patientDetailsResolver.getSekretessStatusForList(anyList())).thenReturn(sekrMap); List<GroupableItem> queryResult = new ArrayList<>(); queryResult.add(new GroupableItem("id-1", HSA1, PNR1, FK7263)); queryResult.add(new GroupableItem("id-2", HSA1, PNR2, FK7263)); queryResult.add(new GroupableItem("id-3", HSA1, PNR2, TSBAS)); Map<String, Long> result = testee.toSekretessFilteredMap(queryResult); assertEquals(1, result.size()); assertEquals(new Long(1L), result.get(HSA1)); }
public Map<String, Long> toSekretessFilteredMap(List<GroupableItem> groupableItems) { if (groupableItems == null || groupableItems.size() == 0) { return new HashMap<>(); } List<GroupableItem> filteredGroupableItems = getFilteredGroupableItemList(groupableItems); WebCertUser user = webCertUserService.getUser(); Map<Personnummer, SekretessStatus> sekretessStatusMap = patientDetailsResolver.getSekretessStatusForList(getPersonummerList(filteredGroupableItems)); filteredGroupableItems.forEach(item -> item.setSekretessStatus(sekretessStatusMap.get(createPnr(item.getPersonnummer())))); return filteredGroupableItems.stream() .filter(item -> item.getSekretessStatus() != SekretessStatus.UNDEFINED) .filter(item -> authoritiesValidator.given(user, item.getIntygsTyp()) .privilegeIf(AuthoritiesConstants.PRIVILEGE_HANTERA_SEKRETESSMARKERAD_PATIENT, item.getSekretessStatus() == SekretessStatus.TRUE) .isVerified()) .collect(Collectors.groupingBy(GroupableItem::getEnhetsId, Collectors.counting())); }
StatisticsGroupByUtil { public Map<String, Long> toSekretessFilteredMap(List<GroupableItem> groupableItems) { if (groupableItems == null || groupableItems.size() == 0) { return new HashMap<>(); } List<GroupableItem> filteredGroupableItems = getFilteredGroupableItemList(groupableItems); WebCertUser user = webCertUserService.getUser(); Map<Personnummer, SekretessStatus> sekretessStatusMap = patientDetailsResolver.getSekretessStatusForList(getPersonummerList(filteredGroupableItems)); filteredGroupableItems.forEach(item -> item.setSekretessStatus(sekretessStatusMap.get(createPnr(item.getPersonnummer())))); return filteredGroupableItems.stream() .filter(item -> item.getSekretessStatus() != SekretessStatus.UNDEFINED) .filter(item -> authoritiesValidator.given(user, item.getIntygsTyp()) .privilegeIf(AuthoritiesConstants.PRIVILEGE_HANTERA_SEKRETESSMARKERAD_PATIENT, item.getSekretessStatus() == SekretessStatus.TRUE) .isVerified()) .collect(Collectors.groupingBy(GroupableItem::getEnhetsId, Collectors.counting())); } }
StatisticsGroupByUtil { public Map<String, Long> toSekretessFilteredMap(List<GroupableItem> groupableItems) { if (groupableItems == null || groupableItems.size() == 0) { return new HashMap<>(); } List<GroupableItem> filteredGroupableItems = getFilteredGroupableItemList(groupableItems); WebCertUser user = webCertUserService.getUser(); Map<Personnummer, SekretessStatus> sekretessStatusMap = patientDetailsResolver.getSekretessStatusForList(getPersonummerList(filteredGroupableItems)); filteredGroupableItems.forEach(item -> item.setSekretessStatus(sekretessStatusMap.get(createPnr(item.getPersonnummer())))); return filteredGroupableItems.stream() .filter(item -> item.getSekretessStatus() != SekretessStatus.UNDEFINED) .filter(item -> authoritiesValidator.given(user, item.getIntygsTyp()) .privilegeIf(AuthoritiesConstants.PRIVILEGE_HANTERA_SEKRETESSMARKERAD_PATIENT, item.getSekretessStatus() == SekretessStatus.TRUE) .isVerified()) .collect(Collectors.groupingBy(GroupableItem::getEnhetsId, Collectors.counting())); }  }
StatisticsGroupByUtil { public Map<String, Long> toSekretessFilteredMap(List<GroupableItem> groupableItems) { if (groupableItems == null || groupableItems.size() == 0) { return new HashMap<>(); } List<GroupableItem> filteredGroupableItems = getFilteredGroupableItemList(groupableItems); WebCertUser user = webCertUserService.getUser(); Map<Personnummer, SekretessStatus> sekretessStatusMap = patientDetailsResolver.getSekretessStatusForList(getPersonummerList(filteredGroupableItems)); filteredGroupableItems.forEach(item -> item.setSekretessStatus(sekretessStatusMap.get(createPnr(item.getPersonnummer())))); return filteredGroupableItems.stream() .filter(item -> item.getSekretessStatus() != SekretessStatus.UNDEFINED) .filter(item -> authoritiesValidator.given(user, item.getIntygsTyp()) .privilegeIf(AuthoritiesConstants.PRIVILEGE_HANTERA_SEKRETESSMARKERAD_PATIENT, item.getSekretessStatus() == SekretessStatus.TRUE) .isVerified()) .collect(Collectors.groupingBy(GroupableItem::getEnhetsId, Collectors.counting())); }  Map<String, Long> toSekretessFilteredMap(List<GroupableItem> groupableItems); }
StatisticsGroupByUtil { public Map<String, Long> toSekretessFilteredMap(List<GroupableItem> groupableItems) { if (groupableItems == null || groupableItems.size() == 0) { return new HashMap<>(); } List<GroupableItem> filteredGroupableItems = getFilteredGroupableItemList(groupableItems); WebCertUser user = webCertUserService.getUser(); Map<Personnummer, SekretessStatus> sekretessStatusMap = patientDetailsResolver.getSekretessStatusForList(getPersonummerList(filteredGroupableItems)); filteredGroupableItems.forEach(item -> item.setSekretessStatus(sekretessStatusMap.get(createPnr(item.getPersonnummer())))); return filteredGroupableItems.stream() .filter(item -> item.getSekretessStatus() != SekretessStatus.UNDEFINED) .filter(item -> authoritiesValidator.given(user, item.getIntygsTyp()) .privilegeIf(AuthoritiesConstants.PRIVILEGE_HANTERA_SEKRETESSMARKERAD_PATIENT, item.getSekretessStatus() == SekretessStatus.TRUE) .isVerified()) .collect(Collectors.groupingBy(GroupableItem::getEnhetsId, Collectors.counting())); }  Map<String, Long> toSekretessFilteredMap(List<GroupableItem> groupableItems);  }