# VHA POA Technical Solutioning Overview
## External services potentially factoring into the equation
* VBMS: VHA stakeholders (spcifically Erik Shepherd) have indicated that there are POAs that pertain to VHA available through VBMS that Caseflow is not currently pulling in
* BGS: Where Caseflow is currently pulling POA data from.
* MPI: From the MPI [Service Description Document](https://boozallen.sharepoint.com/teams/VABID/appeals/Documents/Forms/AllItems.aspx?id=%2Fteams%2FVABID%2Fappeals%2FDocuments%2FExternal%20Services%2FVBMS%2Fvbms%5Fdodaf%5Fservices%2Epdf&viewid=8a8eaf3e%2D2c12%2D4c87%2Db95f%2D4eab3428febd&parent=%2Fteams%2FVABID%2Fappeals%2FDocuments%2FExternal%20Services%2FVBMS) (page 165) we know that MPI utilizes the `VeteranAPI` to communicate with both the `ClaimantWebService` and `OrgWebService` to pull POA data.
There is also mention of POA data available through the Benefits Security Service (pages 6-7)
## External services docs
* [VBMS](https://boozallen.sharepoint.com/:f:/r/teams/VABID/appeals/Documents/External%20Services/VBMS?csf=1&web=1&e=M4GG2O)
* [MPI](https://boozallen.sharepoint.com/:f:/r/teams/VABID/appeals/Documents/External%20Services/MPI?csf=1&web=1&e=duc6H3)
## Gems currently in use by Caseflow
* `ruby-bgs`: provides our interaction with BGS and then subsequently data retrieval from the corporate database (corpDB) via web services. The web services that specifically pertain to POA retrieval reside in two separate places
1. [`ClaimantWebService`](https://github.com/department-of-veterans-affairs/ruby-bgs/blob/master/lib/bgs/services/claimant.rb):
* [`find_poa_by_participant_id`](https://github.com/department-of-veterans-affairs/ruby-bgs/blob/master/lib/bgs/services/claimant.rb#L23-L26)
* [`find_by_by_file_number`](https://github.com/department-of-veterans-affairs/ruby-bgs/blob/master/lib/bgs/services/claimant.rb#L30-L33)
2. [`OrgWebService`](https://github.com/department-of-veterans-affairs/ruby-bgs/blob/master/lib/bgs/services/org.rb):
* [`find_poas_by_file_number`](https://github.com/department-of-veterans-affairs/ruby-bgs/blob/master/lib/bgs/services/org.rb#L29-L32)
* [`find_poas_by_ptcpnt_id`](https://github.com/department-of-veterans-affairs/ruby-bgs/blob/master/lib/bgs/services/org.rb#L35-L38)
* [`find_poas_by_ptcpnt_ids`](https://github.com/department-of-veterans-affairs/ruby-bgs/blob/master/lib/bgs/services/org.rb#L41-L44)
* [`find_poas_by_claim_ids`](https://github.com/department-of-veterans-affairs/ruby-bgs/blob/master/lib/bgs/services/org.rb#L47-L50)
* [`find_limited_poas_by_bnft_claim_ids`](https://github.com/department-of-veterans-affairs/ruby-bgs/blob/master/lib/bgs/services/org.rb#L53-L56)
* `connect_vbms`: the [read me](https://github.com/department-of-veterans-affairs/connect_vbms#readme) outlines this gem as usable for "*communicating with the eFolder Service API provided by Veteran Benefits Management System (VBMS)*"
* `connect-mpi`: Caseflow's current interation with MPI, utilizing SOAP calls