Solution Architecture Example
Solution Architecture Example
This document presents an example Solution Architecture document. For brevity, some sections are intentionally left incomplete
http://www.tibco.com Global Headquarters 3303 Hillview Avenue Palo Alto, CA 94304 Tel: +1 650-846-1000 Toll Free: 1 800-420-8450 Fax: +1 650-846-1005
2008, TIBCO Software Inc. All rights reserved. TIBCO, the TIBCO logo, The Power of Now, and TIBCO Software are trademarks or registered trademarks of TIBCO Software Inc. in the United States and/or other countries. All other product and company names and marks mentioned in this document are the property of their respective owners and are mentioned for identification purposes only.
Document
Table of Contents
1 Business Objectives and Constraints ......................................................... 5
1.1 1.2 1.3 Quantified Business Expectations ....................................................................... 5 Business Constraints ........................................................................................... 5 Business Risks ..................................................................................................... 5
7 Business Process 2 .................................................................................... 13 8 Business Process n .................................................................................... 13 9 Addressing Non-Functional Solution Requirements ............................... 13
9.1 9.2 9.3 9.4 Performance ....................................................................................................... 13 Availability within a Data Center ........................................................................ 13 Site Disaster Recovery....................................................................................... 15 Security .............................................................................................................. 16
Document
Document
19 Deployment ................................................................................................. 34
19.1 19.2 19.3 19.4 Deployment Environment Migration ................................................................... 34 Development Configuration ............................................................................... 34 Test Configuration .............................................................................................. 35 Production Configuration.................................................................................... 35
Appendix A: Common Data Format Specifications ....................................... 35 Appendix B: Message Format Specifications ................................................ 35 Appendix C: Service Interface Specifications ............................................... 35 Appendix D: Data Storage Specifications ...................................................... 35
Document
2 Solution Context
Nouveau Health Care is part of a larger environment that includes the health care service providers that submit claims and the partner companies that process some of the claims (Figure 2-1). Here we see that there can be more than one claim processor, which explains the need for the Claim Router.
Document
: Billing Provider
: Claim Router
: Payment Manager
: Validate Membership
Document
The Validate Membership process is used by authorized parties (health care providers, employers, and members) to validate whether or not an individual was covered by the policy on a given date. This business process utilizes an underlying Validate Membership Service, which is also used by the Process Claim business process. The Manage Payments process manages the payments to health care service providers resulting from health care claims.1 What makes this process interesting is that, under normal circumstances, payments are made on a periodic basis (e.g. monthly) to health care service providers. This means that the payment manager must keep track of pending payments. By exception, payments to health care service providers for specific claims may be made immediately. Process Claim and its related Route Claim process actually handle the processing of health care claims. Routing is required because some claims are processed by Nouveau itself while others are processed by partner companies. Process Claim is a consumer of both the Validate Membership Service and the services of the Payment Manager. Monitor Claim Processing keeps track of the progress of claim processing. The reason that this is necessary is that some claim processing is done by partner companies. Monitoring provides uniform tracking of all health care claims regardless of whether Nouveau or one of its partners is handling the claim.
4 Domain Model
4.1 Accounts and Funds Transfers
There are three types of bank accounts involved in the claims payment process: Payer Accounts, Provider Accounts, and Settlement Accounts. Each insurance policy has an associated Payer Account from which claims against the policy are paid. Each health care service provider being paid through funds transfers has a Provider Account. The Settlement Account is used as an intermediary account. When the Payment Manager is told to pay a claim, funds are moved immediately into the settlement account, regardless of when the provider is paid. Funds for providers are taken from this account. In the event that the provider is paid by check, the check is drawn on the Settlement Account. For audit reasons, it is necessary to keep track of the movement of funds between accounts. A Funds Transfer Record (Figure 4-1) is created for each transfer. Each record keeps track of the amount transferred, the source and destination accounts, the status of the transfer, and the timing of the transfer.
In the real world, the Manage Payments process would also manage payments to members, reimbursing them for claim-related expenses that they have already paid themselves. 7
Document
-targetAccount
Figure 4-1 Funds Transfer Record Each Funds Transfer Record makes a copy of the account reference information at the time the funds transfer is initiated so that subsequent changes to the account information do not affect the record of past transfers.
Document
In the real world, the payment manager would also manage reimbursements to plan members who paid for services out of their own pocket. 9
Document
Provider Service Issuer Service Issuer -issuerID -IIN -issuer BenefitPlan -planID -payer Benefits Service -payer Bank Account Reference Account
...
Address -payment -paid 1 Mailing Provider Address Payment Manager 1 -billing Provider
Bank Account Reference Settlement ... Account -target Account -source Account Funds Tansfer Record -transactionID
...
-plan 1..* Transfers -claimed Health Care Service Instance Service Instance Payment Services -serviceInstanceID 1..* -billedAmount -adjudicatedAmount -paid -paymentAuthorized : Boolean Service -amountToBePaid -settled : Boolean Instances Service Instance Payment -pendingPaymentAmount 1..* 0..*
0..1
Figure 4-3 Payment Domain Model (Partial) Note that from the Payment Manager perspective, the account reference information for both the plan and provider accounts comes from other services. When the Payment Manager uses this information, it is using a copy. If the copy is made immediately before the information is used, this is generally not a problem. However, if the copy is taken well in advance, consideration must be given to what should occur if the original information is updated. For example, consider what happens if the Payment Manager records the provider account at the time it is told to pay the claim. If the payment is deferred, it would be possible for the provider to change the account between this time and the time that the account is settled. How would the Payment Manager know about the account change?
10
Document
Billing Provider
In practice, each HIPAA transaction interface that is implemented by an enterprise is extended to accommodate the specific requirements of that enterprise. 11
Document
Claim Router HIPAA 837 claim set validate syntax validate billing provider structured for each claim validate membership determine claim processor
Claim Processor
Payment Manager
Bank Service
claim in standard format May indicate either acceptance or rejection submit to claim processor wait for response perform claim validation accept/reject notice
return ACK
determine whether service is covered price service update deductable and determine amount to be reimbursed and party to be reimbursed N manual review Y required? payer account reference May result in being billed as another service
display for user, obtain manual edits and approval approved ? Y1 submit for payment request ACK
payment request structured for each service move funds to settlement account
transfer funds
claim status HIPAA 277 send HIPAA 277 receive claim status update payment
pending settlement provider account reference pay provider update claim status
close claim
Coordination Legend
synchronous interaction asynchronous interaction delegation interaction
Document
Immediate payment, small claim Immediate payment, large claim Deferred payment, small claim Deferred payment, large claim Settle deferred payments
120 seconds
0.2 seconds
60 seconds
60 seconds
.9 seconds
2 seconds to HIPAA 997 Ack 10 seconds to HIPAA 997 Ack 8 seconds per provider
0.1 seconds
N/A
0.2 seconds
1 second
Document
Scenario
Availability
Claim Router Availability 99.999%, 24x7, 1 minute max outage per incident 99.999%, 6AM 12AM, 1 minute max outage per incident
Claim Processor Availability 99.999%, 24x7, 1 minute max outage per incident 99.999%, 6AM 12AM, 1 minute max outage per incident
Payment Manager Availability 99.999%, 24x7, 1 minute max outage per incident 99.999%, 6AM 12AM, 1 minute max outage per incident
Bank Service Availability 99.999%, 24x7, 1 minute max outage per incident 99.999%, 6AM 12AM, 1 minute max outage per incident
99.995%, 24x7, 5 minutes max outage per incident 99.995%, 6AM 12AM, 5 minutes max outage per incident
14
Document
To avoid placing undue availability constraints on individual components, at least two of each component type will be deployed in a high-availability configuration (Figure 9-1). External interactions will occur using an HTTP transport with an IP redirector being used to route requests to the appropriate components. Internal communications within Nouveau Health Care will utilize JMS queues for communications.
Billing Provider Systems : Billing Provider HTTP
: IP Redirector
HTTP
JMS
: IP Redirector : Membership Service [2..n] HTTP JMS : HTTP-JMS Mediation [2..n] JMS : Claim Payment Interface : Claim Payment Notification Interface
JMS
Figure 9-1 Deployment Pattern for High Availability The Claim Router presents an HTTP service interface, since it is intended to be used by external parties. All other interfaces will be SOAP/JMS except for the Claim Payment Notification Interface which will use XML/JMS. Partner requests for Claim Tracker and Payment Manager interfaces will use HTTP as a transport, and ActiveMatrix Mediation components will be used to move these requests to and from the JMS transport.
Document
one hour recovery time objective and 60 seconds recovery point objective. Asynchronous replication of disks between the data centers will be used to keep the disaster recovery site up to date in near real time. Upon failover, all components at the disaster recovery site will be cold-started.
9.4 Security
All service invocations require certificate-based authentication and authorization using web service standards. In all cases, WS-Security will be used to encrypt the message body.
Immediate Payment
Deferred Payment
16
Document
Benefits Service
Provider Service
Banking Service
Claim Tracker
get settlement account structured For each service instance getPayerAccount (Benefits Query Interface::) return payer account
retrievedPlanAccount
get or create a provider settlement record Attempt to transfer requisite funds from plan account to settlement account newAccountingTransfer transfer plan funds
structured for each provider settlement record getProviderAccount (Provider Query Interface::) retrievedProviderAc count return provider account
Compute total of successful accounting transfers for this provider attempt to transfer sum from settlement account to provider account provider accounting transfer reportClaimStatus (Claim Track Interface::) update claim process status
Coordination Legend
synchronous interaction asynchronous interaction delegation interaction
Document
Benefits Service
Banking Service
Claim Tracker
defaultSettlementAccount
get settlement account structured For each service instance getPayerAccount (Benefits Query Interface::) : Bank Account Reference pendingSettlement : Provider Settlement Record obtain existing pending settlement or create one if one does not exist
reportClaimStatus (Claim Track Interface::) pending payments : Pay Claim Response return pending payments
Coordination Legend
synchronous interaction asynchronous interaction delegation interaction
18
Document
Claim Processor
Provider Service
Banking Service
Claim Tracker
structured for each pending settlement Compute total of successful accounting transfers for this provider getProviderAccount (Provider Query Interface::) transferFunds (Bank Service Interface::) newTransfer return provider account transfer funds to provider account
structured for each claim reportClaimStatus (Claim Track Interface::) update claim process status
Coordination Legend
synchronous interaction asynchronous interaction delegation interaction
10.2 Interfaces
The interfaces presented by the payment manager are shown in Figure 10-5 and detailed in the Payment Manager Specification document.
19
Document
Claim Payment Interface +payClaim( request : Claim Payment Request ) : Claim Payment Response
...
Payment Manager
...
-service Instances ToBeSettled 1..* Service Instance Payment Input -claimID -serviceInstanceID -amountToBePaid -providerID -planID
-service Instance Settlement Results * Service Instance Payment Result -claimID -serviceInstanceID -paidAmount -pendingAmount
20
Document
Provider Service Issuer Service Issuer -issuerID -IIN -issuer BenefitPlan -planID -payer Benefits Service -payer Bank Account Reference Account
...
Bank Account Reference Settlement Bank Account Reference Provider ... ... Account Account -target Account -source Account -transactionID
...
1..*
-claimed Services1
0..1
Health Care Service Instance -serviceInstanceID -billedAmount -adjudicatedAmount -paymentAuthorized : Boolean -amountToBePaid -settled : Boolean -pendingPaymentAmount 0..*
Provider Settlement Record Service Instance Ref -serviceInstanceID -paid Service Instances Service Instance Payment 1..* 0..1 -paymentID -paymentAmount -paymentStartDate -paymentCompletionDate
10.5 Coordination
When immediate payment is requested, the service consumer (e.g. Process Claim) requests the payment using the synchronous request-reply coordination pattern (Figure 10-7). The response indicates whether or not the payments were successfully made.
Claim Processor activity prior to claim payment Payment Manager
Coordination Legend
immediate request : Claim Payment Request synchronous interaction asynchronous interaction delegation interaction
Document
For Deferred Payment (Figure 10-8), the exchange between the service consumer and Payment Manager is the front end of a delegation with confirmation interaction. This portion of the interaction simply returns a promise to make the payments at some point in the future. The back end of the delegation with confirmation interaction is the Settle Deferred Payment process, which is triggered by a timer.
service consumer Payment Manager
Deferred Payment
activity prior to claim payment deferred request : Claim Payment Request record payments to be made
claimPaid (Claim Payment Notification Interface::) process settlement report completed payments : Claim Payment Response
10.6 Constraints
There are some restrictions on the interactions that can occur: [lb] [lb] It is invalid to call the Claim Payment Notification Interface claimPaid() operation for a claim for which the Claim Payment Interfaces payClaim() operation has not been invoked. It is invalid to call the Claim Payment Interface cancelPendingPayments for a claim for which: [lb] payClaim() has not been called [lb] The payment has already been made
In a full specification, the triggered behavior mappings would include scenarios to indicate what would happen in each of these circumstances.
22
Document
10.7.2
The payClaim() and claimPaid() operations will be available 99.999% of the time on a 24x7 basis. There will be no scheduled outage times for this operation. Maximum outage time per incident is 60 seconds. The remaining Claim Payment Interface operations will be available 99.999% of the time from 6 AM through 12 AM Eastern time. Maximum outage time per incident is 60 seconds.
10.7.3
In the event of a site disaster recovery, the recovery time objective for the Payment Manager is one hour, and the recovery point objective is 60 seconds.
10.7.4
Security
All invocations of the Claim Payment Interface operations require certificate-based authentication and authorization using web service standards. In all cases, WS-Security will be used to encrypt the message body.
11 Claim Router
This chapter will serve as both the specification and implementation architecture document for the Claim Router.
23
Document
Claim Processor
Provider Service
HIPAA 837 claim set validate syntax validate billing provider structured for each claim validate membership determine claim processor validate membership return provider status
May indicate either acceptance or rejection HIPAA 997 ACK return ACK
claim status
adjudicate claim
HIPAA 277
update adjudication status and forward update payment status and close claim
pay claim
11.2 Interfaces
The details of the Claim Submission Interface have yet to be defined.
Document
11.5 Coordination
Coordination between the Claim Submitter and the Claim Router is Delegation with Confirmation.
11.6 Constraints
There are no constraints on the use of the interface.
25
Document
12 Claim Processor
12.1 Business Process Involvement
Claim Router Claim Processor Payment Manager Member Service Provider Service Benefits Service Adjudicator
validate membership validate provider May result in being billed as another service query plan price service
price service
update deductable and determine amount to be reimbursed and party to be reimbursed N manual review Y required?
display for user, obtain manual edits and approval approved ? Y1 Delegation with two Confirmations submit for payment
claim status
request ACK
pay provider claim status update claim status update1 update status and forward update claim status
close claim
Coordination Legend
synchronous interaction asynchronous interaction delegation interaction
26
Document
12.2 Interfaces
The details of the Claim Processing Interface have yet to be defined.
12.5 Coordination
Coordination is Delegation with Confirmation.
12.6 Constraints
The constraints on this component have yet to be defined.
13 Membership Service
13.1 Business Process Involvement
See Figure 11-1 and Figure 12-1.
27
Document
13.2 Interfaces
Membership Validation Service Interface +validateMembership( ValidateMembershipRequest ) : ValidateMembershipReply
ValidateMembershipRequest
ValidateMembershipReply
-requests * Membership Data -healthPlanIssuerName : string -healtPlanIssueIdentifier : IIN -healthPlanIdentifier -memberName : string -memberIdentifier : MemberID -dateOfService : Date
-results * Membership Validation Result -healthPlanIssuerName : string -healtPlanIssueIdentifier : IIN -healthPlanIdentifier -memberName : string -memberIdentifier : MemberID -dateOfService : Date -memberIdentifierFound : boolean -membershipValidOnDate : boolean
: Membership Service
JDBC
: Member Database
other internal users : SOAP/JMS Service Consumer : Membership Validation Service Interface SOAP/HTTP1
TBD
13.5 Coordination
Coordination is synchronous request-reply.
28
Document
13.6 Constraints
There are no constraints on the use of this service.
14 Provider Service
14.1 Business Process Involvement
See Figure 10-2 and Figure 10-4.
14.2 Interfaces
Provider Query Interface +getProviderAccount( request : Get Provider Account Request ) : Get Provider Account Reply
Provider Service
14.5 Coordination
Coordination is synchronous request-reply.
14.6 Constraints
There are no constraints on the use of this service.
Document Title Here 29
Document
15 Benefits Service
15.1 Business Process Involvement
See Figure 10-2 and Figure 10-3.
15.2 Interfaces
Benefits Query Interface +getPayerAccount( request : Get Payer Account Request ) : Get Payer Account Reply
Benefits Service
15.5 Coordination
Coordination is synchronous request-reply.
15.6 Constraints
There are no constraints on the use of this service.
30
Document
16 Banking Service
16.1 Business Process Involvement
See Figure 10-2 and Figure 10-4.
16.2 Interfaces
Bank Service Interface +transferFunds( request : Transfer Funds Request ) : Transfer Funds Response +sendCheck( request : Send Check Request ) : Send Check Response
Banking Service
0..1 Funds Tansfer Record -amount -dateTimeInitiated dateTimeConfirmed -transferSuccessful : Boolean -transactionID -source Account Bank Account Reference -routingNumber -accountNumber
31
Document
16.5 Coordination
Interaction with this component will use synchronous request-reply coordination.
16.6 Constraints
There are no constraints on the use of this service.
17 Claim Tracker
17.1 Business Process Involvement
See Figure 10-2, Figure 10-3, Figure 10-4, and Figure 11-1. The details of interacting with the Claim Processor have yet to be defined.
17.2 Interfaces
Claim Track Interface +reportClaimStatus( status : Claim Status Notification ) +trackClaim()
Claim Tracker
32
Document
Provider Issue
Claim Accepted
Service Issue
Claim Closed
Service Presented
Service Covered
Service Priced
Service Paid
17.5 Coordination
Interaction with the reportClaimStatus() operation is one-way (fire-and-forget). Interaction with the trackClaim() operation is synchronous request-reply.
Document Title Here 33
Document
17.6 Constraints
There are no constraints on the use of this service.
18 HTTP-JMS Mediation
18.1 Business Process Involvement
This component is involved as a supporting component for all interactions between the partners claim processor and Nouveaus Claim Tracker and Payment Manager.
18.2 Interfaces
See the Claim Tracker and Payment Manager interfaces.
18.5 Coordination
Coordination will be that specified for each of the referenced interfaces.
18.6 Constraints
There are no constraints on the use of this component.
19 Deployment
19.1 Deployment Environment Migration
The migration details are yet to be defined.
34
Document
Appendix A: Common Data Format Specifications Appendix B: Message Format Specifications Appendix C: Service Interface Specifications Appendix D: Data Storage Specifications
35