{"action":"created","comment":{"url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/pulls/comments/172248452","pull_request_review_id":101233545,"id":172248452,"diff_hunk":"@@ -0,0 +1,100 @@\n+package gov.cms.qpp.conversion.model.validation;\n+\n+import com.google.common.collect.Sets;\n+\n+import java.util.Arrays;\n+import java.util.Set;\n+import java.util.function.Function;\n+import java.util.stream.Collectors;\n+import java.util.stream.Stream;\n+\n+/**\n+ * Construct that helps classify SubPopulation types.\n+ */\n+public enum SubPopulationLabel {\n+\tDENEXCEP(SubPopulation::getDenominatorExceptionsUuid, \"DENEXCEP\"),\n+\tDENEX(SubPopulation::getDenominatorExclusionsUuid, \"DENEX\"),\n+\tNUMER(SubPopulation::getNumeratorUuid, \"NUMER\"),\n+\tDENOM(SubPopulation::getDenominatorUuid, \"DENOM\"),\n+\tIPOP(SubPopulation::getNumeratorUuid, \"IPOP\", \"IPP\");\n+\n+\tprivate Set<String> aka;\n+\tprivate Function<SubPopulation, String> getter;\n+\n+\t/**\n+\t * Initialize enum constituents with functions to retrieve respective sub-population ids\n+\t * along with aliases to contextualize the retrieval\n+\t *\n+\t * @param getter {@link SubPopulation} getter\n+\t * @param aliases determines to which sub-population aliases the getter applies\n+\t */\n+\tSubPopulationLabel(Function<SubPopulation, String> getter, String... aliases) {\n+\t\tthis.getter = getter;\n+\t\tthis.aka = Sets.newHashSet(aliases);\n+\t}\n+\n+\t/**\n+\t * Retrieve the associated aliases.\n+\t *\n+\t * @return an array of aliases\n+\t */\n+\tpublic String[] getAliases() {","path":"commons/src/main/java/gov/cms/qpp/conversion/model/validation/SubPopulationLabel.java","position":41,"original_position":41,"commit_id":"5d82b40442f4368c1a99754da2317b92af5697a0","original_commit_id":"5d82b40442f4368c1a99754da2317b92af5697a0","user":{"login":"omnivion","id":13528675,"avatar_url":"https://avatars3.githubusercontent.com/u/13528675?v=4","gravatar_id":"","url":"https://api.github.com/users/omnivion","html_url":"https://github.com/omnivion","followers_url":"https://api.github.com/users/omnivion/followers","following_url":"https://api.github.com/users/omnivion/following{/other_user}","gists_url":"https://api.github.com/users/omnivion/gists{/gist_id}","starred_url":"https://api.github.com/users/omnivion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/omnivion/subscriptions","organizations_url":"https://api.github.com/users/omnivion/orgs","repos_url":"https://api.github.com/users/omnivion/repos","events_url":"https://api.github.com/users/omnivion/events{/privacy}","received_events_url":"https://api.github.com/users/omnivion/received_events","type":"User","site_admin":false},"body":"why return an array?","created_at":"2018-03-05T16:36:49Z","updated_at":"2018-03-05T16:36:50Z","html_url":"https://github.com/CMSgov/qpp-conversion-tool/pull/642#discussion_r172248452","pull_request_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/pulls/642","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/pulls/comments/172248452"},"html":{"href":"https://github.com/CMSgov/qpp-conversion-tool/pull/642#discussion_r172248452"},"pull_request":{"href":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/pulls/642"}}},"pull_request":{"url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/pulls/642","id":172805976,"html_url":"https://github.com/CMSgov/qpp-conversion-tool/pull/642","diff_url":"https://github.com/CMSgov/qpp-conversion-tool/pull/642.diff","patch_url":"https://github.com/CMSgov/qpp-conversion-tool/pull/642.patch","issue_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/issues/642","number":642,"state":"open","locked":false,"title":"WIP - QPPCT-685: ipp ipop support","user":{"login":"clydet","id":1957663,"avatar_url":"https://avatars0.githubusercontent.com/u/1957663?v=4","gravatar_id":"","url":"https://api.github.com/users/clydet","html_url":"https://github.com/clydet","followers_url":"https://api.github.com/users/clydet/followers","following_url":"https://api.github.com/users/clydet/following{/other_user}","gists_url":"https://api.github.com/users/clydet/gists{/gist_id}","starred_url":"https://api.github.com/users/clydet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clydet/subscriptions","organizations_url":"https://api.github.com/users/clydet/orgs","repos_url":"https://api.github.com/users/clydet/repos","events_url":"https://api.github.com/users/clydet/events{/privacy}","received_events_url":"https://api.github.com/users/clydet/received_events","type":"User","site_admin":false},"body":"### Information\r\n- QPPCT-685\r\n\r\n### Changes proposed in this PR:\r\n- replaced string based subpopulation references with an enum type that allows aliasing.\r\n\r\n### Checklist \r\n- [ ] All JUnit tests pass (`mvn clean verify`).\r\n- [ ] New unit tests written to cover new functionality.\r\n- [ ] Added and updated JavaDocs for non-test classes and methods.\r\n- [ ] No local design debt. Do you feel that something is \"ugly\" after your changes?\r\n- [ ] Updated documentation (`README.md`, etc.) depending if the changes require it.\r\n","created_at":"2018-03-05T08:54:35Z","updated_at":"2018-03-05T16:36:50Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f6a4446459c6c75dbc2c4edc2341efe3f2733f79","assignee":null,"assignees":[],"requested_reviewers":[{"login":"sfradkin","id":1021145,"avatar_url":"https://avatars1.githubusercontent.com/u/1021145?v=4","gravatar_id":"","url":"https://api.github.com/users/sfradkin","html_url":"https://github.com/sfradkin","followers_url":"https://api.github.com/users/sfradkin/followers","following_url":"https://api.github.com/users/sfradkin/following{/other_user}","gists_url":"https://api.github.com/users/sfradkin/gists{/gist_id}","starred_url":"https://api.github.com/users/sfradkin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfradkin/subscriptions","organizations_url":"https://api.github.com/users/sfradkin/orgs","repos_url":"https://api.github.com/users/sfradkin/repos","events_url":"https://api.github.com/users/sfradkin/events{/privacy}","received_events_url":"https://api.github.com/users/sfradkin/received_events","type":"User","site_admin":false},{"login":"saquino0827","id":26700499,"avatar_url":"https://avatars3.githubusercontent.com/u/26700499?v=4","gravatar_id":"","url":"https://api.github.com/users/saquino0827","html_url":"https://github.com/saquino0827","followers_url":"https://api.github.com/users/saquino0827/followers","following_url":"https://api.github.com/users/saquino0827/following{/other_user}","gists_url":"https://api.github.com/users/saquino0827/gists{/gist_id}","starred_url":"https://api.github.com/users/saquino0827/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/saquino0827/subscriptions","organizations_url":"https://api.github.com/users/saquino0827/orgs","repos_url":"https://api.github.com/users/saquino0827/repos","events_url":"https://api.github.com/users/saquino0827/events{/privacy}","received_events_url":"https://api.github.com/users/saquino0827/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/pulls/642/commits","review_comments_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/pulls/642/comments","review_comment_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/pulls/comments{/number}","comments_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/issues/642/comments","statuses_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/statuses/5d82b40442f4368c1a99754da2317b92af5697a0","head":{"label":"CMSgov:chore/QPPCT-685_IPP_IPOP_support","ref":"chore/QPPCT-685_IPP_IPOP_support","sha":"5d82b40442f4368c1a99754da2317b92af5697a0","user":{"login":"CMSgov","id":3209407,"avatar_url":"https://avatars3.githubusercontent.com/u/3209407?v=4","gravatar_id":"","url":"https://api.github.com/users/CMSgov","html_url":"https://github.com/CMSgov","followers_url":"https://api.github.com/users/CMSgov/followers","following_url":"https://api.github.com/users/CMSgov/following{/other_user}","gists_url":"https://api.github.com/users/CMSgov/gists{/gist_id}","starred_url":"https://api.github.com/users/CMSgov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CMSgov/subscriptions","organizations_url":"https://api.github.com/users/CMSgov/orgs","repos_url":"https://api.github.com/users/CMSgov/repos","events_url":"https://api.github.com/users/CMSgov/events{/privacy}","received_events_url":"https://api.github.com/users/CMSgov/received_events","type":"Organization","site_admin":false},"repo":{"id":86107810,"name":"qpp-conversion-tool","full_name":"CMSgov/qpp-conversion-tool","owner":{"login":"CMSgov","id":3209407,"avatar_url":"https://avatars3.githubusercontent.com/u/3209407?v=4","gravatar_id":"","url":"https://api.github.com/users/CMSgov","html_url":"https://github.com/CMSgov","followers_url":"https://api.github.com/users/CMSgov/followers","following_url":"https://api.github.com/users/CMSgov/following{/other_user}","gists_url":"https://api.github.com/users/CMSgov/gists{/gist_id}","starred_url":"https://api.github.com/users/CMSgov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CMSgov/subscriptions","organizations_url":"https://api.github.com/users/CMSgov/orgs","repos_url":"https://api.github.com/users/CMSgov/repos","events_url":"https://api.github.com/users/CMSgov/events{/privacy}","received_events_url":"https://api.github.com/users/CMSgov/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CMSgov/qpp-conversion-tool","description":"Conversion tool for QPP, particularly focused on QRDA3 -> QPP, built by Flexion. ","fork":false,"url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool","forks_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/forks","keys_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/teams","hooks_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/hooks","issue_events_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/issues/events{/number}","events_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/events","assignees_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/assignees{/user}","branches_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/branches{/branch}","tags_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/tags","blobs_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/git/refs{/sha}","trees_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/statuses/{sha}","languages_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/languages","stargazers_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/stargazers","contributors_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/contributors","subscribers_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/subscribers","subscription_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/subscription","commits_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/commits{/sha}","git_commits_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/git/commits{/sha}","comments_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/comments{/number}","issue_comment_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/issues/comments{/number}","contents_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/contents/{+path}","compare_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/merges","archive_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/downloads","issues_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/issues{/number}","pulls_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/pulls{/number}","milestones_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/milestones{/number}","notifications_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/labels{/name}","releases_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/releases{/id}","deployments_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/deployments","created_at":"2017-03-24T20:26:32Z","updated_at":"2018-02-22T20:56:36Z","pushed_at":"2018-03-05T15:23:36Z","git_url":"git://github.com/CMSgov/qpp-conversion-tool.git","ssh_url":"git@github.com:CMSgov/qpp-conversion-tool.git","clone_url":"https://github.com/CMSgov/qpp-conversion-tool.git","svn_url":"https://github.com/CMSgov/qpp-conversion-tool","homepage":null,"size":22715,"stargazers_count":7,"watchers_count":7,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":12,"mirror_url":null,"archived":false,"open_issues_count":7,"license":{"key":"cc0-1.0","name":"Creative Commons Zero v1.0 Universal","spdx_id":"CC0-1.0","url":"https://api.github.com/licenses/cc0-1.0"},"forks":12,"open_issues":7,"watchers":7,"default_branch":"develop"}},"base":{"label":"CMSgov:develop","ref":"develop","sha":"0c979faea58b4e8a8c639ec4e28a7961651d41d5","user":{"login":"CMSgov","id":3209407,"avatar_url":"https://avatars3.githubusercontent.com/u/3209407?v=4","gravatar_id":"","url":"https://api.github.com/users/CMSgov","html_url":"https://github.com/CMSgov","followers_url":"https://api.github.com/users/CMSgov/followers","following_url":"https://api.github.com/users/CMSgov/following{/other_user}","gists_url":"https://api.github.com/users/CMSgov/gists{/gist_id}","starred_url":"https://api.github.com/users/CMSgov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CMSgov/subscriptions","organizations_url":"https://api.github.com/users/CMSgov/orgs","repos_url":"https://api.github.com/users/CMSgov/repos","events_url":"https://api.github.com/users/CMSgov/events{/privacy}","received_events_url":"https://api.github.com/users/CMSgov/received_events","type":"Organization","site_admin":false},"repo":{"id":86107810,"name":"qpp-conversion-tool","full_name":"CMSgov/qpp-conversion-tool","owner":{"login":"CMSgov","id":3209407,"avatar_url":"https://avatars3.githubusercontent.com/u/3209407?v=4","gravatar_id":"","url":"https://api.github.com/users/CMSgov","html_url":"https://github.com/CMSgov","followers_url":"https://api.github.com/users/CMSgov/followers","following_url":"https://api.github.com/users/CMSgov/following{/other_user}","gists_url":"https://api.github.com/users/CMSgov/gists{/gist_id}","starred_url":"https://api.github.com/users/CMSgov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CMSgov/subscriptions","organizations_url":"https://api.github.com/users/CMSgov/orgs","repos_url":"https://api.github.com/users/CMSgov/repos","events_url":"https://api.github.com/users/CMSgov/events{/privacy}","received_events_url":"https://api.github.com/users/CMSgov/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CMSgov/qpp-conversion-tool","description":"Conversion tool for QPP, particularly focused on QRDA3 -> QPP, built by Flexion. ","fork":false,"url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool","forks_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/forks","keys_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/teams","hooks_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/hooks","issue_events_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/issues/events{/number}","events_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/events","assignees_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/assignees{/user}","branches_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/branches{/branch}","tags_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/tags","blobs_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/git/refs{/sha}","trees_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/statuses/{sha}","languages_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/languages","stargazers_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/stargazers","contributors_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/contributors","subscribers_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/subscribers","subscription_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/subscription","commits_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/commits{/sha}","git_commits_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/git/commits{/sha}","comments_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/comments{/number}","issue_comment_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/issues/comments{/number}","contents_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/contents/{+path}","compare_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/merges","archive_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/downloads","issues_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/issues{/number}","pulls_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/pulls{/number}","milestones_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/milestones{/number}","notifications_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/labels{/name}","releases_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/releases{/id}","deployments_url":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/deployments","created_at":"2017-03-24T20:26:32Z","updated_at":"2018-02-22T20:56:36Z","pushed_at":"2018-03-05T15:23:36Z","git_url":"git://github.com/CMSgov/qpp-conversion-tool.git","ssh_url":"git@github.com:CMSgov/qpp-conversion-tool.git","clone_url":"https://github.com/CMSgov/qpp-conversion-tool.git","svn_url":"https://github.com/CMSgov/qpp-conversion-tool","homepage":null,"size":22715,"stargazers_count":7,"watchers_count":7,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":12,"mirror_url":null,"archived":false,"open_issues_count":7,"license":{"key":"cc0-1.0","name":"Creative Commons Zero v1.0 Universal","spdx_id":"CC0-1.0","url":"https://api.github.com/licenses/cc0-1.0"},"forks":12,"open_issues":7,"watchers":7,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/pulls/642"},"html":{"href":"https://github.com/CMSgov/qpp-conversion-tool/pull/642"},"issue":{"href":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/issues/642"},"comments":{"href":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/issues/642/comments"},"review_comments":{"href":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/pulls/642/comments"},"review_comment":{"href":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/pulls/642/commits"},"statuses":{"href":"https://api.github.com/repos/CMSgov/qpp-conversion-tool/statuses/5d82b40442f4368c1a99754da2317b92af5697a0"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"omnivion"}}