I was able to figure it out, and get it to work..

Class osuwmc.DataLookup.REST.TableLookup Extends osuwmc.DataLookup.REST.Base
{

Parameter Version = "1.0.0";

Parameter HandleCorsRequests = 0;

XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
{
<Routes> 
    <!-- Server Info -->
    <Route Url="/" Method="GET" Call="GetInfo" />
    <Route Url="/EpicDepartment" Method="GET" Call="GetAllEpicDepartments" />
    <Route Url="/EpicDepartment/:departmentID" Method="GET" Call="GetEpicDepartment"/>
    </Routes>
}

ClassMethod GetInfo() As %Status
{
    SET version = ..#Version
    SET info = {
      "version": (version)
    }
    RETURN ..%ProcessResult($$$OK, info)
}

ClassMethod GetAllEpicDepartments() As %Status
{
    SET tSC = $$$OK
    set %response.ContentType = ..#CONTENTTYPEJSON
    set rset = ##class(osuwmc.Epic.Clarity.DepartmentMaster).ExtentFunc()
    write "["
    if rset.%Next(){
      set department = ##class(osuwmc.Epic.Clarity.DepartmentMaster).%OpenId(rset.ID1)
      do department.%JSONExport()
    }
    while rset.%Next(){
      write ","
      set department = ##class(osuwmc.Epic.Clarity.DepartmentMaster).%OpenId(rset.ID1)
      do department.%JSONExport()
    }
    write "]"
    quit tSC
}

ClassMethod GetEpicDepartment(departmentID As %String) As %Status
{
  #dim tSC as %Status = $$$OK
  #dim e As %Exception.AbstractException
  #dim id as %Integer

  set %response.ContentType = ..#CONTENTTYPEJSON
  &sql(SELECT ID1 INTO :id FROM osuwmc_Epic_Clarity.DepartmentMaster WHERE ID = :departmentID)
  IF SQLCODE<0 {WRITE "SQLCODE error ",SQLCODE," ",%msg  QUIT}
  ELSEIF SQLCODE=100 {WRITE "Query returns no results"  QUIT}
  set department = ##class(osuwmc.Epic.Clarity.DepartmentMaster).%OpenId(id)
  Do department.%JSONExport()
  QUIT tSC
}

ClassMethod SwaggerSpec() As %Status
{
  Set tSC = ##class(%REST.API).GetWebRESTApplication($NAMESPACE, %request.Application, .swagger)
  Do swagger.info.%Remove("x-ISC_Namespace")
  Set swagger.basePath = "/api/mgmnt/v1/TESTCLIN/spec/TableLookup"
  Set swagger.info.title = "REST API to Access and Query OSUWMC Cache Tables"
  Set swagger.info.version = "0.1"
  Set swagger.host = "intengtest"
  Return ..%ProcessResult($$$OK, swagger)
}

}

That helped. I was able to get my first two Method's called; however, I am struggling now with passing a value into the message.

<Routes> 
    <!-- Server Info -->
    <Route Url="/" Method="GET" Call="GetInfo" />
    <Route Url="/GetAllEpicDepartments" Method="GET" Call="GetAllEpicDepartments" />
    <Route Url="/GetEpicDepartment" Method="GET" Call="GetEpicDepartment" />
</Routes>
ClassMethod GetEpicDepartment(ID As %String) As %Status
{
    SET tSC = $$$OK
    set sql = "SELECT ID as DepartmentID, Abbr, Name, ExternalName, PhoneNumber, ApptPhone, FaxNumber, Address1, Address2, City, Zip, Specialty, RevLocID, RevLocName, BuildingCategoryID, BuildingName, DepCategoryTypeID, DepType, Center, EAFParent, CostCenter FROM osuwmc_Epic_Clarity.DepartmentMaster WHERE ID = ?"
    do ##class(%ZEN.Auxiliary.jsonSQLProvider).%WriteJSONFromSQL(,,sql,ID)
    return tSC
}

When I try to pass... https://intengtest/api/mgmnt/v1/TESTCLIN/spec/TableLookup/GetEpicDepartment/{ID} into postman I get the following...

{
    "errors": [
        {
            "code": 5002,
            "domain": "%ObjectErrors",
            "error": "ERROR #5002: ObjectScript error: <REGULAR EXPRESSION>PatternSet+4^%Regex.Matcher.1",
            "id": "ObjectScriptError",
            "params": [
                "&lt;REGULAR EXPRESSION&gt;PatternSet+4^%Regex.Matcher.1"
            ]
        }
    ],
    "summary": "ERROR #5002: ObjectScript error: &lt;REGULAR EXPRESSION&gt;PatternSet+4^%Regex.Matcher.1"
}

The Enterprise Application Developers (Web Team) that develop our External Patient facing Applications are not used to trying to connect to something other than Microsoft SQL from .Net. So, trying to find a way to expose this via a REST application would be helpful and less time consuming then trying to figure out the InterSystems Drivers to connect via ODBC/JDBC from .Net.

I have updated the structures so both Request and Response have different %Persistent classes, but I am still running into the same issue.

"

Event Text

Warning 808842808

 
 

Warning on Message body 18@osuwmc.Epic.FHIR.DataStructures.PatientSearch.Request'
/ 17 because Status 'ERROR <Ens>ErrException: <INVALID OREF>Transform+3 ^osuwmc.Scott.FHIR.DemoOutboundHL7Message.1 -- logged as '-'
number - @'
Set:""=source.DocType tBlankSrc=1, source.DocType="ORMORUPDF:MDM_T02"''
matched ReplyCodeAction 1 : 'E=W'
resulting in Action code W"

Great tip, for connections that go through our Firewall to outside of our network using a VPN we typically use a setting of 3600 to ensure we are getting a fresh connection after a period of inactivity.  I have found especially with some of our applications that use AWS, that they are not respecting the Disconnect, so we have to ensure our settings match theirs.