-
Notifications
You must be signed in to change notification settings - Fork 7
Integrating REMITT
REMITT can be thought of as an "abstraction layer" involving disparate billing services, eligibility checking services, remittance processing services, differing low-level billing formats, and other EMR/PM related systems and services.
It exists as a "web service", which is accessed using SOAP protected by HTTP Basic Authentication. A single REMITT server instance can theoretically service thousands (if not more) instances of EMR/PM systems.
The most important part of submitting billing payloads is implementing the REMITT XML Format. This is used with the SOAP insertPayload
method.
Secondarily, there is a "callback" mechanism which should be implemented to handle remittance and batch eligibility information, which is also SOAP. It is specified in the remitt.wsdl definition and should be implemented by an EMR/PM system (code can be generated by wsdl2java
or something similar).
The full SOAP interface is described by the REMITT WSDL file, which is present on any running REMITT instance. This is a brief list of the different functions which can be accessed by an EMR/PM system in order to communicate with the REMITT engine. (Please note that not all functions need to be called by every EMR/PM system.)
-
getFile
: Retrieve a generated output file.- Parameters:
-
category
(string): Type of the file (output
,log
, etc) -
fileName
(string): Name of the file
-
- Returns:
- Contents of the requested file. (The SOAP wrapper will base64 encode the content.)
- Parameters:
-
validatePayload
: Run a REMITT XML Format payload through a custom validator. This may be executed beforeinsertPayload
for sanity checking.- Parameters:
-
validatorClass
(string): -
data
(base64 binary):
-
- Returns:
- Array of payload validation response messages.
- Parameters:
-
getConfigValues
: Get all plugin configuration options for the current user.- Parameters:
- None
- Returns:
- Array of configuration options, containing
name
(string),namespace
(string), andvalue
(string).
- Array of configuration options, containing
- Parameters:
-
getCurrentUserName
: Retrieve the username of the requesting REMITT user.- Parameters:
- None
- Returns:
- String containing the current logged in REMITT username.
- Parameters:
-
parseData
: Frontend for REMITT parsing plugins. This allows some of the inner REMITT logic for parsing X12 messages (among other things) to be exposed, letting the user parse messages into a common XML format.- Parameters:
-
parserClass
(string): Fully qualified class name for aParserInterface
class. This would normally beorg.remitt.parser.X12Message835
for parsing X12 835 messages. -
data
(string): Message text to be parsed.
-
- Returns:
- String, XML text for the converted message.
- Parameters:
-
addKeyToKeyring
: Add a public/private key set to REMITT's keyring for the current user. Currently this is used to import keys for SFTP transport plugins.- Parameters:
-
keyname
(string): -
privatekey
(base64 binary): -
publickey
(base64 binary):
-
- Returns:
- Boolean, success.
- Parameters:
-
listRemittUsers
: Get a list of all of the REMITT users on the system. Can only be called by the administrative user.- Parameters:
- None
- Returns:
- Array of UserDTO objects.
- Parameters:
-
batchEligibilityCheck
: Initiate a series of batch eligibility checks.- Parameters:
-
requests
(array of EligilibilityRequest objects, consisting of:)-
plugin
(string): -
request
(array of entry objects)-
entry
(object consisting ofkey
(EligibilityParameter) andvalue
(string))
-
-
-
- Returns:
- Array of integers, which are eligibility request job identifiers.
- Parameters:
-
setConfigValue
: Set a configuration value for a named plugin.- Parameters:
-
namespace
(string): Fully-qualified plugin name with which this option is associated. -
option
(string): Textual option name. -
value
(string): Setting for this option.
-
- Returns:
- Boolean, success.
- Parameters:
-
getOutputYears
: Get all years for which REMITT has output data.- Parameters:
- None
- Returns:
- Array of integer year values.
- Parameters:
-
getProtocolVersion
: Retrieve current REMITT SOAP protocol version.- Parameters:
- None
- Returns:
- String representation of current protocol version.
- Parameters:
-
getFileList
: Get a list of output files based on provided criteria.- Parameters:
-
category
(string): -
criteria
(string): -
value
(string):
-
- Returns:
- Array of file listing objects, containing:
-
filename
(string): Textual name of the file. -
filesize
(int): File size in bytes. -
inserted
(date/time): Insertion timestamp. -
originalId
(string): Original REMITT payload identifier.
-
- Array of file listing objects, containing:
- Parameters:
-
changePassword
: Change current REMITT user's password.- Parameters:
-
newPassword
(string): New password text.
-
- Returns:
- Boolean, success.
- Parameters:
-
getPluginOptions
: List available options for a particular plugin.- Parameters:
-
pluginClass
(string): Fully-qualified plugin class name. -
qualifyingOption
(string):
-
- Returns:
- Array of strings.
- Parameters:
-
getStatus
: Retrieve current status of an inserted payload.- Parameters:
-
jobId
(int): REMITT job identifier, as returned byinsertPayload
.
-
- Returns:
- Integer, status.
- Parameters:
-
addRemittUser
: Create new REMITT user. Can only be called by the administrative user.- Parameters:
-
user
(UserDTO object): New user information.
-
- Returns:
- Boolean, success.
- Parameters:
-
getPlugins
: Get a list of all REMITT plugins for a certain task/category.- Parameters:
-
category
(string): This should normally berender
,translation
(which should not be used in most cases, as it is not externally visible),transport
,eligibility
andscooper
.
-
- Returns:
- Array of strings.
- Parameters:
-
getEligibility
: Perform a single synchronous eligibility request.- Parameters:
-
request
(EligibilityRequest object):
-
- Returns:
- EligibilityResponse object
- Parameters:
-
getBulkStatus
- Parameters:
-
jobIds
(array of int):
-
- Returns:
- Array of integer statuses.
- Parameters:
-
insertPayload
- Parameters:
-
originalId
(string): EMR/PM id associated with this billing batch. -
inputPayload
(string): Generated XML payload format described by REMITT XML Format document. -
renderPlugin
(string): Fully qualified plugin class name for render-stage plugin. Under most circumstances, this will beorg.remitt.plugin.render.XsltPlugin
. -
renderOption
(string): Option for render plugin. This will usually be the XSL stylesheet name, which will normally be4010_837p
,5010_837p
,hcfa1500
orstatement
. A full list is available in the source on github. -
transportPlugin
(string): Fully qualified plugin class name for transport/transmission-stage plugin. There are a growing number of transport plugins available, in theorg.remitt.plugin.transport
namespace. A full list is available in the source on github -
transportOption
(string):
-
- Returns:
- Integer, REMITT batch identifier.
- Parameters:
-
getOutputMonths
- Parameters:
-
targetYear
(int):
-
- Returns:
- Array of integers containing a list of input months for which REMITT has generated output content.
- Parameters:
For this to work properly, the tUser
table fields callbackserviceuri
, callbackservicewsdluri
, callbackusername
, and callbackpassword
must be populated with the appropriate values for the EMR/PM system.
ELIGIBILITY_PARAMETER_NPI
ELIGIBILITY_PARAMETER_INSURANCE_ID
ELIGIBILITY_PARAMETER_INSURED_LAST_NAME
ELIGIBILITY_PARAMETER_INSURED_FIRST_NAME
ELIGIBILITY_PARAMETER_INSURED_DOB
ELIGIBILITY_PARAMETER_INSURED_GENDER
ELIGIBILITY_PARAMETER_INSURED_STATE
ELIGIBILITY_PARAMETER_INSURED_SSN
ELIGIBILITY_PARAMETER_DEPENDENT_LAST_NAME
ELIGIBILITY_PARAMETER_DEPENDENT_FIRST_NAME
ELIGIBILITY_PARAMETER_DEPENDENT_DOB
ELIGIBILITY_PARAMETER_DEPENDENT_GENDER
ELIGIBILITY_PARAMETER_DEPENDENT_RELATIONSHIP
ELIGIBILITY_PARAMETER_SERVICE_TYPE
ELIGIBILITY_PARAMETER_CARD_ISSUE_DATE
ELIGIBILITY_PARAMETER_GROUP_NUMBER
-
messages
(array of strings) -
rawResponse
(string) -
status
(EligibilityStatus enum) -
successCode
(EligibilitySuccessCode enum)
OK
BAD
CONTINUATION
SERVER_ERROR
SUCCESS
VALIDATION_FAILURE
PAYER_TIMEOUT
PAYER_NOT_SUPPORTED
SYSTEM_ERROR
PAYER_ENROLLMENT_REQUIRED
PROVIDER_ENROLLMENT_REQUIRED
PRODUCT_REQUIRED