Project-Explanation User Guide-NHS
Project-Explanation User Guide-NHS
Hi, this is sreenu, I completed BTech in August 2015 and, I have 3.2 years of experience on java
j2ee technology, a part from my experience I involved in three projects. Some of the projects are
belongs to Banking Domain (BFS) and some are belongs to Health Care Domain. In all these
projects I used technology like-Java J2ee, spring, web services, Hibernate, Design Pattern, Tools
(JUnit, Maven, SVN, Log4j, WinScp and Putty etc) and etc.
National Cardiac Audit Programme (NCAP) is the national health project to manage
Hospitals,Patients and audit across UK.
This project is very high volume data, every hospital will provide and option to manage their patient
details and audits of the patients respectively. Hospitals have an option to export and import data as
well. The services are divided into three different modules,
1. Patient: It is the rest service for manage patients. In this project api’s are provided for create,
edit and search patients.
2. Registration: Hospitals will register with NHS Application. Hospitals can enter their the
required details.If these details are validated then NHS Application will stored these details into DB
And also generate generate the credentials.Send these credentials to hosiptals emails.
3. Import and Export : Hospitals can insert the data using in single record or import as bulk
details and also get list of patient details on page or can export in the form of PDF or excel or text.
4. Audit: NCAP is the project developed for managing audits (procedures). In this hospital user can
enter the details of the procedure. The details entered are validated based on the rules defined for a
procedure. If there are not serious error particular audit details are exported to analysis system.
Here with respect to the project architecture, Hospitals will send the HTTPs request, by
this request going to the provider side (a) Service Layer (b) Process Layer (c)
Integration Layer, in this service layer we are validating the data and calling the process
layer & send it to the process layer, by this data we perform the converting point logic.
A part of my project technical flow, here first we are taking the business requirement
from the client and by this business requirement we prepare the Data Mapping Sheet,
and we prepare the Schema file, and by using this XSD file we generate the WSDL, and
then create the Artifacts (creating the .java and .classes file).
And by the artifacts create Service layer implementation class, in this class calling the
interface of whatever generated by the WSDL file.
Here is the Technical Flow of my project (Partner Integration).
Business Requirement
WSDL File
SOR
Web-
services
Fig: - Technical flow of Spine(Patient Details) Service.
As of our project, here first we take the request and response element by the Data mapping
sheet, by this we create the XSD files and then create the WSDL files also. After completion of
this work we create the Artifacts and by this create the Layers like-
In the Service layer, calling the interface by the implementation class and we prepare the web
service request object and then building the request for process layer and then call the process
layer, In process layer building the request for Integration layer and calling the Integration
layer, In integration layer transfer the request data to the SOR system or web-service for storing
the data permanent.
ClassNotFoundException :- At the time of loading the class if that class is not available
then that you will get the ClassNotFoundException.
To resolve this Exception you make sure whatever you load the class, that class is
available. Another style of handle this exception is you should pass the class otherwise
you will get this exception.
7. What are the exceptions you have used in project during deployment?
A part of our project we are facing the different type of exception like,
A). OutOfMemoryException.
B). ResourcesFailedException.
C). NullPointerException, and etc.
A). OutOfMemoryException : - To handle this exception, we raise request/ticket to
support/admin team. They will resolve issue and update the ticket, in stage server we
handled or resolve this issue.
Here have some reasons.
Encapsulation is the ability to package data. It is all about packaging related stuff
together and hides them from external elements. Encapsulation importance here is for
binding data and methods together.
The concept of polymorphism is to provide the multiple actions. Single task can perform
multiple operations is called polymorphism.
Polymorphism means making a bunch of abstract and regular classes.
For example we are create own object structure. Make different objects extends each
other. And then write the same methods over again using different parameters and
putting them in the parent class and subclass then test these objects by writing a main
class.
The best example of polymorphism is, in our project we have implemented, build the
response. If it is success we are calling one method buildResponse(obj.).
If it is failure we will call same buildResponse(String respCode, String respMsg). But
method parameter must be different.
EX :
public class RegSvcRequestBuilder{
public respType buildResponse(reqType reqtype){
private String pid;
private String pname;
private String address;
//setter and getter.
}
}
If Exp <3
My role is Developer and my responsibilities are involved in development the project.I
have involved to write rest based webserivce and also invoked to consume the serivce.
-->I got the chance to work on service,process layer,intg layer
-->involved in Junits using mockito,powermockito
-->implement the spring IOC,logging
-->Support the testing
If Exp > 3
My Role is Senior Developer and my responsibilites are understand the project
requirement from the cleint by attending project status calls and also involved in project
development
where i have develop rest service both provider and consumer
-->involved in Junits using mockito,powermockito
-->implement the spring IOC,logging
-->Support the testing
-->Helping to team if they are strucking anywhere and also
guide to them hot to write junit test cases for some part of the code.
11 Q) What are the problems/risks you have faced in project ?
Sol : we have faced many problems ,some of them are
1. Special character issue :
In our project we will send then response data in the form of json. One of the
element value is getting special character in production,where as dev and test
environment it is not getting. As a provider i am send as it is response to
consumer.Consumer end unable to perform deserializae at their end.i.e. unable convert
json to java object.
2. DB Issue : DB team while move the data from test to prod they did misake one of the
db element is configured is wrong.
So in production always we are getting SQLInvalidGrammerError.
DB team has fix the issue
For this issue PSG(Production Support Group) team has raised the Sev-2 IMR. We have
resolved the issue with the help of DB team.
Sev-1 : very high priority Sev-2 : High Sev-3 : medium Sev- 4 : Low
1)If you get issue in production what will you do and how you will resolve it?
2)If the server in which your application running is down what will you do and how do you
resolve the problem?
4)In Spring Boot we use Tomcat while developing,do you use the same Tomcat in the
production?
5)Explain where exactly you used HQL and Criteria API?what are the disadvantage of hibernate?
6)Explain at what scenario we should go for SOAP and when should we go for REST?
7)Where and how did you implement multi threading in your project? Did you do it in your
program or the application server?How many threads are you executing parallel?
9) Apart from using try and catch how did you implement exception handling?
1)List (What are the kinds of List Objects you have used)?
2)Set (What are the kinds of Set Objects you have used)?
3)Map (What are the kinds of Map Objects you have used)?
12)Explain any 2 complicated scenarios you have faced in developing the application ?
client ServiceImpl
Response
WSReq
Validator
Error
true false
validate
WSReq WSResp
SvcReqBuild SvcResBuild
er er
VBReq VBRes
DaoRes Process
Call process
layer ResBuilder
VBRes
VBReq
process
ReqBuilder
DaoReq
DaoRes DaoImpl
UtilReq UtilResp
DaoUtil
DBReq DBResp
Data Base
1.1validRequest()
WsResfail 1.2
2. buildReq()
4.processDaoReq
7.call DB
8.ResultSet
10.getDbRsponse()
11.buildBbResponse()
12.getBbResponse()
13.buildWsResponse()