Expert system for Diagnosing kidney diseases

The system mainly contains two modules one is Information System and the other is Expert Advisory system. The Information System contains the static information about different diseases in the field of Nephrology. This information system helps the patients /users to know about the problems related to kidneys. The Nephrology Advisory system helps the Patients /users to get the required and suitable advice depending on their queries. This research describes how the neural computing system designed to support the medical decision process using medical imaging databases and creating the optimal systems for ministry of the health to help the physician to making the correct decision with high certainty also give suitable medical device and can use for training the medical stuff easily either in hospital or in the clinical center. the main aim of the proposed system is the ability to diagnose of the kidney disease by questionnaire and clinical data of the patient. The proposed system makes a differential diagnosis among the main kidney diseases. The diagnosis is made taking into account the clinical exam (the symptoms that can be seen of felt) and the preclinical exam (the results of laboratory tests). This system is designed to give help to a medical expert (doctor) in making the appropriate diagnosis of a patient. The kidney diseases have a lot of common symptoms and many of them are very much alike, and that makes it very difficult even for a kidney doctor (specialist) to put a right diagnosis. The main operation of the proposed system is ability to diagnosis kidney disease by using symbol and friendly user interface and also has ability to explain the result and the answer of most two questions how the proposed system reaches to the results and why the proposed system to reaches to this results. .


Introduction [1]
xpert systems can explain why data is needed and how conclusions were reached. A system may be highly interactive (directly asking the user questions) or embedded where all input comes from another program. The range of problems that can be handled by expert systems is vast. Expert systems can be developed with Expert System Shells. An expert system shell is a software programming environment which enables the construction of expert or knowledge based systems Expert systems software can be developed for any problem that involves a selection from among a definable group of choices where the decision is based on logical steps. Any area where a person or group has special expertise needed by others is a possible area for an expert system. Expert systems can help automate anything from complex regulations to aiding customers in selecting from among a group of products, or diagnosing equipment problems. Traditionally expert system development has been a major expense both in time and money. Getting even a single system built was a big project. The cost of system development prohibited building expert systems on more than a few projects. The key to implementing expert systems widely, effectively and at low cost is to have easy-to-use expert system development tools readily available to the experts. As more power is needed for certain applications, higher level tools can be used with advanced features to give you complete control over the inference engine, modularization of the knowledge base, flow of execution, the user interface and integration with other programs. Definitions of expert systems vary. Some definitions are based on function. Some definitions are based on structure. Some definitions have both functional and structural components. Many early definitions assume rule-based reasoning. The following is a sample of some definitions Expert knowledge is often scarce and valuable. Expert systems are computer programs that capture some of that knowledge and allow its dissemination to others. An Expert (Knowledge Based) System is a problem solving and decision making system based on knowledge of it's task and logical rules or procedures for using knowledge. Both the knowledge and the logic is obtained from the experience of a specialist in the area (Business Expert). An Expert System is a program that emulates the interaction a user might have with a human expert to solve a problem. The end user provides input by selecting one or more answers from a list or by entering data. The program will ask questions until it has reached a conclusion. The conclusion may be the selection of a single solution or list of possible solutions arranged in order of likelihood. The programcan explain, in English, how it arrived at its conclusion and why.

What is the Expert System [2]
Many definitions of artificial intelligence (AI) have been proposed. The most popular is still: -making computers think like people.‖ No one particular technique of AI can deal successfully with all problems; rather, a combination of methods works best. In order for an expert system to effectively address any problem, there must be a well defined problem domain. Expert systems are a very successful application of artificial intelligence technology. The first step in solving any problem is defining the problem area or domain to be solved. It is worthwhile to examine how AI fits into the scheme of life itself. From a computer perspective, life is synonymous with software, but we also can view life from a biological perspective, including artificial life made possible through cloning. The notion of artificial life gives rise to artificial intelligence, intelligence being the capacity to learn, acquire, adapt, modify, and extend knowledge to solve problems. Hence we consider the desire to build intelligent machines that can react with the real-world, be endowed with consciousness, solve problems and communicate those solutions. One of the goals of expert systems technology, as defined by Professor Edward Feigenbaum of Stanford University, is the development of a computer system that emulates, or acts in all respects, with the decision-making capability of a human expert. Although we are nowhere close to creating a generalpurpose problem-

Different definitions of Expert System
Many expert systems are not complex or difficult to build. In a very simple case, consider a tree diagram on paper describing how to solve a problem. By making a selection at each branch point, the tree diagram can help someone make a decision. In sense, it is a very simple system. This type of tree structured logic can easily be converted to a computerized system that is easier to use, faster and automated. More elaborate systems may include confidence factors allowing several possible solutions to be selected with different degrees of confidence. [1] An expert system is an intelligent computer program that uses knowledge and inference procedures to solve problems that are difficult enough to required significant human expertise for their solution. [3] . An expert system is a computer program that simulates the judgment and behavior of human or an organization that has expert knowledge and experience in a particular field. Typically such as system contains a knowledge base containing accumulated experience and a set of rules for applying the knowledge base to each particular situation that described to the program. Sophisticated expert systems can be enhanced with additions to the knowledge base or to the set of rules. [4] An expert system is a computer application that solves complicated problems that would otherwise require extensive human expertise. To do so, it simulates the human reasoning process by applying specific knowledge and interfaces. Expert systems also use human knowledge to solve problems that normally would require human intelligence. These expert systems represent the expertise knowledge as data or rules within the computer. These rules and data can be called upon when needed to solve problems. Books and manual guides have a tremendous amount of knowledge but a human has to read and interpret the knowledge for it to be used. [5] E D e c e m b e r 2 6 , 2 0 1 4

Aim of Expert System
Expert systems are designed and created to facilitate tasks in the fields of accounting, medicine, process control, financial service, production, human resources etc. Indeed, the foundation of a successful expert system depends on a series of technical procedures and development that may be designed by certain technicians and related experts. A good example of application of expert systems in banking area is expert systems for mortgages. Loan departments are interested in expert systems for mortgages because of the growing cost of labor which makes the handling and acceptance of relatively small loans less profitable. They also see in the application of expert systems a possibility for standardized, efficient handling of mortgage loan, and appreciate that for the acceptance of mortgages there are hard and fast rules which do not always exist with other types of loans. While expert systems have distinguished themselves in AI research in finding practical application, their application has been limited. Expert systems are notoriously narrow in their domain of knowledge-as an amusing example, a researcher used the "skin disease" expert system to diagnose his rust bucket car as likely to have developed measles-and the systems were thus prone to making errors that humans would easily spot. Additionally, once some of the mystique had worn off, most programmers realized that simple expert systems were essentially just slightly more elaborate versions of the decision logic they had already been using. Therefore, some of the techniques of expert systems can now be found in most complex programs without any fuss about them. An example, and a good demonstration of the limitations of, an expert system used by many people is the Microsoft Windows operating system troubleshooting taskbar menu. Obtaining expert / technical operating system support is often difficult for individuals not closely involved with the development of the operating system. 2-Working storage -the data which is specific to a problem being solved; 3-Inference engine -the code at the core of the system which derives recommendations from the knowledge base and problem-specific data in working storage 4-User interface -the code that controls the dialog between the user and the system To understand expert system design, it is also necessary to understand the major roles of individuals who interact with the system. These are:-1-Domain expert -the individual or individuals who currently are experts solving the problems the system is intended to solve; 2-Knowledge engineer -the individual who encodes the expert's knowledge in a declarative form that can be used by the expert system; 3-User -the individual who will be consulting with the system to get advice which would have been provided by the expert. D e c e m b e r 2 6 , 2 0 1 4

Expert System Features [7]
There are a number of features which are commonly used in expert systems. Some shells provide most of these features, and others just a few. Customized shells provide the features which are best suited for the particular problem. The major features covered in this book are: 1-Goal driven reasoning or backward chaining -an inference technique which uses IF THEN rules to repetitively break a goal into smaller sub-goals which are easier to prove.

2-
Coping with uncertainty -the ability of the system to reason with rules and data which are not precisely known.
3-Data driven reasoning or forward chaining -an inference technique which uses IF THEN rules to deduce a problem solution from initial data.
4-Data representation -the way in which the problem specific data in the system is stored and accessed.

5-User interface
-that portion of the code which creates an easy to use system; explain the reasoning process that it used to reach a recommendation.
6-Explanations -the ability of the system to accessed.

Benefits of Expert Systems
Expert systems offer an environment where the good capabilities of humans and the power of computers can be incorporated to overcome many of the limitations discussed in the previous section. Expert systems:

Expert Systems Are For Everyone
No matter which area of business one is engaged in, expert systems can fulfill the need for higher productivity and reliability of decisions. Everyone can find an application potential in the field of expert systems. Contrary to the belief that expert systems may pose a threat to job security, expert systems can actually help to create opportunities for new job areas. Presented below are some areas that hold promise for new job opportunities: An active user is one who directly uses expert systems consultations to obtain recommendations. A passive user is one who trusts the results obtained from expert systems and supports the implementation of those results.

Expert system building tools definitions [9]
An expert system tool, or shell, is a software development environment containing the basic components of expert systems. Associated with a shell is a prescribed method for building applications by configuring and instantiating these components. Some of the generic components of a shell are shown in Figure ( An ES tool provides one or more knowledge representation schemes for expressing knowledge about the application domain. Some tools use both frames (objects) and IF-THEN rules. In PROLOG the knowledge is represented as logical statements.

Reasoning engine:
Inference mechanisms for manipulating the symbolic information and knowledge in the knowledge base to form a line of reasoning in solving a problem. The inference mechanism can range from simple modus ponens backward chaining of IF-THEN rules to case-based reasoning.

Knowledge acquisition subsystem:
A subsystem to help experts build knowledge bases. Collecting knowledge needed to solve problems and build the knowledge base continues to be the biggest bottleneck in building expert systems.

Explanation subsystem:
A subsystem that explains the system's actions. The explanation can range from how the final or intermediate solutions were arrived at to justifying the need for additional data.

User interface:
The means of communication with the user. The user interface is generally not a part of the ES technology, and was not given much attention in the past. However, it is now widely accepted that the user interface can make a critical difference in the perceived utility of a system regardless of the system's performance.

Diagnosis Expert system
The expert diagnosis (or diagnosis by expert system) is based on experience with the system. Using this experience, a mapping is built that efficiently associates the observations to the corresponding diagnoses, and the experience can provided by human operator. A system is said to be diagnosable if whatever the behavior of the system, we will be able to determine without ambiguity a unique diagnosis. The problem of diagnose ability is very important when designing a system because on one hand one may want to reduce the number of sensors to reduce the cost, and on the other hand one may want to increase the number of sensors to increase the probability of detecting a faulty behavior. Several algorithms for dealing with these problems exist. One class of algorithms answers the question whether a system is diagnosable; another class looks for sets of sensors that make the system diagnosable, and optionally comply to criteria such as cost optimization. [10] Medical expert systems have evolved to provide physicians with both structured questions and structured responses within medical domains of specialized knowledge or experience . The structure is embodied in the program on the advice of one or more medical experts, who also suggest the optimal questions to consider, and provide the most accurate conclusions to be drawn from the answers the physician chooses. In software programs, these decision sequences are represented in clauses of the form: "If..., Then..., Else...", with final else having positive value in the closed system of the program . Although the physician is free to select any one of the choices offered in each clause, the physician is limited to the choices offered by the expert in writing the program. The program is thus limited by the fixed input from the expert at the particular time of formulation. If the physician has new questions or new data, a medical expert system program will not be able to accommodate the physician. It is for this basic reason that open system programs have been developed to meet the new needs of the user, with the contrast being paraphrased as: "Expert Systems are by experts; Open Systems are for experts. [11] . D e c e m b e r 2 6 , 2 0 1 4

Figure (3) System design flowchart
The figure (3) shows the formation of expert system completely to know the disease by related symptoms; this will be getting by record information about the patient such as (Name and must complete the patient name and his father and grand father name to prevent any ambiguity between the patient names , sequence number which must be unique number for each patient , age of the patient which is important criteria in some kidney disease type , date of admission of the patient to determine the date of the patient complaint, date of discharge). also the information about the socialite status and history and other information of patient such us (marital state of the patient which is very important in some kidney disease type , address of the patient necessary in some time to notify the patient if there are news about his status when the physician receive through laboratory Test results , socialite state for the patient is necessary to know every thing about socialite state which help the physician for conclusion , occupation of the patient is necessary to know the field which the patient work in and its influence of his status so if there are any risk on his life must advice him ). then a conservation between the doctor and patient will start to getting the information of symptoms from patient of the specific kidney disease type to recorded by the doctor by asking questions related to the specialty of the doctor and the result could by obtained after collecting the information from the patient, the doctor have the related percent of each symptom which the patients have, we can diagnosing that the patient status if its infected or non infected by collecting the average percent rate of symptoms from the patient if the percentage rate is equal or more than 90% that is mean patient has this type of kidney disease type but if the average percent is less than 90% we should follow the same steps for patient but for another kidney disease type again. We should not forget that we can add more information to the program to serve the patient as curing the illness after we know what illness the patient has. In this chapter of our research we designed a system to diagnosing kidney disease and we will deal with ten kidney disease and show each disease sign and symptoms in detail to make sure that the correct diagnostician and the kidney disease type which we will dealing with are (Acute Glomerulonephritis, Acute Renal failure, Adult polycystic disease, Chronic kidney disease, Renal Polyarthritis, Renal Glomerular, Urinary tract infection, Systemic sclerosis, Nephritic syndrome, Kidney Cancer). after getting the patient sign and symptoms and must recorded all information in the data base system the storage of the our proposed expert system then the proposed will be ready for diagnostician of any kidney disease type which we mentioned above the feature of the our proposed system is easy to use and easy to training and easy to diagnostician and its simple system and flexible and by direct applying of the proposed system we can diagnosing any the type of the kidney disease of the ten kidney disease which we dealing with according to the sign and symptom of the patient. The main criteria to diagnostician of the proposed expert system is the sing and symptoms of the patient with related percent rate of each kidney disease type.

System Implementation
There are many kidney diseases having similar symptoms, therefore, the most important objectivein order to prescribe the appropriate treatment -is the right diagnosis of the disease. We implementing this proposed Expert System which was produced to help nephrologists to diagnosing of the ten kidney diseases such as ( Acute Glomerulonephritis, acute renal failure, acute Adult polycystic, acute chronic kidney, acute renal Polyarthritis, Renal Glomerular, Urinary tract infection, systemic sclerosis, Nephritic syndrome, Kidney cancer ) are presented, an overview about the kidney diseases are displayed, the cause of diseases are outlined and the treatment of disease whenever is possible is given. Visual basic language for designing the proposed expert system. Kidney diseases are very common these days, some of them are simple and easy to recover from; others are very harmful and may be no cure for them; so we must take care of this important organ in our body. Diagnosis of kidney diseases is a very complex especially when more than one disease has about the same symptoms; so they need nephrologists with wide experience of kidney diseases. For all the reasons above, we have developed this expert system to help nephrologists in diagnosing of the kidney diseases, in order to prescribe the appropriate treatment. The proposed system for diagnosing of kidney disease is friendly user interface system and its is easy to use and not need professional person to used it , we use some program and subprogram to implementing this system also we need to collect of the information from patient such as ( sequence number , name, age, gender, address, occupation, material state, socialite state, date of admission, date of discharge).and patient signs and symptoms which we get it from patient through conversation between physician or operator and the patient also getting some physical examination information from the patient through the ultrasound testing and general urine test and blood test and X-ray image and recording all sign and symptom of the patient in the data base of the proposed system when we applied those information on the proposed system we can diagnosis the type of kidney diseases which the patient have it through received testing information of the patient and entering his symptom to the proposed system. The main part of our proposed medical expert system is formation of fore forms:

Starting Menu forms:-
Its very important that each designed proposed system that must have user name and password for protection and saving the information of patient either the personal information or symptoms of the diseases. .

Figure (4) Start Program form
so we use special user name and password for our proposed designed program and by this two icon which they are user name and password as its shown in the figure e (4) the proposed system can gave the permission to the operator or physician to enter inside the Main menu program and making the diagnosing of kidney disease type and can let us to add the new patient name with his personal information and symptoms disease also can updating ,deleting and searching the information of the other patient which they recorded before in the data base of proposed system. the starting form contain two other icon which they are entry icon which Let us to inter inside the main menu program and Exist icon which exist us out of the proposed system if we don't need to complete the diagnosing the patient status , we design the start form program with possibility to change the user name and password and the start program didn't work until inserting the correct user name and password which is necessary for protecting the proposed system if we inserting incorrect user D e c e m b e r 2 6 , 2 0 1 4 name and password the proposed system will ask again and request the correct user name and password. .

Main Menu form;-
The figure (5) shows the main menu form and this form have nine icons.

Figure (5) Main Menu for
The first and second icons refers to ( kidney disease type in English and Arabic languages respectively ) , third icon refers to patient (Information and Diagnosing Icon ) which record the personal information of the patient the fourth icon refers to (Search and Updating Icon) ,the fifth icon refers to (Search and Deleting Icon) which we will explained in detail the sixth icon refer to local time clock and the seventh icon refers to (Exist Icon) which return back the user to the before form which is the user name and password and the eighth icon is specified to the supervisor which supervised the research and the ninth icon is specified to the researcher The main menu form have the required options to easily dealing with the patient since to recorded his information and his symptom and save it in data base proposed system and also can let us updating the patient information and save the newest data through sub menu forms and also can let us deleting the patient information according to patient status and exist the operator or physician out of the proposed system by existing. .

Information and diagnosing form:-
The figure (5) shows is first sub menu form of proposed system which we can save patient personal information with his symptoms according to the type of kidney disease to diagnosing kidney disease. D e c e m b e r 2 6 , 2 0 1 4

Figure (5) Information and Diagnosing Sub-Menu Form
After saving the patient information which is represented in (sequence number which must be unique and specified only for one patient, name, age, gender, address, occupation, materials state, socialite state, date of admission, date of discharge ). And there are ten (patient symptoms icon location) to save patient symptoms ,each symptom icon have two choice Yes and No. if the patient have the symptom of the specified kidney disease we marking on Yes choice ,and if the patient didn't have the specified kidney disease symptom we marking on No choice when we complete marking of the patient symptom of the specified kidney disease we have diagnosing icon to diagnosis the patient status after we click on the (diagnosis icon) the proposed system will show to us the decision of the proposed system to diagnosing the kidney disease type depending on ( percentage icon) which we designed collect the percentage rate of the symptom which each symptom referred restricted percentage to and shows the result if the percentage rate of the patient symptom equal or greater than 90% the (diagnosis icon) shows that the patient is infected by that specified kidney disease type, and if the percentage rate of the patient symptom lower than 90% then the( diagnosis icon) shows that the patient non infected by that specified kidney disease type. and if we need to print this form we click on the( print icon) we can get recorded information and diagnosis sheet. and if we need to save the patient information and symptoms we click on the (save icon) the proposed system will save the information in the data base system and if we need to return back to main menu form we click on the (main menu icon).

Search and Updating form:-
The figure (6) shows search and updating form which is the second sub menu form of the proposed system . We design this form is simple and flexible manna to easy to used from the physician or operator and easy for training of medical crew which gives us the possibility to updating the information of the patient if there are any new information appeared. and when we need to search of one of the patient information we write the first letter of the patient name in to the ( searching names icon) the system will bring all patient names that beginning with the first letter which we choose and printed it then we select the required patient name and directly the proposed system will bring the all recorded information of the patient with his symptoms which marked and his diagnosis of the specified kidney disease before. D e c e m b e r 2 6 , 2 0 1 4

Figure (6) Search and Updating Sub-Menu Form
if there if there are any updating we can change the patient information through this form and click on the ( updating icon) the proposed system will save all the updated patient information in the data base system for example if the patient infected by specified kidney disease the parentage icon shows that the percentage rate will be equal or greater than 90% and after treatment than 90% in this case the proposed system diagnosis the patient status as non infected. there are there are some symptom may disappeared in this case the percentage icon shows that the percentage rate will be lower updating information will already happened with the patient those new data information we can save it by clicking on the updating.

Search and deleting forms:-
The figure (7) shows the search and deleting form which is the third sub menu form of proposed system. We design this form is simple and flexible manna to easy to used from the physician or operator and easy for training of medical crew , which gives us the possibility to delete the information of the patient completely from the data base of the proposed system. When we write the first letter of the required patient name the proposed system will bring all the patient names which beginning with first letter which we choose it then we select the required name directly the proposed system will bring the all recorded information of the patient with his symptoms which marked and his diagnosis of the specified kidney disease before and shows that the patient if its infected or non infected through diagnosis icon and the percentage icon shows that the percent rate of the patient according to his status which recorded before so the form shows that the percent rate equal or greater than 90% for infected patient and lower than 90% for non infected patient .
we can delete any recorded data information of any patient from data base of proposed system if there are any change in the patient status we easily deleting the patient recorded data information from the data base of proposed system by only clicking on the (delete Icon) to delete the chosen patient recorded information with his name completely from data base of the proposed system. if we need to print this form and get the recorded patient data information sheet we can click on (print icon) we can get recorded data information sheet of the patient , if we need to return back to main menu we click on (main menu icon) we will return back to main menu form. D e c e m b e r 2 6 , 2 0 1 4 2.the proposed expert system can easy to develop the medical knowledge base through obtaining the new data and information up to dated from the approved researches and studies since the capability of the computer devices and programming language are continuously developed daily which gives more capability and flexibility to improve performance and capability of the expert system and to dealing with the newest medical knowledge information and data to be compatible with development in the life stages and getting required results. .
3 proposed medical expert system is designed in simple manner so can used for training process of medical stuff groups in the hospital and clinic centers which will improve the knowledge information of the medical stuff groups simply due to very easy getting the knowledge from the expert system rather than the practice will gave high experience of those medical stuff groups for diagnosis the type of diseases because the proposed medical expert system is always up to dated either in the medical domain or in the computer devices and programming language domain .
4.the Proposed medical expert system is designed to have a possibility to used for diagnosing disease type in the physician clinic which have the complete information of sign and symptoms of the diseases type and stored it in the large data base of the medical expert system and each sign and symptoms have the corresponding percentage rate according to the type of the disease which determined by expertise and the system will process the accumulation of the percentage rate of the patient symptoms of the determined disease type and gives the direct diagnosing decision result.
5.the proposed medical expert system is designed in easy manner and can used form non physician person due to complete data information of the disease symptoms with its percentage rate in the home or office or any where after the conversation between the patient and medical expert system operator which is directly can mark and sign each patient disease symptoms on the expert system program and by executing the expert system program the operator can get the instant diagnosing decision result according to the data information which received from patient through conservation between operator and patient 6.the proposed medical expert system designed to work with any computer devices for the human health care and not need complicated specification or high processing computers in spite of large data base information with various component integrated in software package and the system used the window based software that can run any type of operating system which can facilitating the mission of the physician or the operator to get the fast and correct diagnosing decision of the patient status if it is infected or non infected . D e c e m b e r 2 6 , 2 0 1 4 7.the proposed medical expert system designed to have very easy and flexible forms which helps the user interface either physician or non physician person to determine the status of the patient during its symptoms by questioning mode through the asking the patient about the symptom which he has and the answer of the patient must have two choice either YES or NO and by executing the system we can easily diagnosis the disease type which the patient have and the final data information with the symptoms with its final diagnosing will store in the data base of the system and the system also gives the possibility to updating the patient data information with the new diagnosing after treatment in the next visit 8.the proposed medical expert system can used directly from the patient on line and can gave the patient the initial diagnosing if its infected or non infected by kidney diseases in the future.
9.the proposed medical expert system can advice the infected patient by suitable drug and treatment and advice the patient by adequate period treatment time and ask the patient to return back to use the medical expert system after treatment to see the results.