You are on page 1of 82

CHAPTER 1

INTRODUCTION

1.1 ORGANISATION PROFILE

1.1.1 About the Company

1
1.2 ABOUT THE PROJECT

Electronic Health Record (EHR) is longitudinal collection of electronic health


information for and about persons, where health information is defined as information
pertaining to the health of an individual or health care provided to an individual and it can
support of efficient processes for health care delivery. In order to ensure successful
operation of EHR, a Health Information Exchange (HIE) system is needed in place.
However, most of the HIS in service are different and incompatible. Hence, effective
health information exchange needs to be standardized for interoperable health
information exchange between hospitals. Especially, clinical document standardization
lies at the core of guaranteeing interoperability.

CDA (Clinical Document Architecture) by Health Level Seven is a major standard


for clinical documents. CDA is a document mark up standard that specifies the structure
and semantics of clinical documents for the purpose of exchange.

The first version of CDA was developed in 2001 and Release 2 came out in 2005.
Many CDA-based projects have been successfully completed in many countries. Active
works are being done on improving semantic interoperability based on open EHR and
CEN13606. To ensure interoperability of HIE, the number of HIS that supports CDA
needs to be sufficiently large. However, the structure of CDA is very complex and the
production of correct CDA document is hard to achieve without deep understanding of
the CDA standard and sufficient experience with it.

In addition, the HIS development platforms for hospitals vary so greatly that
generation of CDA documents in each hospital invariably requires a separate CDA
generation system.. The US Government runs the Meaningful Use Program to improve
efficiency in healthcare and patient safety. This program was launched as a part of
incentives to raise the EHR adoption rate for EHR hospitals. The CDA document
pertaining to a patient is generated at the clinic where the patient is diagnosed. The
generated CDA document can be sent to other clinics after patients consent is acquired.

2
1.3 PROBLEM DEFINITION

Structured Clinical Documentation is a fundamental component of the healthcare


enterprise linking both clinical (e.g., electronic health record, clinical decision support)
and administrative functions (e.g., evaluation and management coding, billing). At its
core, Structured Clinical Documentation consists of template-based, logically driven
instruments designed to facilitate and minimize the guesswork of coding and
documenting information regarding a patient throughout the continuum of care.

When well implemented in the context of the clinical workflow, these instruments
can save clinicians time as well as well as assure clinical thoroughness, thus reducing the
chance of medical errors. Stakeholders in basic sciences, health services and medical
informatics research recognize the importance of information captured directly from
episodes of clinical care for research, real-time decision support and patient screening for
clinical trials or clinical syndromes.

Structured entry and reporting systems promise to meet this need by enabling
health care providers to document clinical encounters through selection from pre-defined
categories. Structured entry and reporting systems are designed to enhance the process of
clinical documentation by both presenting useful categorical concepts in a user interface
and capturing input from the end user though the interface as machine-readable data.
Structured entry is achieved as the end user navigates through lists of relevant concepts
and sets status (e.g. present/absent, etc.) or strongly typed values.

The main objectives of these systems are: Capture of raw data in a consistent and
cohesive I manner enabling generation and delivery of reminders and alerts to the point
of care while providing an infrastructure for clinical research. This leads to enhancement
of patient care. Reduce variability in the quality and quantity of concepts recorded as part
of the medical record. This enables research investigators to seamlessly integrate research
questions without impacting the clinical workflow. Although the benefits of structured
entry and reporting systems have been well documented, their widespread

3
implementation and consequent adoption has been limited due to the following reasons.
Inefficiency, complexity and slow pace of navigating through user interfaces to find
relevant content. Inflexibility for documenting unforeseen findings. Lack of integration
with clinical applications Deficiencies in both coverage by and goals of the underlying
domain and document models.

We present a semantics-based infrastructure that seeks to address some of the


abovementioned issues. The ability to create and manage definitions, i.e., definitions
management, for various concepts such as diseases, drugs, complications, etc. is crucial
for consistent maintenance and creation of documentation templates across the
organization. Definitions management involves the creation and management of concepts
and other knowledge objects that could be components of controlled vocabularies,
domain models and on tologies.

In this paper, we present a real world implementation of a semantics-based


approach, with ontological underpinnings to automate execution and maintenance of
documentation templates based on description logics (DL) system management. The
proposed infrastructure help address issues related to the evolution of the underlying
document and domain models. We leverage semantic inferences to automate the process
of generating and rendering complex documents and enable precise location of relevant
clinical content referenced in these documents.

These techniques enable rendering static and dynamic templates that contain
branching logic and manage the impact of definition changes on the creation and
rendering of these documentation templates. The organization of the paper is as follows.
In Section 2, we present a real-world scenario and use case that describes an actual
documentation template implemented at Partners HealthCare. The document and domain
CDA used in the system. We present and discuss the architecture of the system we present
the functionality of the clinical documentation system in the clinical and maintenance
contexts. The organization will used in the CDA document.

4
CHAPTER 2

SYSTEM ANALYSIS

System analysis or study is an important phase of any system development


process. A feasibility analysis was performed to evaluate possible solutions to
recommend the most feasible one.

2.1 EXISTING SYSTEM

In existing system many CDA-based projects have been successfully completed in


many countries. Based on open EHR and CEN13606 Active works are being done on
improving semantic interoperability. Without deep understanding of the CDA standard
and sufficient experience on it, production of correct CDA document is hard to get. Here
the structure of CDA is very difficult and large .Hospital infrastructure development
platforms for hospitals, vary so greatly. That generation of CDA documents in each
hospital sterilely requires a separate CDA generation system.

Structured entry and reporting systems promise to meet this need by enabling
health care providers to document clinical encounters through selection from pre-defined
categories. Structured entry and reporting systems are designed to enhance the process of
clinical documentation by both presenting useful categorical concepts in a user interface
and capturing input from the end user though the interface as machine-readable data.
Structured entry is achieved as the end user navigates through lists of relevant concepts
and sets status (e.g. present/absent, etc.) or strongly typed values.

DEMERITS OF EXISTING SYSTEM

Need complete understanding CDA documentation


The structure of CDA is very complex
Application cost is more.
2.2 PROPOSED SYSTEM

5
In proposed system we presented A CDA documents generation system and
integration system that generates CDA documents. In different developing platforms
integrates multiple CDA documents scattered in different hospitals for each patient. This
system is accessible through Open API developers are easily use their favourite
development platforms such as Java .NET and C/C++. Here Materials and Methods,
detailed explanations made on the format of CDA document.

Cloud computing and the overall architecture of our proposed system and
contrasts it to different HIE system in various countries to point out the strengths of our
system. We chose a widely used cloud service, amozan cloud and provide the CDA
generation and integration system as SaaS. In proposed system we can able to use any
type of platform to accesses the patients information Hospitals are permit to conveniently
generate CDA documents without having to purchase software.

CDA document integration system integrates multiple CDA documents per patient
into a single CDA document and physicians and patients can browse the clinical data in
chronological order. In proposed work is providing security to the CDA document and a
unique identity (id) is generated and given to the patients for avoiding the interchanging
and duplication of medical reports. Every detail in CDA Document is Encrypted and
stored in Database. All Details in CDA Document is secured using various Security
Algorithms.

ADVANTAGES OF PROPOSED SYSTEM

Inter feasibility between hospitals improve patient safety and quality, and Reduce
time and resource spent on data format conversion.
CDA documents integration system is accessible through Open API.
All the developers are free to use their favorite development platforms.

6
2.3 FEASIBILITY STUDY

The feasibility of the project is analyzed in this phase and business proposal is put
forth with a very general plan for the project and some cost estimates. During system
analysis the feasibility study of the proposed system is to be carried out.

This is to ensure that the proposed system is not a burden to the company. For
feasibility analysis, some understanding of the major requirements for the system is
essential.

Three key considerations involved in the feasibility analysis are

Economical feasibility
Technical feasibility
Social feasibility
Managerial Feasibility
Operational Feasibility

2.3.1 Economical feasibility

This study is carried out to check the economic impact that the system will have
on the organization. The amount of fund that the company can pour into the research and
development of the system is limited.

The expenditures must be justified. Thus the developed system as well within the
budget and this was achieved because most of the technologies used are freely available.
Only the customized products had to be purchased.

2.3.2 Technical Feasibility

This study is carried out to check the technical feasibility, that is, the technical
requirements of the system. Any system developed must not have a high demand on the
available technical resources. Technical Feasibility centres on the existing computer
system hardware, software, etc. This will lead to high demands on the available technical
resources. This will lead to high demands being placed on the client.

7
2.3.3 Social Feasibility

The aspect of study is to check the level of acceptance of the system by the user.
This includes the process of training the user to use the system efficiently. The user must
not feel threatened by the system, instead must accept it as a necessity. The user must not
feel threatened by the system, instead must accept it as a necessity. The level of
acceptance by the users solely depends on the methods that are employed to educate the
user about the system and to make him familiar with it.

The level of acceptance by the users solely depends on the methods that are
employed to educate the user about the system and to make him familiar with it. His level
of confidence must be raised so that he is also able to make some constructive criticism,
which is welcomed, as he is the final user of the system.

2.3.4 Managerial Feasibility

The aspect of study is to check the level of acceptance of the system by the user.
This includes the process of training the user to use the system efficiently. The user must
not feel threatened by the system, instead must accept it as a necessity.
The level of acceptance by the user solely depends on the methods that are
employed to educate the user about the system and to make him familiar with it. His level
of confidence must be raised so that he is also able to make some constructive criticism,
which is welcomed, as he is the final user of the system.

2.3.5 Operational Feasibility

Operational feasibility is dependent on human resources available for the project


and involves projecting whether the system will be used if it is developed and
implemented. People are inherently instant to change and computers have been known to
facilitate change. His level of confidence must be raised so that he is also able to make
some constructive criticism, which is welcomed, as he is the final user of the system.
User have towards the development of the computerized system.

8
2.4 USER INTERFACE REQUIREMENTS

In addition to functions required, describe the characteristics of each interface


between the product and its users (e.g., required screen formats/organization, report
layouts, menu structures, error and other messages, or function keys).The implementation
stage involves careful planning, investigation of the existing system and it is constraints
on implementation can be effective.

2.4.1 Module Description

Admin Module
An admin of a Hospital is a member that will enter the details of the patient, and
maintain the data in the database and provide the protocol for patients when to come and
give appointment. They will send that reports to doctors. Maintain authentication login,
and acts as mediator between user/patient and Doctor. Patients Medical record data is
critical for the analysis and research purposes. This data includes patient history,
observation, diagnosis and therapeutic conclusions along with the tests details and serves
as a source of information for any analysis and research.

Patient Registration Module

Every patient who visits the hospital has to get registered prior to getting any
consultation, treatment or investigations done. Registration of patients involves accepting
certain general and demographic information about the patient. The patient is allocated a
unique Registration number and a Patient Identification number. The Patient ID will
remain same for his all subsequent visits to the hospital. Whereas he will be allocated a
new registration number on every visit. The consultation charges (if applicable) can also
be collected for the patients during registration and a receipt will be generated. Patients
are who will come to a hospital with different types of diseases, will register and get an
appointment from the admin then consult doctor Follow the doctor precautions and
reports are taken by doctors.

9
Doctor Module

In this module we can view the todays doctor on call schedule department wise.
Here we can create the duty plan of doctor and edit or update the duty plan of particular
doctor. Here we can add/delete the doctor to particular department. The doctor is a person
who will work in hospital and qualified to treat people who are ill. And provide
prescriptions, and store confidential patient data in database. Refers to another doctor
regarding patient problem and transfers patient information in the form of CDA
document.

Create CDA Document Module

Clinical Document Architecture is a popular, flexible markup standard developed.


That defines the structure of certain medical records, such as discharge summaries and
progress notes, as a way to better exchange this information between providers and
patients. These documents can include all integral parts of electronic health records.
CDA allows healthcare providers to create digital documents containing patient
information. That they might wish to send to other healthcare providers or regulatory
authorities. The documents contain any and all information about a patients medical
history.

Sharing CDA Document Module

One hospital application in java platform , another hospital application is in .net.


if one hospital refer the patients to another hospital sharing the patient details to another
hospital through cloud. Multiple documents of patient details together into single CDA
document. These clouds can integrate these .net and java platforms. Its not hard to
manage without CDA App. This document is understandable to users.

10
CHAPTER 3
DEVELOPMENT ENVIRONMENT

3.1 HARDWARE REQUIREMENTS

The hardware requirements may serve as the basis for a contract for the
implementation of the system and should therefore be a complete and consistent
specification of the whole system. They are used by software engineers as the starting
point for the system design. It should what the system do and not how it should be
implemented.

Hard disk : 40 GB
RAM : 512mb
Processor : Pentium IV
Monitor : 17 Color monitor

3.2 SOFTWARE REQUIREMENTS

The software requirements document is the specification of the system. It should


include both a definition and a specification of requirements. It is a set of what the system
should do rather than how it should do it. The software requirements provide a basis for
creating the software requirements specification. It is useful in estimating cost, planning
team activities, performing tasks and tracking the teams and tracking the teams progress
throughout the development activity.

Front End : HTML,JSP

11
Code Behind : JAVA,JSP ,J2EE
Back End : SQL SERVER 2008
Operating System : Windows 7.
3.3 LANGUAGE REVIEW

3.3.1 Overview of the .NET Framework

The .NET Framework is a new computing platform that simplifies application


development in the highly distributed environment of the Internet. The .NET Framework
is designed to fulfil the following objectives:

To provide a consistent object-oriented programming environment


whether object code is stored and executed locally, executed locally but
Internet-distributed, or executed remotely.
To provide a code-execution environment that minimizes software
deployment and versioning conflicts.
To provide a code-execution environment that guarantees safe execution
of code, including code created by an unknown or semi-trusted third party.
To provide a code-execution environment that eliminates the performance
problems of scripted or interpreted environments.
To make the developer experience consistent across widely varying types
of applications, such as Windows-based applications and Web-based
applications.

3.3.2 Features of the Common Language Runtime

The common language runtime manages memory, thread execution, code


execution, code safety verification, compilation, and other system services. These
features are intrinsic to the managed code that runs on the common language runtime.
With regards to security, managed components are awarded varying degrees of trust,
depending on a number of factors that include their origin (such as the Internet, enterprise

12
network, or local computer). This means that a managed component might or might not
be able to perform file-access operations, registry-access operations, or other sensitive
functions, even if it is being used in the same active application.
This provides built-in support for language interoperability. To ensure that you
can develop managed code that can be fully used by developers using any programming
language, a set of language features and rules for using them called the Common
Language Specification (CLS) has been defined. Components that follow these rules and
expose only CLS features are considered CLS-compliant. The runtime enforces code
access security. For example, users can trust that an executable embedded in a Web page
can play an animation on screen or sing a song, but cannot access their personal data, file
system, or network. The security features of the runtime thus enable legitimate Internet-
deployed software to be exceptionally featuring rich.

The runtime also enforces code robustness by implementing a strict type- and
code-verification infrastructure called the common type system (CTS). The CTS ensures
that all managed code is self-describing. The various Microsoft and third-party language
compilers generate managed code that conforms to the CTS. This means that managed
code can consume other managed types and instances, while strictly enforcing type
fidelity and type safety.

In addition, the managed environment of the runtime eliminates many common


software issues. For example, the runtime automatically handles object layout and
manages references to objects, releasing them when they are no longer being used. This
automatic memory management resolves the two most common application errors,
memory leaks and invalid memory references.

The runtime also accelerates developer productivity. For example, programmers


can write applications in their development language of choice, yet take full advantage of
the runtime, the class library, and components written in other languages by other
developers. Any compiler vendor who chooses to target the runtime can do so. Language

13
compilers that target the .NET Framework make the features of the .NET Framework
available to existing code written in that language, greatly easing the migration process
for existing applications.
3.3.3. .NET Framework Class Library
The .NET Framework class library is a collection of reusable types that tightly
integrate with the common language runtime. The class library is object oriented,
providing types from which your own managed code can derive functionality. This not
only makes the .NET Framework types easy to use, but also reduces the time associated
with learning new features of the .NET Framework. In addition, third-party components
can integrate seamlessly with classes in the .NET Framework.

As you would expect from an object-oriented class library, the .NET Framework
types enable you to accomplish a range of common programming tasks, including tasks
such as string management, data collection, database connectivity, and file access. In
addition to these common tasks, the class library includes types that support a variety of
specialized development scenarios. For example, you can use the .NET Framework to
develop the following types of applications and services:
Console applications.
Scripted or hosted applications.
Windows GUI applications (Windows Forms).
ASP.NET applications.
XML Web services

3.4 JAVA
3.4.1 JSP Language Specification
A JSP page is a textual document that describes how to create a response object
from a request object for a given protocol. The processing of the JSP page may involve
creating and/or using other objects. A JSP page defines a JSP page implementation class
that implements the semantics of the JSP page. This class implements the
javax.servlet.Servlet interface (see Chapter JSP.11, JSP Container for details). At

14
request time a request intended for the JSP page is delivered to the JSP page
implementation object for processing. HTTP is the default protocol for requests and
responses. Additional request/response protocols may be supported by JSP containers.
The default request and response objects are of type HttpServletRequest and
HttpServletResponse respectively.

3.4.2 Web Containers and Web Components


A JSP container is a system-level entity that provides life-cycle management and
runtime support for JSP pages and servlet components. Requests sent to a JSP page are
delivered by the JSP container to the appropriate JSP page implementation object. The
term web container is synonymous with JSP container. A web component is either a
servlet or a JSP page. The servlet element in a web.xml deployment descriptor is used to
describe both types of web components. JSP page components are defined implicitly in
the deployment descriptor through Core Syntax and Semantics the use of an implicit .jsp
extension mapping, or explicitly through the use of a jsp-group element. Requests sent to
a JSP page are delivered by the JSP container to the appropriate JSP page implementation
object.
3.4.3 Generating HTML
A traditional application domain of the JSP technology is HTML content. The JSP
specification supports well this use through a syntax that is friendly to HTML and XML
although it is not HTML-specific; for instance, HTML comments are treated no
differently than other HTML content. The JSP Standard Tag Library has specific support
for HTML though some specific custom actions.

3.4.4 Generating XML


An increasingly important application domain for JSP technology is dynamic
XML content using formats like XHTML, SVG and the Open Office format, and in
applications like content publishing, data representation and Web Services. The basic JSP
machinery (JSP syntax) can be used to generate XML content, but it is also possible to
tag a JSP page as a JSP document and get additional benefits. A JSP document is an XML

15
document; this means that a JSP document is a well-formed, structured document and
that this will be validated by the JSP container. Additionally, this structure will be
available to the JSP validation machinery, the TagLibraryValidators.
A JSP document is a namespace-aware XML document, with namespaces
reflecting the structure of both content and custom actions and with some additional care,
a JSP page can reflect quite accurately the structure of the resulting content. A JSP
document can also use machinery like entity definitions. The JSP 1.2 specification made
a stronger distinction between JSP documents and non-XML JSP pages. For instance
standard actions like <jsp:expression> were only available in JSP documents. The
difference proved to be confusing and distracting and the distinction has been relaxed in
JSP 2.0 to facilitate the transition from the JSP syntax to XML syntax.

3.4.5 Translation and Execution Phases


A JSP container manages two phases of a JSP pages lifecycle. In the translation
phase, the container validates the syntactic correctness of the JSP pages and tag files and
determines a JSP page implementation class that corresponds to the JSP page. In the
execution phase the container manages one or more instances of this class in response to
requests and other events. During the translation phase the container locates or creates the
JSP page implementation class that corresponds to a given JSP page. This process is
determined by the semantics of the JSP page. The container interprets the standard
directives and actions, and the custom actions referencing tag libraries used in the page. A
tag library may optionally provide a validation method acting on the XML View of a JSP
page, see below, to validate that a JSP page is correctly using the library. A JSP container
has flexibility in the details of the JSP page implementation class that can be used to
address quality-of-service--most notably performance--issues.

During the execution phase the JSP container delivers events to the JSP page
implementation object. The container is responsible for instantiating request and response
objects and invoking the appropriate JSP page implementation object. Upon completion
of processing, the response object is received by the container for communication to the

16
client. The details of the contract between the JSP page implementation class and the JSP
container are described in Chapter JSP.11, JSP Container.

3.4.6 Validating JSP pages


All JSP pages, regardless of whether they are written in the traditional JSP syntax
or the XML syntax of JSP documents have an equivalent XML document, the XML view
of a JSP page, that is presented to tag library validators in the translation phase for
validation. The structure of the custom actions in a JSP page is always exposed in the
XML view. This means that a tag library validator can check that, for instance, some
custom actions are only used within others.
The structure of the content used in a JSP page is exposed in greater or lesser
detail depending on whether the XML syntax or the traditional JSP syntax is used. When
using XML syntax a tag library validator can use that extra structure to, for example,
check that some actions are only used with some content, or within some content, and,
using knowledge of the semantics of the custom actions, make assertions on the
generated dynamic content.

3.5 ABOUT BACK END TOOL


3.5.1 SQL
SQL is a special-purpose programming language designed for managing data held
in a relational database management system (RDBMS).Originally based upon relational
algebra and tuple relational calculus, SQL consists of a data definition language and a
data manipulation language. The scope of SQL includes data insert, query, update and
delete, schema creation and modification, and data access control. Although SQL is often
described as, and to a great extent is, a declarative language (4GL), it also includes
procedural elements.

3.5.2 History
SQL was initially developed at IBM by Donald D. Chamberlin and Raymond F.
Boyce in the early 1970s. This version, initially called SEQUEL (Structured English

17
Query Language), was designed to manipulate and retrieve data stored in IBM's original
quasi-relational database management system, System R, which a group at IBM San Jose
Research Laboratory had developed during the 1970s. As data processing has become
more sophisticated, so have methods for collecting The acronym named as the SEQUEL
was later changed to SQL because "SEQUEL" was a trademark of the UK-based Hawker
Siddeley aircraft company.
In the late 1970s, Relational Software, Inc. (now Oracle Corporation) saw the
potential of the concepts described by Cod, Chamberlin, and Boyce and developed their
own SQL-based RDBMS with aspirations of selling it to the U.S. Navy, Central
Intelligence Agency, and other U.S. government agencies. Fully qualified names are
object references that are prefixed with the name of the namespace.
The acronym SEQUEL was later changed to SQL because "SEQUEL" was a
trademark of the UK-based Hawker Siddeley aircraft company. In June 1979, Relational
Software, Inc. introduced the first commercially available implementation of SQL,
Oracle V2 (Version2) for VAX computers. After testing SQL at customer test sites to
determine the usefulness and practicality of the system, IBM began developing
commercial products based on their System R prototype including System/38, SQL/DS,
and DB2, which were commercially available in 1979, 1981, and 1983, respectively.

3.6 ABOUT REPORT TOOL


In 1981, Microsoft hired Charles Simonyi, the primary developer of Bravo, the
first GUI word processor, which was developed at Xerox PARC. Simonyi started work on
a word processor called Multi-Tool Word and soon hired Richard Brodie, a former Xerox
intern, who became the primary software engineer. Microsoft announced Multi-Tool
Word for Xenix and MS-DOS in 1983. Its name was soon simplified to Microsoft Word.
Free demonstration copies of the application were bundled with the November 1983 issue
of PC World, making it the first to be distributed on-disk with a magazine. That year
Microsoft demonstrated Word running on Windows.

18
Unlike most MS-DOS programs at the time, Microsoft Word was designed to be
used with a mouse. Advertisements depicted the Microsoft Mouse, and described Word as
a WYSIWYG, windowed word processor with the ability to Undo and display bold,
italic, and underlined text, although it could not render fonts.

CHAPTER 4
SYSTEM DESIGN

System design is the process of defining the architecture, components, modules,


interfaces, and data for a system to satisfy specified requirements.

4.1 DATA MODEL

The data model is also called as bubble chart. It is a simple graphical formalism
that can be used to represent a system in terms of the input data to the system, various
processing carried out on these data, and the output data is generated by the system.

Table design

Column Name Data Type


Doctor Name Varchar(50)
Qualification Varchar(50)
Gender Varchar(50)
Dob Varchar(50)
Age Varchar(50)
Address Varchar(50)
Phone No date time
Email Id Varchar(50)
Speciality Varchar(50)
Experience Varchar(50)
Assigned Room No Varchar(50)
Assigned Doctor Id Varchar(50)
19
DateTime Date Time
Table 4.1 Doctor Info Table
Column Name Data Type

patient_id Varchar(50)
doctor_id Varchar(50)
Disease Varchar(50)
Date Varchar(50)
Test Varchar(50)
Blood Varchar(50)
Urine Varchar(50)
Bp Varchar(50)
x_ray Varchar(50)
Scan Varchar(50)
ct_scan Varchar(50)

20
Ecg Varchar(50)

Table 4.2 Lab Test Details Tab

Column Name Data Type


first_name Varchar(50)
Surname Varchar(MAX)
Gender Varchar(MAX)
Diseases Varchar(MAX)
patient_id Varchar(MAX)
date_time Varchar(50)
assigned_doctor Varchar(50)

Table 4.3 Opform Table

Column Name Data Type


patient_id Varchar(50)
Diseases Varchar(50)
Symptoms Varchar(50)
Test Varchar(50)
Prescription Varchar(MAX)
final_prescription Varchar(50)

Table 4.4 Patient Diseases Table

4.2 PROCESS MODEL

21
4.2.1 Data Flow diagram

A DFD shows what kinds of data will be input to and output from the system, the
data will come from and go to, and where the data will be stored.

Level 0 DFD

Level 1 DFD

22
Level 2 DFD

Level 3 DFD

23
Fig 4.1 Data Flow Diagram

4.2.2 Use Case Diagram

24
The use case diagram is used to show the users and the operations involved in the
application. The main purpose of a use case diagram is to show what system functions are
performed for which actor. Roles of the actors in the system can be depicted. Use case
diagrams overview the usage requirement for the system. They are useful for
presentations to management and/or project stakeholders.

25
Fig 4.2 Use Case Diagram

26
4.2.3 Sequence Diagram

A sequence diagram in UML is a kind of interaction diagram that shows how


processes operate with one another and in what order. It is a construct of a message
sequence chart. Sequence diagrams are sometimes called Event-trace diagrams, event
scenarios, and timing diagrams.

Fig 4.3 Sequence Diagram

27
CHAPTER 5

SYSTEM IMPLEMENTATION

Implementation is the conversion of logical design into source code. The


Implementation phase of source code. This project has been implemented using .Net code
behind. The Application is then implemented successfully.

5.1 CODING

5.1.1 JAVA CODING


PATIENT DETAILS:
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.time.LocalDate"%>
<%@page import="java.time.format.DateTimeFormatter"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%@include file="adminpage.jsp" %>
<%
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
LocalDate localDate = LocalDate.now();
System.out.println(dtf.format(localDate));
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // MySQL database
connection

28
//Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/javademo?" +
"user=root&password=");
Connection conn = DriverManager.getConnection("jdbc:sqlserver://5b0530ba-83fb-
4d44-9be6-
a5a700567563.sqlserver.sequelizer.com\\.:1433;databaseName=db5b0530ba83fb4d449be
6a5a700567563","jihyzfgjercuvkbq","GvUwoXSJCPLFeLbMLdYZZifRbVpCLNbAbC
ZTyyBFHPDpGQrGNykWHmWypduAHp6W");
String uname1=(String)session.getAttribute("h");
String n=request.getParameter("pat");
String st="Request";
PreparedStatement check2 = conn.prepareStatement("Select MAX(id) from patient1");
ResultSet rs2 = check2.executeQuery();
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<script type="text/javascript">
function f()
{
window.location="loginform.jsp";
}
function f1()
{
var a=document.getElementById('desease1').value;

if(a==='fever' || a==='caugh' || a==='cold'||a==='stomachpain')


{
document.getElementById('doctor1').value='madhu';

29
}
else if(a==='heart attack' ||a==='heart pain')
{
document.getElementById('doctor1').value='Cardialogy';
}
}
</script>
<style>
.button {
background-color:#3090C7;
border: none;
color: white;
padding: 12px 28px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 12px;
margin: 4px 2px;
cursor: pointer;
}
</style>
</head>
<body bgcolor="blue">
<form action="patient1.jsp" method="post"><center>
<h5>REGISTRATION</h5>
<table border="1" background="blue">
<tr border="0" >

<% while(rs2.next())
{

30
int id1=0;
id1=rs2.getInt(1);
id1++;
%>
<td> <b>ID</b></td><td><input type="text" name="id1" id="id" value="<%=id1%>"
></td></tr>
<%}%>
<tr><td><b>NAME</b></td><td><input type="text" name="name1"
id="username1"/></td></tr>
</br>
<tr><td><b>HEIGHT</b></td><td> <input type="text" name="height"
id="password1"/></td></tr>

<tr><td> <b>WEIGHT</b> </td><td><input type="text" name="weight"


id="conpassword1"/></td></tr>
</br>
<tr><td> <b>DESEASE</b></td><td><input type="text" required name="desease"
id="desease1"/></td></tr>

<tr><td> <b>DOCTOR</b></td><td><input type="text" required name="doctor"


id="doctor1" onclick="f1();"/></td></tr>

<td> <b>DATE</b></td><td><input type="text" name="date" id="id" value="<


%=dtf.format(localDate)%>"></td></tr>
</table>
<br/><br/>
<input type="submit" value="SUBMIT" class="button" />
&nbsp; <input type="submit" value="LOGIN" class="button" value="="
onClick="f();"/>
</form></center>

31
<!--<div class="Login">
<div class="Login-head">
<h3>LOGIN</h3>
</div>
<form>
<div class="ticker">
<h4>Username</h4>
<input type="text" value="John Smith" onfocus="this.value = '';" onblur="if (this.value
== '') {this.value = 'John Smith';}" ><span> </span>
<div class="clear"> </div>
</div>
<div>
<h4>Password</h4>
<input type="password" value="Password" onfocus="this.value = '';" onblur="if
(this.value == '') {this.value = 'Password';}" >
<div class="clear"> </div>
</div>
<div class="checkbox-grid">
<div class="inline-group green">
<label class="radio"><input type="radio" name="radio-inline"><i> </i>Remember
me</label>
<div class="clear"> </div>
</div>
</div>
<div class="submit-button">
<input type="submit" onclick="" value="LOGIN " >
</div>
<div class="clear"> </div>
</div>
</form>

32
</div>
</div>-->
<!--//End-login-form-->
</body></html>

REQUEST:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@include file="adminpage.jsp"%>
<%
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // MySQL database
connection
//Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/javademo?" +
"user=root&password=");
Connection conn = DriverManager.getConnection("jdbc:sqlserver://5b0530ba-83fb-
4d44-9be6-
a5a700567563.sqlserver.sequelizer.com\\.:1433;databaseName=db5b0530ba83fb4d449be
6a5a700567563","jihyzfgjercuvkbq","GvUwoXSJCPLFeLbMLdYZZifRbVpCLNbAbC
ZTyyBFHPDpGQrGNykWHmWypduAHp6W");
PreparedStatement check2 = conn.prepareStatement("Select * from prescription where
status='Request'");
ResultSet rs2 = check2.executeQuery();
while(rs2.next())

33
{
String a=rs2.getString("id");
String b=rs2.getString("desease");
String c=rs2.getString("date");
String d=rs2.getString("blood");
String e=rs2.getString("urine");
String f=rs2.getString("bp");
String g=rs2.getString("xr");
String h=rs2.getString("scan");
String i=rs2.getString("ecg");
String j=rs2.getString("pres");
String k=rs2.getString("status");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<form action="accept.jsp" method="post">
<center>
<table border="1" cellpadding="5" cellspacing="5">
<tr>
<th>ID</th>
<th>SYMPTOMS</th>
<th>DATE</th>
<th>BLOOD</th>
<th>URINE</th>
<th>BP</th>
<th>XRAY</th>

34
<th>SCAN</th>
<th>ECG</th>
<th>PRESCRIPTION</th>
<th>STATUS</th>
</tr>
<tr>
<td><input type="checkbox" name="id1" value="<%=a%>"><%=a%></td>
<td><%=b%></td>
<td><%=c%></td>
<td><%=d%></td>
<td><%=e%></td>
<td><%=f%></td>
<td><%=g%></td>
<td><%=h%></td>
<td><%=i%></td>
<td> <%=j%></td>
<td> <%=k%></td>
</table>
<%}%>
<input type="submit" value="Submit">
</form>
</center>
</body>
</html>

5.2 DOT NET CODING


Dean Doc Reg.aspx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
35
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Net;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
using System.Net.Mail;
namespace cda_pro
{
public partial class WebForm4 : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conn"]);
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button2_Click1(object sender, EventArgs e)
{
Random ran = new Random();
int doctorid = ran.Next(232, 14567);
TextBox8.Text = "d" + doctorid.ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
con.Open();
SqlCommand cd = con.CreateCommand();
cd.CommandType = CommandType.Text;
cd.CommandText = "insert into dean_doctor values('" + TextBox1.Text + "','" +
TextBox2.Text + "','" + DropDownList1.SelectedItem.ToString() + "','" + TextBox13.Text
+ "','" + TextBox3.Text + "','" + TextBox4.Text + "','" + TextBox5.Text + "','" +

36
TextBox12.Text + "','" + TextBox6.Text + "','" + TextBox9.Text + "','" + TextBox10.Text
+ "','" + TextBox11.Text + "','" + TextBox7.Text + "','" + TextBox8.Text + "','" +
DateTime.Now.ToString() + "','"+TextBox14.Text+"')";
cd.ExecuteNonQuery();
con.Close();
Response.Write("<script>alert('Registered successfully')</script>");
con.Close();
}
//protected void Button1_Click(object sender, EventArgs e)
//{
// con.Open();
// SqlCommand cd = con.CreateCommand();
// cd.CommandType = CommandType.Text;
// cd.CommandText = "insert into dean_doctor values('" + TextBox1.Text +
"','"+TextBox2.Text+"','" + DropDownList1.SelectedItem.ToString() + "','" +
TextBox13.Text + "','" + TextBox3.Text + "','" + TextBox4.Text + "','" + TextBox5.Text +
"','" + TextBox12.Text + "','" + TextBox6.Text + "','" + TextBox9.Text + "','" +
TextBox10.Text + "','" + TextBox11.Text + "','"+Label14.Text+"','" + TextBox7.Text +
"','" + TextBox8.Text + "','" + DateTime.Now.ToString() + "')";
// cd.ExecuteNonQuery();
// con.Close();
// Response.Write("<script>alert('Registered successfully')</script>");
// con.Close();
//}
//protected void Button2_Click(object sender, EventArgs e)
//{
// Random ran = new Random();
// int doctorid = ran.Next(232, 14567);
// Label14.Text = "d" + doctorid.ToString();
//}}}

37
Doctorview.aspx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
namespace cda_pro
{
public partial class WebForm8 : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conn"]);
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = Convert.ToString(Session["doctorid"]);
con.Open();
SqlCommand cmd = new SqlCommand("select
first_name,age,diseases,patient_id,date_time from opform where assigned_doctorid = '" +
Label1.Text + "'", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
con.Close();
}

38
protected void Button1_Click(object sender, EventArgs e)
{
con.Open();
SqlCommand cd = con.CreateCommand();
cd.CommandType = CommandType.Text;
string interests = string.Empty;
foreach (ListItem item in this.CheckBoxList1.Items)
if (item.Selected)
interests += item + ",";
cd.CommandText = "insert into patient_diseases values('" + TextBox1.Text + "','" +
TextBox2.Text + "','" + TextBox15.Text + "','" + interests + "','" + TextBox3.Text + "','" +
Label1.Text + "','" + DateTime.Now.ToString()+ "','nill','nill','')";
cd.ExecuteNonQuery();
Session["patientid"] = TextBox1.Text;
con.Close();
Response.Write("<script>alert('Registered successfully')</script>");
con.Close();
}}}

Dvpatient_Report.aspx
using System;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data;
using System.Data.SqlClient;

39
using System.Text;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html;
using iTextSharp.text.html.simpleparser;
namespace cda_pro
{
public partial class WebForm15 : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conn"]);
protected void Page_Load(object sender, EventArgs e)
{
TextBox2.Text = DateTime.Now.ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
con.Open();
DataTable dt = new DataTable();
SqlDataReader myReader = null;
SqlCommand cd = con.CreateCommand();
cd.CommandType = CommandType.Text;
cd.CommandText = "select * from opform where patient_id='" + TextBox1.Text + "'";
myReader = cd.ExecuteReader();
while (myReader.Read())
{
TextBox3.Text = (myReader["first_name"].ToString());
TextBox4.Text = (myReader["age"].ToString());
TextBox5.Text = (myReader["diseases"].ToString());
TextBox6.Text = (myReader["assigned_doctor"].ToString());

40
TextBox7.Text = (myReader["date_time"].ToString());
}
con.Close();
con.Open();
DataTable dt1 = new DataTable();
SqlDataReader myReader1 = null;
SqlCommand cd1 = con.CreateCommand();
cd1.CommandType = CommandType.Text;
cd1.CommandText = "select * from patient_diseases where patient_id='" +
TextBox1.Text + "'";
myReader1 = cd1.ExecuteReader();
while (myReader1.Read())
{
TextBox8.Text = (myReader1["symptoms"].ToString());
TextBox9.Text = (myReader1["test"].ToString());
TextBox10.Text = (myReader1["prescription"].ToString());
TextBox11.Text = (myReader1["final_prescription"].ToString());
}
con.Close();
}
protected void Button3_Click(object sender, EventArgs e)
{
//Get the data from database into datatable
string strQuery = "select
first_name,surname,gender,age,address,phone_no,diseases,patient_id,assigned_doctor
from opform where patient_id='" + TextBox1.Text + "'" ;
string strQuery1 = "select date,doctor_id,[diseases],[symptoms],[test],[prescription],
[final_prescription],[final_prescription_date] from [patient_diseases] where patient_id ='"
+ TextBox1.Text + "'";

41
string strQuery2 = "select [date],[patient_id],[disease],[test],[blood],[urine] ,[diabetes] ,
[bp],[x_ray],[scan] ,[ct_scan],[ecg],[lab_report_date] from labtest_details where
patient_id ='" + TextBox1.Text + "'";
string strQuery3 = "select [patient_id],[diseases],[final_prescription],
[final_prescription_date] from [patient_diseases] where patient_id ='" + TextBox1.Text +
"'";
SqlCommand cmd = new SqlCommand(strQuery);
SqlCommand cmd1 = new SqlCommand(strQuery1);
SqlCommand cmd2= new SqlCommand(strQuery2);
SqlCommand cmd3 = new SqlCommand(strQuery3);
DataTable dt = GetData(cmd);
DataTable dt1 = GetData(cmd1);
DataTable dt2 = GetData(cmd2);
DataTable dt3 = GetData(cmd3);
//Create a dummy GridView
GridView GridView1 = new GridView();
GridView1.AllowPaging = false;
GridView1.DataSource = dt;
GridView1.DataBind();
GridView GridView2 = new GridView();
GridView2.AllowPaging = false;
GridView2.DataSource = dt1;
GridView2.DataBind();
GridView GridView3 = new GridView();
GridView3.AllowPaging = false;
GridView3.DataSource = dt2;
GridView3.DataBind();
GridView GridView4 = new GridView();
GridView4.AllowPaging = false;
GridView4.DataSource = dt3;

42
GridView4.DataBind();
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=patient_report.doc");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-word ";
StringWriter sw = new StringWriter();
StringWriter sw1 = new StringWriter();
StringWriter sw2= new StringWriter();
StringWriter sw3= new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
HtmlTextWriter hw1 = new HtmlTextWriter(sw1);
HtmlTextWriter hw2= new HtmlTextWriter(sw2);
HtmlTextWriter hw3= new HtmlTextWriter(sw3);
GridView1.RenderControl(hw);
GridView2.RenderControl(hw1);
GridView3.RenderControl(hw2);
GridView4.RenderControl(hw3);
Response.Output.Write(sw.ToString());
Response.Output.Write(sw1.ToString());
Response.Output.Write(sw2.ToString());
Response.Output.Write(sw3.ToString());
Response.Flush();
Response.End();
Response.Write("*********************************************************
*******************");
}
private DataTable GetData(SqlCommand cmd)
{
DataTable dt = new DataTable();

43
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conn"]);
//String strConnString =
System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ConnectionStri
ng;
//SqlConnection con = new SqlConnection(con);
SqlDataAdapter sda = new SqlDataAdapter();
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
try
{
con.Open();
sda.SelectCommand = cmd;
sda.Fill(dt);
return dt;
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
sda.Dispose();
con.Dispose();
}}}}

Dvpatientlab_details.aspx
using System;
using System.Collections.Generic;
using System.Linq;

44
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
namespace cda_pro
{
public partial class WebForm14 : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conn"]);
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = Convert.ToString(Session["doctorid"]);
Label4.Text = Convert.ToString(Session["patientid"]);
con.Open();
SqlCommand cmd = new SqlCommand("select
patient_id,disease,blood,urine,diabetes,bp,x_ray,scan,ct_scan,ecg,lab_report_date from
labtest_details where doctor_id = '" + Label1.Text + "'", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
con.Close();
}
protected void Button1_Click1(object sender, EventArgs e)
{
con.Open();
SqlCommand cd1 = con.CreateCommand();

45
cd1.CommandType = CommandType.Text;
cd1.CommandText = "update patient_diseases set final_prescription='" + TextBox1.Text
+ "', final_prescription_date='" + DateTime.Now.ToString() + "' where patient_id='" +
Label4.Text + "' and doctor_id='"+Label1.Text+"'";
cd1.ExecuteNonQuery();
con.Close();
}}}

Labview.aspx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
namespace cda_pro
{
public partial class WebForm12 : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conn"]);
protected void Page_Load(object sender, EventArgs e)
{
con.Open();
SqlCommand cmd = new SqlCommand("select patient_id,diseases,test,doctor_id from
patient_diseases where test != 'null'", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();

46
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
con.Close();
}

protected void Button1_Click(object sender, EventArgs e)


{
con.Open();
DataTable dt = new DataTable();

SqlDataReader myReader = null;


SqlCommand cd = con.CreateCommand();
cd.CommandType = CommandType.Text;
cd.CommandText = "select diseases,test,doctor_id,date from patient_diseases where
patient_id='" + TextBox1.Text + "'";
myReader = cd.ExecuteReader();
while (myReader.Read())
{
TextBox2.Text = (myReader["diseases"].ToString());
TextBox15.Text = (myReader["test"].ToString());
TextBox3.Text = (myReader["doctor_id"].ToString());
TextBox16.Text = (myReader["date"].ToString());
}
con.Close();
}
protected void Button2_Click(object sender, EventArgs e)
{
con.Open();

47
SqlCommand cd = con.CreateCommand();
cd.CommandType = CommandType.Text;
cd.CommandText = "insert into labtest_details values('" + TextBox1.Text + "','"
+TextBox3.Text + "','" + TextBox2.Text + "','" + TextBox16.Text + "','" + TextBox15.Text
+ "','" + TextBox17.Text + "','" + TextBox18.Text + "','" + TextBox19.Text + "','" +
TextBox20.Text + "','" + TextBox21.Text + "','" + TextBox22.Text + "','" +
TextBox23.Text + "','" + TextBox24.Text + "','" + DateTime.Now.ToString() + "')";
cd.ExecuteNonQuery();
con.Close();
Response.Write("<script>alert('Lab test done successfully')</script>");
con.Close();
}}}

Opform.aspx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Net;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
using System.Net.Mail;
using System.Text;
namespace cda_pro
{
public partial class WebForm7 : System.Web.UI.Page

48
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conn"]);
protected void Page_Load(object sender, EventArgs e)
{
}
//protected void Button2_Click(object sender, EventArgs e)
//{
// Random ran = new Random();
// int patientid = ran.Next(232, 14567);
// Label10.Text = "P" + patientid.ToString();
//}
protected void Button1_Click(object sender, EventArgs e)
{
con.Open();
SqlCommand cd = con.CreateCommand();
cd.CommandType = CommandType.Text;
cd.CommandText = "insert into opform values('" + TextBox1.Text + "','" +
TextBox2.Text + "','" + DropDownList1.SelectedItem.ToString() + "','" + TextBox3.Text
+ "','" + TextBox4.Text + "','" + TextBox5.Text + "','" + TextBox6.Text + "','" +
Label10.Text + "','" + TextBox7.Text + "','" + TextBox8.Text + "','" +
DateTime.Now.ToString() + "','"+TextBox9.Text+"')";
cd.ExecuteNonQuery();
con.Close();
Response.Write("<script>alert('Registered successfully')</script>");
con.Close();
}
protected void Button2_Click(object sender, EventArgs e)
{
Random ran = new Random();
int patientid = ran.Next(232, 14567);

49
Label10.Text = "P" + patientid.ToString();
}
protected void Button3_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
con.Open();
SqlDataReader myReader = null;
SqlCommand myCommand = new SqlCommand("select
assigned_roomno,assigned_doctorid,doctor_name from dean_doctor where general='" +
TextBox6.Text + "'", con);
myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
TextBox7.Text = (myReader["assigned_roomno"].ToString());
TextBox8.Text = (myReader["assigned_doctorid"].ToString());
TextBox9.Text = (myReader["doctor_name"].ToString());
}
con.Close();
}}}

Patient_View.aspx
using System;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data;

50
using System.Data.SqlClient;
using System.Text;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html;
using iTextSharp.text.html.simpleparser;
namespace cda_pro
{
public partial class WebForm9 : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conn"]);
// SqlConnection con = new
SqlConnection(ConfigurationManager.AppSettings["conn"]);
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button2_Click(object sender, EventArgs e)
{
con.Open();
DataTable dt = new DataTable();
SqlDataReader myReader = null;
SqlCommand cd = con.CreateCommand();
cd.CommandType = CommandType.Text;
cd.CommandText = "select * from opform where patient_id='" + TextBox1.Text + "'";
myReader = cd.ExecuteReader();
while (myReader.Read())
{
TextBox3.Text = (myReader["first_name"].ToString());
TextBox4.Text = (myReader["age"].ToString());

51
TextBox5.Text = (myReader["diseases"].ToString());
TextBox6.Text = (myReader["assigned_doctor"].ToString());
TextBox7.Text = (myReader["date_time"].ToString());
}
con.Close();
con.Open();
DataTable dt1 = new DataTable();
SqlDataReader myReader1 = null;
SqlCommand cd1 = con.CreateCommand();
cd1.CommandType = CommandType.Text;
cd1.CommandText = "select * from patient_diseases where patient_id='" +
TextBox1.Text + "'";
myReader1 = cd1.ExecuteReader();
while (myReader1.Read())
{
TextBox8.Text = (myReader1["symptoms"].ToString());
TextBox9.Text = (myReader1["test"].ToString());
TextBox10.Text = (myReader1["prescription"].ToString());
TextBox11.Text = (myReader1["final_prescription"].ToString());
}
con.Close();
}}}

Requestpatient.aspx
using System;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;

52
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data;
using System.Data.SqlClient;
using System.Text;
using System.IO;
namespace cda_pro
{
public partial class WebForm16 : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conn"]);
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
con.Open();
SqlCommand cd1 = con.CreateCommand();
cd1.CommandType = CommandType.Text;
cd1.CommandText = "update prescription set status='Request' where [id]='" +
TextBox1.Text + "' ";
cd1.ExecuteNonQuery();
con.Close();
}}}

signin.aspx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

53
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
namespace cda_pro
{
public partial class WebForm5 : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conn"]);
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
con.Open();
SqlCommand cd = new SqlCommand("select * from dean_doctor where
assigned_doctorid='" + TextBox1.Text + "' and dob='" + TextBox2.Text + "'", con);
SqlDataReader dr = cd.ExecuteReader();
if (dr.Read())
{
//Response.Write("<script>alert('username or password mismatch')</script>");
Session["doctorid"] = TextBox1.Text;
Response.Redirect("doctorview.aspx");
}
else
{ Response.Write("<script>alert('username or password mismatch')</script>");
//Response.Redirect("doctor.aspx");
}
con.Close();}}}

54
Signinpatient.aspx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
namespace cda_pro
{
public partial class WebForm6 : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conn"]);
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
con.Open();
SqlCommand cd = new SqlCommand("select * from opform where patient_id='" +
TextBox1.Text + "' and phone_no='" + TextBox2.Text + "'", con);
SqlDataReader dr = cd.ExecuteReader();
if (dr.Read())
{
//Response.Write("<script>alert('username or password mismatch')</script>");
Response.Redirect("patient_view.aspx");
}

55
else
{
Response.Write("<script>alert('ID OR PASSWORD MISMATCH')</script>");
//Response.Redirect("doctor.aspx");
}
con.Close();}}}

Viewjavapatient.aspx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
namespace cda_pro
{
public partial class WebForm18 : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conn"]);
protected void Page_Load(object sender, EventArgs e)
{
con.Open();
SqlCommand cmd = new SqlCommand("select
id,desease,date,blood,urine,bp,xr,scan,ecg,pres from prescription where Status='Accept'",
con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();

56
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
con.Close();
}}}

Viewrequest.aspx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
namespace cda_pro
{
public partial class WebForm17 : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conn"]);
protected void Page_Load(object sender, EventArgs e)
{
con.Open();
SqlCommand cmd = new SqlCommand("select
patient_id,diseases,symptoms,test,prescription,doctor_id,final_prescription,Status from
patient_diseases where Status= 'Request'", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);

57
GridView1.DataSource = ds;
GridView1.DataBind();
con.Close();
}
protected void Button1_Click(object sender, EventArgs e)
{
con.Open();
SqlCommand cd1 = con.CreateCommand();
cd1.CommandType = CommandType.Text;
cd1.CommandText = "update patient_diseases set Status='Accept' where patient_id='" +
TextBox1.Text + "'";
cd1.ExecuteNonQuery();
con.Close();
}}}

Web.config
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
<!--<add key="con" value="Data Source=INETZ-06;Initial Catalog=dedulication;User
ID=sa;password=inetz"/>
<add key="conn" value="Data Source=INETZ-09;Initial Catalog=dedulication;User
ID=sa;password=inetz"/>-->
<add key="conn" value="Data Source=5b0530ba-83fb-4d44-9be6-
a5a700567563.sqlserver.sequelizer.com;Initial

58
Catalog=db5b0530ba83fb4d449be6a5a700567563;User
ID=jihyzfgjercuvkbq;password=GvUwoXSJCPLFeLbMLdYZZifRbVpCLNbAbCZTyy
BFHPDpGQrGNykWHmWypduAHp6W"/>
<!--<add key="con" value="Data Source=1051be86-75f5-4bc1-ac91-
a4ab00ddc6cb.sqlserver.sequelizer.com;Initial
Catalog=db1051be8675f54bc1ac91a4ab00ddc6cb;User
ID=krirelbavjasgqbd;password=y6gc8WrsvmtmvrZHycYJRtigzEqunUYG4NQTEZ2Ky
bu7fZLGDztmVzzeV8JAF5eH"/>-->
</appSettings>
<connectionStrings>
<!--<add name="conString" connectionString="Data Source=INETZ-5-PC;Initial
Catalog=CDA;Integrated Security=True"/>-->
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
</configuration>

59
CHAPTER 6

TESTING

6.1 TESTING METHODOLOGY

The purpose of testing is to discover errors. Testing is the process of trying to


discover every conceivable fault or weakness in a work product. It provides a way to
check the functionality of components, sub assemblies, assemblies and a finished
product.

6.1.1 Types of Tests

6.1.1.1 Unit testing

Unit testing is a test of a simple piece of code. As already mentioned, that the
system has been developed by module wise and the first phase of testing must be module
wise testing. In this system each module has been individually executed to confirm that
no syntax error or run time error occurs. It is made sure that the validation for each input
data works proper.

6.1.1.2 Integration testing

Integration testing is the next level. The module of the system has first taken and
according to the linkage priority each modules have been integrated into the system. This
Integration test is performed in order to verify that the system works according to the
requirements even after integration of all modules. Integration testing in this project, is
the phase in software testing in which individual software modules are combined and
tested as a group. Integration testing takes as its input modules that have been unit tested,
group them in larger aggregates, applies tests defined in an integration test plan to those
aggregates, and delivers as its output the integrated system ready for system testing.

60
6.1.1.3 Functional test

Functional tests provide systematic demonstrations that functions tested are


available as specified by the business and technical requirements, system documentation,
and user manuals. Before functional testing is complete, additional tests are identified and
the effective value of current tests is determined.
6.1.1.4 System Test

System testing ensures that the entire integrated software system meets
requirements. It tests a configuration to ensure known and predictable results. An
example of system testing is the configuration oriented system integration test. System
testing is based on process descriptions and flows, emphasizing pre-driven process links
and integration points.

6.1.1.5 White Box Testing

White Box Testing is a testing in which in which the software tester has
knowledge of the inner workings, structure and language of the software, or at least its
purpose. It is purpose. It is used to test areas that cannot be reached from a black box
level.

6.1.1.6 Black Box Testing

Black Box Testing is testing the software without any knowledge of the inner
workings, structure or language of the module being tested. Black box tests, as most other
kinds of tests, must be written from a definitive source document, such as specification or
requirements document, such as specification or requirements document.

6.1.1.7 Acceptance Testing

User Acceptance Testing is a critical phase of any project and requires significant
participation by the end user. It also ensures that the system meets the functional
requirements.

61
6.1.1.8 Validation Testing

Validation is intended to check that development and verification procedures for a


product, service, or system result in a product, service, or system that meets initial
requirements, specifications, and regulations.

6.2 TEST PLAN

Test plan specifies objectives if testing for completion criteria, system integration
plan, methods to be used on modules and particular test cases to be used.

The four types of test that a software product must satisfy are:

Function Test specifies operating conditions, input values and expected result.
Performance Test verify response time, execution time and throughout
primary and secondary memory utilization links.
Stress Test is to determine the limitations of the system.
Structural Test is concerned with examining the internal processing logic of a
software system.

6.3 TEST CASE REPORTS

The purpose of testing is to discover errors. Testing is the process of trying to


discover every conceivable fault or weakness in a work product. It provides a way to
check the functionality of components, subassemblies, assemblies and/or a finished
product.

It is the process of exercising software with the intent of ensuring that the
software system meets its requirements and user expectations and does not fail in
unacceptable manner.

62
CHAPTER 7

PERFORMANCE AND LIMITATION

7.1 PERFORMANCE

In proposed system we presented A CDA documents generation system and


integration system that generates CDA documents. In different developing platforms
integrates multiple CDA documents scattered in different hospitals for each patient. This
system is accessible through Open API developers are easily use their favourite
development platforms such as Java .NET and C/C++. Here Materials and Methods,
detailed explanations made on the format of CDA document.

Inter feasibility between hospitals improve patient safety and quality, and Reduce
time and resource spent on data format conversion. CDA documents integration system is
accessible through Open API. All the developers are free to use their favorite
development platforms.

7.2 LIMITATION

Inefficiency, complexity and slow pace of navigating through user interfaces to


find relevant content
Inflexibility for documenting unforeseen findings
Lack of integration with clinical applications
Deficiencies in both coverage by and goals of the underlying domain and
document models.
Lack of consistency and maintenance of documentation templates in the context
of evolving domain and document models.

63
Decreased overall efficiency for generating complex documents. We present a
semantics-based infrastructure that seeks to address some of the abovementioned
issues.

7.3 CONCLUSION

As the number of HIE based on CDA documents increases, interoperability is


achieved, but it also brings a problem where managing various CDA documents per
patient becomes inconvenient as the clinical information for each patient is scattered in
different documents. The CDA document integration service from our cloud server
adequately addresses this issue by integrating multiple CDA documents that have been
generated for individual patients.

The clinical data for the patient in question is provided to his/her doctor in
chronological order per section so that it helps physicians to practice evidence-based
medicine. In the field of document-based health information exchange, the IHE XDS
profile is predominant and our cloud computing system can be readily linked with the
IHE XDS profile. The approach employed in this paper is applicable in adopting other
standards, too, such as the EHR Extract based on openEHR. If a hospital sends the
content archetype, admin archetype, and demographic archetype to the cloud server, then
the server extracts necessary information from each archetype. Next, it generates an
Extract containment structure that fits with a designated template and returns the structure
to the hospital.

64
7.4 FUTURE ENHANCEMENT

Future work will attempt to enhance security while ensuring reasonable quality of
service even with multiple users logged on the system at the same time. We will make a
concrete estimation of the reduction in cost that is cloud based. Cloud computing is
effective and efficient in cost reduction and the medical field seems to be no exception.

65
CHAPTER 8

APPENDICES

8.1 SAMPLE SCREENS

JAVA

66
Fig 8.1 Home Page

67
Fig 8.2 Admin Login Page

68
Fig 8.3 Patient Registration Page

69
Fig 8.4 Accept other hospital Request Page

70
Fig 8.5 Doctor Login Page

71
Fig 8.6 Doctor view the patient details Page

72
Fig 8.7 Send to lab test Page

73
Fig 8.8 Lab Page

74
Fig 8.9 Patient details Page

75
DOT NET

76
Fig 8.10 Login Page

77
Fig 8.11 View another hospital patient details Page

78
Fig 8.12 Send Request Page

79
Fig 8.13 Token message Page

8.2 USER MANUAL

Step 1: Install the Visual Studio.net 2010 software in your system.


Step 2: Install the SQL Server 2008.
Step 3: Rebuild the form design according to the version.
Step 4: Run all the forms.
Step 5: Then given the valid username and password in the registry window and
get permission from the server.
Step 6: View the output generated by the project.

80
CHAPTER 9

REFERENCES

9.1 TEXT BOOKS

Programming in C# - Deitel&Deitel
Asp.net The Complete Reference Mathew MacDonald
Asp.net 3.5 Ajax Unleashed Robert Foster
Generating Standardized Clinical Documents for Medical Information
Exchanges M.l.Pan
Application of portable CDA for secure clinical document exchange
K.Huang
Clinical Document Architecture integration system I.Kim

9.2 WEB SITES

81
www.w3schools.com
http://www.tutorialspoint.com
www.codeproject.com

82

You might also like