Challenge Overview
1. Project Overview
The Healthcare Fraud Prevention Partnership (HFPP) is building a network to exchange data between health insurers to detect and prevent fraud. An essential requirement is that data must be stored individually on each partner's premises, not centralized in a warehouse. The data exchange network must be decentralized and secure, and it must encourage reciprocity in sharing data.
The process of collecting and analyzing data is encapsulated in a concept called the study. Each study is a plan to answer certain questions about healthcare reimbursement claims that have been submitted to health insurers who are partners in the HFPP.
The front end of the HFPP system has a study management interface that is currently under development. In the initial version of the HFPP system, studies are designed by an external committee and delivered to a trusted third party (TTP) for execution. The TTP user enters a study in the form of business rules that express the following constraints:
- which partners are being asked to contribute data to the study
- what data is requested from each partner's database
Upon receiving the data requests, partners who agree to contribute to the study retrieve the requested claims and transform them into a standard XML format using a conversion module that is currently under development. The data exchange network will take the output of the conversion module and transmit it to the TTP for aggregation and analysis.
This module implements the full stack of the Network Hub, including the data models, persistence, business services, AMQP message listeners and a daemon.
2. Competition Task Overview
This assembly implements the data models, business services and exceptions related to business services.
2.1 Scope
This assembly is responsible for the following:
- All classes shown on "Model Class Diagram"
- All interfaces and classes shown on "Network Hub Services Class Diagram"
- The following exceptions shown on "Exception Class Diagram"
- ConfigurationException
- NetworkHubServiceException
- EntityNotFoundException
- DataRequestExpiredException
- AuthenticationException
- InsufficientParticipationRatioException
- AuthorizationException
Implementation details are provided at TCUML method documentations.
2.2 Database Triggers
This assembly is responsible for implementing the database triggers used for automatically keeping history data. A SQL script is provided by the architect, which may be used as a reference.
2.3 Qpid Java Broker Setup
This assembly is also responsible for setting up Qpid Java Broker, specifically:
- Queues and Queues ACL (refer to ADS 1.3.4 and 1.3.10.4)
- SSL and SSL Client Certificate Setup (refer to ADS 1.3.10.3)
3. Technology overview
- Java SE 6
- JPA 2.0
- JMS 1.1
- AMQP 1.0
- Apache Log4j 1.2.17
- Apache Commons Daemon 1.0.15
- MySQL Community Server 5.6
- Qpid Java Broker 0.22
- EhCache 2.7.2
- Qpid JMS 0.22
- Hibernate 4.2.3
- Spring Framework 3.2.3
- Jasypt 1.9.0
- Apache Velocity Engine 1.7
- Bitronix JTA Transaction Manager 2.1.3
Final Submission Guidelines
Submission Deliverables
A complete list of deliverables can be found in the TopCoder Assembly competition Tutorial at:
http://apps.topcoder.com/wiki/display/tc/Assembly+Competition+Tutorials
Note: Please read the whole Application Design Specification first. All the details not mentioned in this specification are provided in that document.
- Source code and configuration files.
- Deployment guide to configure and verify the application.