User bio
Dynamic and results-driven Integration Interface Specialist with over two decades of success leading a wide range of corporate IT initiatives. Proven track record in designing and implementing integrated solutions that align with and support strategic business objectives. Adept at bridging the gap between technical systems and operational needs to create robust, scalable environments.
Core Specialties:
- Design and development of Microsoft and Oracle SQL databases
- HL7 ancillary systems integration
- Intersystems Ensemble and IRIS solutions
- Legacy systems expertise including eGate, DART, JDBC, and custom interface components
Professional Highlights:
- Deep expertise in Intersystems technologies, particularly Ensemble and Cache ObjectScript, developed through hands-on problem-solving and active engagement with the Intersystems Developer Community.
- Known for a self-driven learning style—asking the right questions, exploring solutions independently, and collaborating effectively when needed.
- Strong background in legacy integration platforms, with years of experience developing and maintaining systems and handling non-standard integration challenges.
Show all
Westerville, Ohio
Member since Mar 2, 2016
Posts:
Replies:
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": [
"<REGULAR EXPRESSION>PatternSet+4^%Regex.Matcher.1"
]
}
],
"summary": "ERROR #5002: ObjectScript error: <REGULAR EXPRESSION>PatternSet+4^%Regex.Matcher.1"
}
Certifications & Credly badges:


Global Masters badges:







Followers:
Following:
Does this only pertain to those that use IRIS as a FHIR Repository?