{'fraction_non_alphanumeric': 0.03339899376435015, 'fraction_numerical': 0.010902977303238272, 'mean_word_length': 4.780259627239103, 'pattern_counts': {'":': 1, '<': 2, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A Disease Diagnosis and Treatment Recommendation System Based on Big Data Mining and Cloud Computing

It is crucial to provide compatible treatment schemes for a disease according to various symptoms at different stages. However, most classification methods might be ineffective in accurately classifying a disease that holds the characteristics of multiple treatment stages, various symptoms, and multi-pathogenesis. Moreover, there are limited exchanges and cooperative actions in disease diagnoses and treatments between different departments and hospitals. Thus, when new diseases occur with atypical symptoms, inexperienced doctors might have difficulty in identifying them promptly and accurately. Therefore, to maximize the utilization of the advanced medical technology of developed hospitals and the rich medical knowledge of experienced doctors, a Disease Diagnosis and Treatment Recommendation System (DDTRS) is proposed in this paper. First, to effectively identify disease symptoms more accurately, a Density-Peaked Clustering Analysis (DPCA) algorithm is introduced for disease-symptom clustering. In addition, association analyses on Disease-Diagnosis (D-D) rules and Disease-Treatment (D-T) rules are conducted by the Apriori algorithm separately. The appropriate diagnosis and treatment schemes are recommended for patients and inexperienced doctors, even if they are in a limited therapeutic environment. Moreover, to reach the goals of high performance and low latency response, we implement a parallel solution for DDTRS using the Apache Spark cloud platform. Extensive experimental results demonstrate that the proposed DDTRS realizes disease-symptom clustering effectively and derives disease treatment recommendations intelligently and accurately.


Motivation
Technological advancements and cost reduction in medical equipment and disease diagnosis have greatly accelerated the adoption of state-of-the-art technologies in various hospitals [29,30]. The benefits of obtaining interactive and intelligent medical service based on knowledge discovery are rapidly growing. The accurate classification of different disease symptoms is essential in helping doctors carry out compatible treatment schemes for the disease. In contrast, traditional disease classification methods usually follow naive practices based on limited disease information, which might fail to further classify a disease according to symptoms at different treatment stages. In particular, for diseases with the characteristics of multiple similar treatment stages, various symptoms, and multi-pathogenesis, the accuracy and effectiveness of traditional classification algorithms are significantly lower. Therefore, it is crucial to find suitable approaches to accurately classify disease symptoms based on inspection reports.
In general, medical doctors diagnose diseases and select treatment schemes based mostly on their personal experience and knowledge. Inadequate communication, experience exchange, and cooperation between young and senior doctors results in the failure of young doctors to learn and take guidance from the experience, diagnoses, and treatment plans of experienced senior doctors. For example, the determinants of patients' and doctors' delays in the diagnosis and treatment of colorectal cancer were discussed in [35]. Despite the generation and availability of abundant medical data related to patients, diseases, treatment plans and their results, these data are not appropriately analyzed to extract useful knowledge and not efficiently shared among doctors and hospitals. Due to the lack of diagnosis experience, fledgling medical doctors might have difficulty in correctly diagnosing a disease in a patient that has an atypical symptom; thus, they are clueless in prescribing effective treatment plans. Hence, the sharing and recommendation of medical knowledge can help fledgling doctors elevate their disease diagnosis and treatment experience. A recommendation system of disease diagnosis and treatment is developed to find a balance between the medical resources of developed and underdeveloped hospitals and between the medical knowledge of experienced doctors and inexperienced doctors.
Because of the massive volume, variety, and continuous updating of medical data, the efficient processing of medical data and the real-time response of the treatment recommendation has become an important issue. Fortunately, parallel computing and cloud computing provide powerful capabilities to cope with large-scale data. Various hospitals have developed cloud-computing-based solutions for treatment guidance and have implemented various improvement measures for medical services. For example, Abbas et al. discussed a cloud-based health insurance plan recommendation system that implements a user-centered approach [1]. Apache Hadoop [2] is a famous cloud platform that is widely utilized in big data mining. Li et al. proposed an efficient tool for de novo peptide sequencing that utilizes the Hadoop cloud computing environment [19]. Apache Spark [3] is an excellent cloud platform that is suitable for data mining with iterative computation. Parallel programming models of Resilient Distributed Datasets (RDDs) and Directed Acyclic Graphs (DAGs) are supported by Spark, which is built in a memory computing framework. Benefitting from the RDD and DAG models, data caches are saved in memory, and iterations are performed on the same dataset directly from memory. Hence, the Spark platform is more suitable for data mining with iterative computation by saving huge amounts of disk I/O operation time.

Our Contributions
In this paper, we focus on medical resource sharing and treatment intelligence in big data and cloud computing environments and propose a Disease Diagnosis and Treatment Recommendation System (DDTRS). Large-scale historical inspection datasets are analyzed to derive disease-symptom clusters. Association relationships between diseases, diagnoses, and treatments are discovered in historical treatment records. Based on these relationships, valuable diagnosis and treatment plans of diseases are recommended to medical doctors and patients according to the current disease stages. Extensive experimental analysis indicates that the system recommends solutions effectively and accurately. Our contributions in this paper are summarized as follows.
• To effectively identify more accurate disease symptoms, especially for diseases with multiple treatment stages and multi-pathogenesis, a Density-Peak-based Clustering Analysis (DPCA) algorithm is introduced for patients' disease-symptom clustering, depending on the symptoms extracted from large-scale historical inspection data.
• To profusely utilize and share the valuable disease diagnosis and treatment knowledge of experienced doctors and developed hospitals, Disease-Diagnosis (D-D) and Disease-Treatment (D-T) association rules are defined and analyzed by the Apriori algorithm.
• Interactive recommendation interfaces of DDTRS are designed and implemented for medical doctors and patients. Medical doctors and patients can access the inspection reports and the corresponding treatment recommendations at different treatment stages. They can update the inspection results in DDTRS to obtain recommendations.
• To achieve the goals of high performance and low latency response, we parallelize DDTRS on the Apache Spark cloud computing platform. Massive volumes of medical data are stored in the Hadoop Distributed File System (HDFS), and a parallel solution is employed based on the RDD programming model.
The remainder of the paper is organized as follows. Section 2 reviews the related work. Section 3 introduces a disease diagnosis and treatment recommendation system, which consists of three core modules: a DPCA-based disease-symptom clustering process, a disease-treatment association analysis process, and recommendation interfaces. To reach the goals of efficiency and timeliness, the proposed system is parallelized in Section 4 using the Apache Spark cloud computing platform. Experimental and application results are presented in Section 5 with respect to recommendation effectiveness and performance. Finally, Section 6 concludes the paper with a discussion of future work and research directions.

Related Work
Benefitting from the development of medical technology and information technology, numerous studies focus on the fields of disease prevention, disease treatment, hospital informatization, and drug discovery. Applications of big data analytics in hospitals were adopted in [9,5]. Patients' healthcare datasets were stored digitally in the form of Electronic Health Records (EHRs), and realistic and valuable information was obtained from these records by using felicitous analysis techniques and software tools. Diverse patterns, trends, associations, visualization, querying, information privacy, and predictive analytics of the healthcare datasets were analyzed. Evidence-Based Medicine (EBM) is a medical method that establishes best-practice recommendations based on graded treatment schemes for diagnostic and therapeutic issues in health care [18]. In EBM, decisions about the care of individual patients are made based on the current best available clinical evidence, combined with the doctor's clinical experience and taking into account the patient's values and aspirations. As a valuable and applicable medical method, EBM has been utilized in various specialties, such as neurology [27], pediatric urology [34], and burn care [9]. In addition, numerous efforts have been made to use big data and data mining technology for EBM [41,30]. For example, in [41], Yesha et al. introduced a personalized decision support system to enhance EBM using big data analytics. Reports about medication accidents and treatment failures due to diagnosis and treatment delays or inappropriate diagnoses were reviewed in [29]. Makwakwa et al. considered health system delays in the cases of diagnosis, new treatment and retreatment of pulmonary tuberculosis in Malawi [22]. The median patient delay was 14.0 days for both new treatment and retreatment of Tuberculosis cases, and the median health system delay was 59.0 days for new treatment and 40.5 days for retreatment cases. The authors concluded that effective management and new diagnostic techniques were needed for both new treatment and retreatment cases. In our previous work, we explored a parallel patient-treatmenttime prediction algorithm and its applications in hospital queuing recommendations in big data environments [5]. There are limited research and applications in disease diagnosis and treatment recommendation based on large-scale historical medical data.
With a focused on clustering analysis, abundant notable achievements were contributed in existing studies [12,15]. Multifarious traditional clustering algorithms were reviewed in [42], which consist of partitioning methods, hierarchical methods, density-based methods, grid-based methods, and model-based methods. Distinct from these traditional clustering approaches, groups of novel density-peak-based clustering algorithms were explored [37,38,39]. A density-peak-based hierarchical clustering method (DenPEHC) was proposed, in which different clusters could be generated directly at each possible clustering layer. Alex et al. addressed the DPCA algorithm based on the idea that a cluster center is surrounded by neighbors that have low local density and large delta distance from any point that has a higher density [31]. A fast density-based data stream clustering algorithm for mixed data was presented in [6] with self-determined cluster centers. Other valuable clustering algorithms were introduced in [14,32]. Compared with iterative clustering algorithms, the computational complexity of DPCA is very low. Benefitting from the robustness on rough data and the non-iterative training of DPCA, we introduce the DPCA algorithm to cluster disease symptoms in this work.
Efforts are made in the fields of association analysis and information recommendation [43,45,16]. In [43], Yuan et al. discussed a personalized recommendation algorithm based on user models and a user-project matrix. A randomwalk-based recommendation algorithm was suggested in [45] that considers item categories. Jia et al. improved the Apriori algorithm based on association analysis [16]. In [33], Sing et al. reviewed automatic tag recommendation algorithms for social recommender systems. Corbellini et al. [8] explored an architecture and platform for developing distributed recommendation algorithms, in which the recommendation time is reduced by modifying job distribution and non-invasive tuning strategies. In the medical field, valuable patient-oriented recommendations were introduced in [46,7,17]. Zheng et al. introduced a context neighbor recommender platform, which integrates contexts via neighbors for recommendations [46]. Chen et al. proposed an autocratic decision-making system using group recommendation methods [7]. In [17], Kefalas et al. explored a graph-based taxonomy approach for recommendation algorithms and systems. A wearable assistant for gait training for Parkinson's disease was introduced in [24], which works with the freezing of gait in out-of-the-laboratory environments. In addition, large-scale medical data were analyzed in [25] to identify frequent diseases using the Apriori algorithm. The frequencies of diseases were identified for patients living in various geographical locations during different periods. Taking advantage of the high accuracy of the Apriori algorithm, we exploit it to extract associated rules of disease diagnosis and treatment schemes.
The rapid development of big data and cloud computing technologies provides powerful computing ability for mining large-scale medical data. Valuable knowledge can be extracted from large-scale data in each application field. Yao et al. designed and developed a big medical data processing system [40]. Shunmei et al. reviewed recommendation methods for big data applications based on cloud computing [26]. Moreover, cloud computing technology provides powerful computing power for machine learning and big data mining. Numerous machinelearning and data-mining algorithms were implemented on various cloud platforms [10,47,36], such as Apache Hadoop and Apache Spark. Li et al. introduced a computing resource management framework of cloud computing platforms, which can be applied in the field of medical data mining [20]. In [10]

Disease Diagnosis and Treatment Recommendation System
To effectively identify more accurate disease symptoms and profusely utilize and share the rich medical knowledge of experienced doctors, we propose a disease diagnosis and treatment recommendation system. DDTRS is comprised of two core modules: (a) the disease-symptom clustering analysis module, in which a DPCA-based clustering algorithm is introduced to classify disease symptoms based on the given inspection reports, and (b) the disease diagnosis and treatment recommendation module. Effective association rules of disease diagnosis and treatment are defined and analyzed by the Apriori algorithm. Valuable diagnosis and treatment plans are recommended for medical doctors and patients via the interactive interfaces of DDTRS.
In the early stages of a patient's treatment, the patient usually undergoes a series of inspection tests, as advised by the attending doctor. Once the inspection reports are available, they are submitted to DDTRS to obtain a diseasesymptom cluster, and then further obtain recommendations of disease diagnosis and treatment plans. The workflow of the disease diagnosis and treatment recommendation is presented in Figure 1.

Standardization Process of Medical Data
Currently, for some inspection tasks, different standards are used in different hospitals, and the standards of one hospital might not be acceptable to another. Few hospitals use unified standards for inspection reports under the management of superior health administrative departments. Therefore, a standardization process is required for the medical datasets gathered from different hospitals. Large-scale historical medical datasets are gathered from our cooperating hospitals. Private patient information, such as ID code, patient name, telephone, and address, is filtered before the data collection process. In the standardization process, a series of operations are performed for the inspection datasets before performing the clustering and association analysis, such as data integration and data cleaning.

Preprocessing of Patient Inspection Data
Profiting from precise instruments and quantifiable data, inspection datasets are utilized as the data source of disease-symptom clustering. In the preprocessing phase, inspection datasets from different departments and different hospitals are collected. Due to the diverse contents of the inspection data, the inspection data are in multiple data formats, e.g., numeric, text, and image formats.
(1) Inspection data in numeric format. Some of the inspection-task-generated report datasets are stored in numeric format, such as those for routine blood inspections, routine urine inspections, and bone marrow examinations. There might be multiple inspection items, which should be tested in each inspection task. An example report of a routine blood inspection task is shown in Table 1.  Table 1, more than 10 inspection items are required in a blood inspection task. The patient information and the corresponding inspection items of each inspection task are selected as the feature variables of the patient's disease data. Due to differences in inspection items, the numbers of feature variables of the disease data are different among inspection tasks. The feature variables of the inspection datasets selected for disease-symptom clustering analysis are presented in Table 2. Detailed descriptions of the inspection item names and abbreviations are given in Table 3.

As shown in
(2) Inspection data in text format. Distinct from the inspection tasks addressed above, there exists another type of inspection tasks, namely, imaging tasks, e.g., Computer Tomography (CT) scanning, Magnetic Resonance Imaging (MRI) scanning, X-ray, type-B sonography, and color doppler ultrasound. The symptom descriptions of these inspection tasks are expressed in the form of images or texts. The patient information and the corresponding symptom results of each inspection task are

Preprocessing of Disease Diagnosis and Treatment Data
(1) Disease diagnosis-scheme data.
In this work, the diagnosis-scheme data refer to the detailed diagnosis descriptions of diseases recorded by doctors rather than the simple definitions of the diseases. Diverse diagnosis schemes are provided at different treatment stages of the same disease. These schemes are recorded by medical doctors or assistants in text format.
DS Cs = {DS C 1 , DS C 2 , ..., DS C i , ..., DS C n } is assumed to be a dataset of disease-symptom clusters. The diagnosis schemes of the same disease-symptom cluster are collected for association analysis. Let DS s = {DS 1 , DS 2 , ..., DS j , ..., DS m } be a dataset of diagnosis schemes. The dataset of the association items between the disease-symptom clusters and the corresponding diagnosis schemes is denoted as E(DS C, DS ). An association item e i j = (DS C i , DS j ) is defined when there exists a diagnosis scheme DS j for disease-symptom cluster DS C i , and e i j ∈ E(DS C, DS ).
Available treatment schemes in hospitals include injections, intravenous infusions, surgical treatments, needle therapy, cupping therapy, and physical therapy. In the treatment process of a disease, the medical doctor might adjust the treatment plans for the patient depending on the current inspection results. Taking a disease as an example, treatment scheme A is suggested for a serious condition, B for a moderate condition, and C for a mild condition. Namely, a specific treatment scheme or a treatment-scheme combination is performed for the current treatment stage of a disease.
Let T S s = {T S 1 , T S 2 , ..., T S j , ..., T S m } be a dataset of treatment schemes. The dataset of the associated items between the disease-symptom clusters and the corresponding treatment schemes is denoted as E(DS C, T S ). An associated item e i j = (DS C i , T S j ) is defined when there exists a treatment scheme T S j for disease-symptom cluster DS C i , and e i j ∈ E(DS C, T S ).

DPCA-based Disease-Symptom Clustering
Although the traditional classification measures are widely used in disease classification and have achieved notable results, they might have difficulty in further classifying a disease accurately according to the symptoms at different treatment stages. To identify disease symptoms more accurately and effectively, the DPCA algorithm is introduced for patients' disease-symptom clustering. The DPCA algorithm is appropriate for diseases that have the characteristics of multiple similar treatment stages, various symptoms, and multi-pathogenesis. Taking advantage of the non-iterative training and the robustness of DPCA on rough data, we introduce DPCA to cluster the disease symptoms in this section. DPCA is an innovative density-peak-based clustering algorithm, which is based on the idea that a cluster center is surrounded by neighbors that have low local densities and large delta distances. After determining the cluster centers, each of the remaining data points is classified to the nearest neighboring cluster that has a higher density.

Clustering Analysis on Inspection Data in Numeric Format
Because of the different dimensions of the datasets in separate inspection tasks, the pre-processed inspection datasets are grouped by task name. The dataset of each inspection task is clustered by DPCA to obtain diseasesymptom clusters separately. The workflow of the clustering analysis on the inspection data in numeric format is illustrated in Figure 2. Let X be a dataset of the pre-processed inspection data in numeric format, defined as follows: where m is the number of inspection tasks and X k is the data subset of the k-th inspection task. Due to the different dimensions of these data subsets, each data subset X k is clustered by the DPCA algorithm separately. The steps of the disease-symptom clustering are described as follows.
(1) Calculate the local density for each data point.
Assume that inspection data subset X k contains M feature variables, namely, the dimension of X k is M. There are N inspection records in X k , namely, |X k | = N. We calculate the distance matrix D k = (d i j ) N×N of X k , where d i j denotes the distance between x i and x j , as defined in Eq. (1): where x ia and x ja are the a-th feature variables of x i and x j , respectively. In the original DPCA algorithm, for each data point x i in X k , the local density ρ i is calculated based on d i j between different data points. The local density ρ i of x i is defined in Eq. (2): where d c is a cutoff distance and Numerous shortcomings can be observed in Eq.
(2), such as low robustness, discrete distribution, and inaccurate density-peak points. ρ i is equal to the number of data points for which the distance from x i is smaller than d c . Therefore, the cutoff distance d c greatly influences the local density ρ, leading to low robustness of the algorithm. In addition, depending on the calculation method of χ(·) in Eq. (2), the local density ρ i is an integer value, and the local density values of all data points in X k obey a discrete distribution. Based on the discrete values of local density, it is difficult to detect local density-peak points and cluster centers accurately. Moreover, in cases of multi-density and non-uniform distribution, there might exist multiple inaccurate density-peak points in each cluster.
To address the limitations of Eq. (2) and effectively cluster the datasets with multi-density and non-uniform distribution, we improve the DPCA algorithm by proposing an optimization solution for the calculation of the local density. A Radial Basis Function (RBF) kernel function is introduced to measure the local density. The RBF kernel function K(||x − x c ||) is a monotonic function of the Euclidean distance between any data point x and a data center x c in a space. The Gauss Kernel Function (GKF), defined in Eq. (3), is a widely used RBF kernel function: where ||x − x c || is the center of the kernel function and σ is a width parameter, which controls the radial range of the function. σ is set as d c in this work. The calculation method of the local density ρ i is optimized based on GKF, namely, Eq. (2) can be modified to Eq. (4): In Eq. (2), the density of a data point is obtained by counting its neighbors. In contrast, in Eq. (4), the density of a data point is obtained by calculating a monotonic function of the distances of all the other data points to the current data point, which can accurately reflect the density distribution of the data points in the entire dataset. GKF maps the data sample to a higher-dimensional space, and it can cope with a nonlinear relationship between the class labels and data features. Owing to the continuous distribution of density values, it can accurately determine the densities of different data points and thereby identify the density peaks. Compared with Eq. (2), the local density ρ based on GKF in Eq. (4) is minimally impacted by the cutoff distance, and the improved DPCA algorithm achieves higher robustness. Benefitting from the advantages of GKF, even for a dataset under a uniform density distribution, the local density peak points can be obtained accurately.
Based on the local density ρ i , the delta distance δ i of each point x i is calculated. δ i is obtained by computing the minimum distance between x i and the data points that have higher density. The delta distance δ i of data point x i is defined in Eq. (5): If the data point x i has the highest density, then δ i = max j d i j .
On the basis of ρ and δ, disease-symptom cluster centers are identified. Data points that have relatively high values of ρ and δ are designated cluster centers. Data points that have small densities ρ and high delta distances δ are considered outliers. A decision graph of ρ and δ is drawn for the disease-symptom clusters detection. An example of a decision graph for disease-symptom clustering is shown in Figure 3.  Figure 3, there are three decision points with higher values of both local density ρ and delta distance δ, which are shown as red squares in the figure. These decision points are identified as candidate disease-symptom cluster centers of the current inspection data subsets. In contrast, the decision points indicated by black triangles have low values of local density and high values of delta distance. These points are identified as outliers and removed from the clustering results. The decision points shown as blue circles in the figure are the remaining data points, which are neither the density peaks nor the noise data. These remaining data points will be assigned to the related disease-symptom clusters in the next step.
(3) Assign the remaining data points to the nearest disease-symptom clusters.
After the disease-symptom cluster centers are detected, each of the remaining data points is assigned to the cluster to which the nearest and higher-density neighbors belong. For each remaining data point x i , the set of neighbors with higher density is denoted as N (x i ). The data point x j ∈ N (x i ) with the minimum distance d i j is discovered from distance matrix D k . If x j has been assigned to a cluster c a , then x i is also assigned to c a . Otherwise, the cluster of x j is further determined iteratively. This step is repeated until all the remaining data points are assigned to the clusters. The DPCA-based clustering analysis process of the inspection data in numeric format is completed and disease-symptom clusters are obtained. An example of the assignment of the remaining data points is shown in Figure 4. The process of the DPCA-based disease-symptom clustering analysis of the inspection data in numeric format is presented in Algorithm 1.
In DPCA, the cluster assignment process is executed in one step. The time complexity of Algorithm 1 is O(Mn 2 ), where M is the number of inspection tasks and n is the average number of records in dataset X k of each inspection task. Thus, the space complexity of the DPCA algorithm is O(n 2 ). Compared with iterative clustering algorithms, the computational complexity of DPCA is very low. X: the inspection data in numeric format; P d c : the percentage of distance for cutoff distance; ε ρ : threshold value of the local density for cluster-center decision; ε δ : threshold value of the delta distance for cluster-center decision. Ensure: DS C: the disease-symptom clusters. 1: for each inspection task X k in X do 2: for each x i in X k do 6: δ i ← calculate delta distance min j:ρ j <ρ i d i j ; 8: if (ρ i bigger than ε ρ and δ i bigger than ε δ ) then 9: DS C c ← identify cluster centers (ρ i , δ i ); 10: end if 11: end for 12: for each x i in X k do 13: append x i to the nearest cluster c a ; 14: end for 15: end for 16: return DS C.

Clustering Analysis on Inspection Data in Text Format
In the disease diagnosis process, in addition to quantitative inspection tasks, admitting doctors record the conditions of patients' diseases by observing and consulting the patients' situations. These records of disease diagnostic information are saved in text format and constitute another important basis for judging the characteristics of patients' diseases. Considering the specific terminology and rigor of the medical domain, we introduce a text clustering analysis algorithm for inspection data in text format based on a medical ontology model in this section. First, inspection data in text format are collected and preprocessed for medical word segmentation, and a medical domain ontology library is constructed. Second, medical ontologies of the pre-processed inspection data are extracted based on the medical domain ontology library. In addition, the ontological similarity of these medical ontologies and the text similarity of these textual samples are calculated. Finally, on these bases, the DPCA algorithm is applied on these text data to obtain the corresponding disease symptom clusters, in which the local density peak ρ is calculated based on the ontological and textual similarities. The workflow of the clustering analysis on the inspection data in text format is shown in Figure 5. (1) Construct medical domain ontology library. Before the ontology extraction, the inspection dataset in text format is preprocessed, in which the private information of patients and doctors is filtered. Then, specific words of the inspection text are segmented using the Natural Language Processing and Information Retrieval (NLPIR) segmentation system [44]. In NLPIR, the text contents are segmented by using the N-shortest-path rough cut method based on the dictionary with word frequency and property statistical information to obtain the best rough coverage results. In addition, properties of segmented words are marked automatically after obtaining the overall optimal word segmentation results.
An ontology is a formal expression of the relationship between a set of concepts and their relationships in a specific field. As a method of expressing knowledge, ontologies have been widely used in various application fields, among which biomedicine is one of the most active areas of ontology applications [21,23]. PROTEGE [4] is a free and open-source ontology editor and a knowledge-based framework developed by the Stanford BioMedical Informatics Research Center. Rim et al. introduced a medical domain ontology construction approach for a medical decisionsupport system [11]. In [21], Lu et al. proposed a medical ontology-enhanced text processing method for infectious disease informatics. In this work, we construct a medical domain ontology library for the text clustering analysis of the inspection data in text format. The medical domain ontology library is built based on the data from PubMed [28], which is a database that provides free searching of biomedical papers and abstracts. We extracted numerous useful phrases and words from the related medical literature in the PubMed biomedical database. The noun phrases are extracted and marked as the concepts of biomedical applications, and the verb phrases are transformed into the corresponding relationships among these concepts. An example of the architecture of the medical domain ontology library in this work is shown in Figure 6. (2) Extract the medical ontology of the text inspection dataset. Based on the medical domain ontology library, we extract various medical ontology objects from the preprocessed text inspection datasets. Because the ontology consists of concepts and relationships, the medical concepts and relationships are extracted separately. Let O = {C, R} be the medical ontology set in this work, where C is the set of medical concepts and R is the set of relationships. The medical concepts of the text inspection dataset are composed of k semantic elements, as defined in Eq. (6): where c i refers the i-th semantic element in the medical domain. Medical ontology relationships consist of medical concepts and their relationships, namely, (3) Calculate the similarity of medical ontologies and text samples.
We introduce an ontology-based similarity measure method to calculate the similarity of medical ontologies and text samples. As described above, the medical ontology is composed of medical concepts and relationships. Hence, the ontological similarity metrics include concept similarity and relationship similarity measures. For two ontology objects o i and o j , the concept similarity between them is defined in Eq. (7): where n i and n j are the numbers of medical concepts of o i and o j , respectively. If c i = c j , then sim(c i , c j ) = 1; otherwise, sim(c i , c j ) = 0. The relationship similarity of ontology objects o i and o j is defined in Eq. (8): where m i and m j are the numbers of medical ontology relationships of o i and o j , respectively. Based on the concept and relationship similarity measure methods, the similarity of two ontology objects is defined in Eq. (9): where α and β are the numbers of medical ontologies of text samples x a and x b , respectively.
(4) Perform text clustering analysis of text inspection data based on PDCA algorithm. Based on the medical ontological similarity, we analyze the disease symptoms from text inspection data by using the PDCA algorithm. The main steps in clustering analysis of the inspection data in text format are same as those used for the inspection data in numeric format. We calculate the local density ρ and delta distance δ for each data sample. Unlike for the inspection data in numeric format, the distance between a pair of data points for the inspection data in text format is measured by the similarity of the documents instead of the Euclidean metric. Therefore, the local density ρ i of data sample x i based on GKF can be calculated by Eq. (11): where S i j = S (x i , x j ) and S c is a cutoff similarity. Afterwards, the delta distance δ of each data sample x i is calculated subsequently with Eq. (12): If data sample x i has the highest density, then δ i = max j S i j . We identify cluster centers based on ρ and δ. Data points that have relatively higher values of ρ and δ are designated cluster centers, while data points that have a small value of ρ and a high value of δ are considered outliers. Afterwards, the remaining data samples are assigned to the disease-symptom cluster to which the nearest higher-density neighbors belong. The clustering analysis process of the inspection data in text format based on the medical domain ontology and the DPCA algorithm is completed and disease-symptom clusters are obtained.

Disease Diagnosis and Treatment Recommendation
Based on the disease-symptom clustering, the multifarious human intelligence of medical doctors is accumulated in the form of valuable diagnosis and treatment knowledge. We perform association analysis of the D-D and D-T rules. Moreover, appropriate disease treatment plans are recommended to medical doctors and patients via DDTRS.

Association Analysis of Disease Diagnosis and Treatment Schemes
After preprocessing the disease diagnosis-and treatment-scheme data, the Apriori algorithm is introduced for the association analysis of the D-D rules and the D-T rules, respectively. The Apriori algorithm is used to detect the association relationships between the disease-symptom clusters and the disease diagnosis and treatment schemes that have been utilized successfully. The workflow of the disease diagnosis-and treatment-scheme association analysis is illustrated in Figure 7. Owing to the similar principles of three rules, we take the D-T rules as an example to elaborate the association analysis process. The detailed steps of the Apriori-based disease treatment-scheme association analysis are described as follows. In general, for a patient, multiple visits are required in the treatment process of a disease. The disease diagnosis and treatment data collected during each patient visit are considered as an association record in this work. Each association record contains the inspection reports, diagnosis schemes, and corresponding treatment schemes. These datasets are collected and grouped by disease into the same clusters, which are utilized as the data source of association analysis.
(1) Set minimum S upport and minimum Con f idence.
To obtain the association rules between each disease and its treatment schemes, the treatment schemes of the same disease-symptom cluster are analyzed separately. The D-T rules of disease-symptom cluster DS C i are defined as R ix ⇒ R iy , where R ix ⊂ E(DS C, T S ), R iy ⊂ E(DS C, T S ), and R ix R iy = ∅.
Definition 1: (Support). The support of an association rule R ix ⇒ R iy in the association rule set E(DS C, T S ) refers to the ratio of the number of treatment records that contain both R ix and R iy to the total number of treatment records for disease-symptom cluster DS C i .
The S upport of association rule R ix ⇒ R iy is denoted as S up(R ix ⇒ R iy ), as defined in Eq. (13): Definition 2: (Confidence). The confidence of an association rule R ix ⇒ R iy in the association relationship set E(DS C, T S ) refers to the ratio of the number of treatment records that contain both R ix and R iy to the number of association rules that contain R ix .
The Con f idence of association rule R ix ⇒ R iy is denoted as Con f (R ix ⇒ R iy ), as defined in Eq. (14): Definition 3: (Frequent Itemsets). If the support and confidence of an association rule R ix ⇒ R iy in E(DS C, T S ) are greater than the minimum support degree and the minimum confidence, respectively, the rule is defined as a frequent item FI ∈ E(DS , T S ).
For a dataset T S s of treatment schemes, the aim of association rule mining is to extract the D-T rules that satisfy the minimum S upport and minimum Con f idence at the same time. According to the results of disease-symptom clustering analysis and treatment schemes, the minimum support is set as MinS up(R ix ⇒ R iy ) = 2 and the minimum Con f idence is defined as MinCon f (R ix ⇒ R iy ) = 50%.
The association rule itemset FI(DS C, T S ) = {R i j } is generated as the frequent itemsets of D-T rules, where (3) Extract strong association rules from frequent itemsets.
After obtaining the maximum frequent itemsets of the treatment-scheme data, candidate D-T rules are extracted from these frequent itemsets. These D-T rules are utilized in the disease treatment recommendation. The Aprioribased association analysis of disease diagnosis and treatment scheme is presented in Algorithm 2.
Similar to the case of the D-T rules, the association analysis of the D-D rules is carried out using the Apriori algorithm. Thus, strong association rules among the disease-symptom clusters, diagnosis schemes, and treatment schemes are extracted.

Recommendation Interfaces
On the basis of the disease diagnosis-and treatment-scheme association analysis, we implement a Client / Service (C/S) application for medical doctors and a mobile application for patients to provide treatment recommendations. Using the applications' interactive interfaces, medical doctors and patients can access the inspection reports and the corresponding treatment recommendations at different treatment stages. They can update the inspection results in the system to obtain recommendations. DDTRS can adjust the output according to the input changes.
(1) Interactive recommendation interfaces for doctors. We provide interactive recommendation interfaces of DDTRS to medical doctors in hospitals. An example of one such interface is shown in Figure 8. To facilitate used by local patients, the application is designed using the Chinese language. However, the application can be easily customized to different languages. For the convenience of the readers, here we illustrate the English version of the application. From the interactive interface, medical doctors can review the inspection reports of their patients and submit the inspection data to the disease-symptom clustering module. Based on the results of disease-symptom clustering, the diagnosis scheme and treatment plans for each disease are recommended to the medical doctors.
In Figure 8, the inspection report shows that abnormal results were obtained for multiple inspection items, such as CEA, AFP, and HCG-β. Among them, CEA reaches 5.56 ng/ml, which is slightly higher than the normal reference range of 0.00 -5.00; AFP reaches 121000 ng/ml, which is significantly higher than the normal reference range of 0.00 -25.00; and HCG-β reaches 4.17 U/ml, which is higher than the normal reference range of 0.00 -3.00. After clustering the submitted inspection report, a disease-symptom cluster is obtained from the similar historical inspection data. The corresponding items of the cluster center are listed as follows: CEA = 6.62 ng/ml, AFP = 113052 ng/ml, Algorithm 2 Apriori-based association analysis of diseases' diagnosis and treatment scheme Require: DS Cs: the dataset of disease-symptom clusters; T S s: the dataset of disease treatment-scheme records; MinS up: the predefined value for the minimum S upport; MinCon f : the predefined value for the minimum Con f idence. Ensure: FI(DS C, T S ): the frequent itemsets of the association rules. 1: create frequent itemset FI(DS C, T S ); 2: for each DS C i in DS Cs do if S up(R ix ⇒ R iy ) ≥ MinS up then 8: S up(R ix ) ; 9: if Con f (R ix ⇒ R iy ) ≥ MinCon f then  and HCG-β = 5.28 U/ml. The cluster is termed Liver Cancer, which is detected in the form of mean symptom values. Depending on the disease-symptom cluster Liver Cancer, related diagnosis schemes and treatment plans are recommended, as shown in the right region of Figure 8. Further description of the case analysis of liver cancer is presented in Section 5.3.1.
From a medical point of view, inappropriate treatment recommendations might lead to misdiagnosis and endanger the patient's health. Therefore, the correctness and effectiveness of the recommendations are the key issues for this kind of application. The quality of a treatment scheme for a patient can be evaluated by tracking the changes of the items' values in his inspection reports. However, due to different pathologies and diverse patient health conditions, it is difficult to implement a common evaluation standard for the quality of each treatment scheme. Doctors might provide feedback if some incorrect recommendations are made. A feedback collection and analysis module should be utilized to improve the effectiveness of the application. Evaluation is performed based on the quality indicators of the treatment recommendations, which are fed back from medical doctors.
When a doctor receives a recommended treatment scheme, he can adopt and apply it completely or in part to his patient. After tracking and comparing the changes of the inspection reports and patient's health condition, the doctor determines whether the recommended treatment scheme is effective for the patient's disease. Afterwards, via the application interface, he submits the quality indicators of the treatment scheme, such as effectiveness, chronergy, non-harmful side-effects, economy, and patient satisfaction. The value of each indicator is in the range of (1 ∼ 5). The detailed description of the quality-evaluation method of treatment schemes is presented in Section 5.2.3.
(2) Interactive recommendation interfaces for patients. A mobile application of DDTRS is provided to patients with interactive recommendation interfaces. After each visit, when a patient completes the inspection tasks under his medical doctor's preliminary advice, he can obtain the inspection reports through the mobile interfaces. Examples of interactive mobile recommendation interfaces for patients are shown in Figure 9. From the recommendation interface, patients can understand and obtain the details of their health conditions via the disease-symptom clustering function. Moreover, they can further access the corresponding diagnosis and treatment schemes through the interface. However, there are two cases in which the recommendations might have negative influences on patients. First, some patients might feel sensitive and anxious when they receive their disease treatment recommendations. Namely, the recommendations could have bad effects on the patients. To avoid this problem, before sending the recommendation messages to a patient, an option is provided on the doctor's interface that allows the doctor to determine whether the message should be accessible to the patient. Second, some patients might have difficulty in understanding the meanings of recommendations and their health conditions because they do not have the medical knowledge that the doctors have. In this case, they can further consult their doctors or access references from websites. In consideration of the lack of patient medical knowledge and incomplete feedback, evaluations from patients are not considered in this work.

Parallel Solution of DDTRS
The performance of disease diagnosis and treatment recommendation is the focus of this section. The efficiency of the disease-symptom clustering and the latency response of the treatment recommendations are the critical issues of the proposed DDTRS. After submitting the symptom data of a patient's disease, one expects to receive an appropriate and timely treatment recommendation. It would be convenient, useful, and preferable if the patients could receive appropriate diagnosis and treatment plans through an interactive mobile application in real time. Therefore, to reach the goals of high performance and low latency response, we parallelize DDTRS on the Apache Spark cloud computing platform. The clustering process of disease symptoms and the association analysis process of the disease treatment scheme are parallelized separately.

Parallel Clustering Process of Disease Symptoms
In the parallel solution of the disease-symptom clustering module of DDTRS, large-scale historical inspection datasets are gathered from the cooperating hospitals of this work in a fixed time interval. DDTRS is deployed on the Spark cloud platform at the National Supercomputing Center in Changsha (NSCC) of China. Afterwards, these datasets are stored in the Hadoop Distributed File System (HDFS) on the Spark cloud platform. The parallel clustering process of disease symptoms is implemented on the Spark computing cluster with the RDD programming model. Apache Spark is a popular parallel data processing platform, that is especially suitable for big data mining and machine learning. In contrast to Hadoop, parallel programming models of RDD and DAG are supported, which are built on a memory computing framework. These methods reduce the volume of data transmission operations in the distributed environment without reducing the algorithm's accuracy.

RDD Dependence for Large-scale Inspection Data
Before the parallel clustering process, massive volumes of inspection data are loaded into the Tachyon system of the Spark platform with a type of RDD object. The RDD model is the core programming model of Spark and represents a collection of distributed items. RDD objects are manipulated in parallel across many computing nodes. As discussed above, due to different numbers of the inspection items, the dimensions of the datasets for different inspection tasks are different. The clustering process of each inspection task is executed in parallel separately. An RDD object RDD task is created for the inspection data subset of each inspection task. Resulting from the unconstrained clustering process, RDD independencies also occur between different inspection tasks. Afterwards, each of the RDD objects is allocated to one or multiple adjacent computing nodes of the Spark platform.
In Spark, each RDD object offers two types of operations: (a) T rans f ormations and (b) Actions. T rans f ormations include some operations on RDD objects that return a new RDD object, such as the map and f ilter functions. Actions include some operations that compute a result based on an RDD object and return it to the driver program or save it to an external storage system (e.g., HDFS). At the T rans f ormation stage, m RDD objects are created to store m data subsets of inspection tasks, which are split from the original RDD object RDD T asks grouping by the name of the inspection task. In Spark, these objects are computed in a lazy fashion way; namely, they are created in an action at the Action stage. At the Action stage, m defined RDD objects are created in the Tachyon system.
In the subsequent process of disease-symptom clustering analysis, each RDD task is calculated, and multiple new RDD objects are generated from RDD task . Data dependencies occur among the RDD objects generated for the same inspection task in the clustering process. RDD dependencies of disease-symptom clustering analysis are presented in Figure 10.
In Spark, there are two types of RDD dependencies: (a) narrow dependencies and (b) wide dependencies. In a narrow dependency, each partition of the parent RDD is used by at most one partition of the child RDD. In contrast, in a wide dependency, multiple child partitions might depend on one partition of the parent RDD. As is evident in Figure 10, there are various RDD dependency relationships in the clustering process. Obviously, a narrow dependency exists between RDD tasks and each inspection data subset RDD task . Afterwards, for each RDD task , an RDD Dist object is created to save the distance matrix. Similarly, a narrow dependency occurs between RDD Dist and RDD task . In the subsequent process of the disease-symptom clustering, objects RDD rho and RDD delta are created to save the values of the local density and the delta distance separately. Owing to the cross-partition calculation, wide dependencies exist between RDD rho and RDD Dist , RDD delta and RDD Dist , respectively. Finally, an RDD DS C object is created to Figure 10: RDD dependencies of disease-symptom clustering analysis save the disease-symptom clusters, which is calculated based on the RDD rho , RDD delta , and RDD task . Therefore, wide dependencies occur between RDD DS C and RDD rho , RDD delta , and RDD task .

Parallel Clustering Process Based on the DAG Model
According to the RDD dependency, the master computing node of the Spark cluster constructs a task-scheduling DAG for the disease-symptom clustering process. The parallel clustering process based on the Apache Spark platform is presented in Algorithm 3. The detailed steps of the process are described as follows.
(1) The execution environment of the Spark platform is configured, such as the name of the program and the address of the Spark platform. Then, massive volumes of historical inspection datasets are loaded from HDFS to the Spark Tachyon memory system as an RDD object (termed RDD T asks ). In the groupByKey function, records of RDD T asks are divided into a series of RDD objects (each one is termed RDD task ) by inspection task name.
(2) In the f oreach parallel function, the disease-symptom clustering process of each RDD task is executed simultaneously. An object RDD Dist is created to save the value of a distance matrix from the current RDD task . The local density ρ i and delta distance δ i of each record x i are measured in parallel in the map function. Then, the corresponding objects RDD rho and RDD delta of RDD task are obtained in the reduce and collect functions.
(3) Records with high values of both RDD rho and RDD delta are identified as the centers of disease-symptom clusters (termed DS Cc s ). Afterwards, each of the remaining inspection records in RDD task is assigned to the nearest cluster in the f latMap parallel function. Owing to the independence of RDD task during the remaining-record assignment step, this step is executed in parallel. Moreover, there is no data transmission consumption among the computing nodes that the dataset located. Finally, an RDD object RDD DS C is obtained for the detected disease-symptom clusters.

Parallel Association Analysis of D-T Rules
To increase the speed of disease treatment-scheme association analysis and achieve a low latency response of the treatment recommendation, we parallelize the association analysis process on the Apache Spark cloud computing platform.

RDD Dependence for Large-scale Treatment Data
Analogous to the inspection data, large-scale historical treatment-scheme datasets are gathered from the cooperating hospitals and stored on HDFS in a fixed time interval. Before the association analysis process, the treatmentscheme datasets are loaded into the Spark Tachyon memory system with a type of RDD object (termed RDD T S ). At the same time, the results of disease-symptom clustering obtained from Algorithm 3 are loaded into the Tachyon system as an RDD object RDD DS C . In the subsequent process of disease treatment association analysis, records of Algorithm 3 Parallel process of the DPCA-based disease-symptom clustering Require: Path X : the path of the inspection datasets stored on HDFS; P d c : the percentage of distance for cutoff distance; ε ρ : threshold value of the local density for cluster-center decision; ε δ : threshold value of the delta distance for cluster-center decision. Ensure: RDD DS C : RDD objects of the disease-symptom clusters. 1: con f ← new SparkConf("DPCA", "SparkMaster"); 2: sc ← new SparkContext(con f ); 3: inspection datasets data ← sc.textFile(Path X ); 4: RDD T asks ← data.map 5: f ields ← line.split("::"); 6: return inspection record ( f ields(0), f ields(1)); 7: end map; 8: RDD T asks .groupByKey().foreach 9: calculate distance matrix RDD Dist from RDD task ; 10: RDD Dist ← arrange RDD Dist in ascending order; 11: d c ← distance of the P d c position in RDD Dist ; 12: (RDD rho , RDD delta ) ← RDD task .map 13: ρ i ← calculate local density j∈N, j i e δ i ← calculate delta distance min j:ρ j <ρ i d i j ; 15: return (ρ i , δ i ); 16: end map.reduce().collect(); 17: DS Cc s ← identify cluster centers(RDD rho , RDD delta ).map 18: if (ρ i bigger than ε ρ and δ i bigger than ε δ ) then 19: DS C c ← identify cluster centers (ρ i , δ i ); 20: return DS C c ; 21: end if 22: end map 23: RDD DS C ← RDD task .flatMap 24: append x i to the nearest cluster DS C n ; 25: end flatMap.reduceByKey(); 26: end foreach.collect(); 27: return RDD DS C .
RDD T S and RDD DS C objects are calculated. In addition, multiple new RDD objects are generated according to the data dependency between RDD T S and RDD DS C . RDD dependencies of the treatment-scheme association analysis are presented in Figure 11.
In Figure 11, there are various RDD dependency relationships in the association analysis process. The RDD object RDD sup of the support value is created based on treatment schemes RDD T S and disease-symptom clusters RDD DC . Because each partition of RDD T S is used by at most one partition of RDD sup , a narrow dependency exists between RDD T S and RDD sup . In contrast, since multiple partitions of the child object RDD sup are dependent on one partition of RDD DC , a wide dependency exists between RDD DC and RDD sup . In the subsequent process of the association analysis, to obtain the confidence value, an object RDD con f is created from RDD sup , with a narrow dependency between them. Finally, an object RDD FI is created to save the frequent items based on the wide dependency of RDD con f .

Parallel Association Analysis Process of Disease-Treatment Rules
Similar to the parallel clustering process, the execution environment is configured for the parallel association analysis process. According to the RDD dependencies in Figure 11, for each disease-symptom cluster DS C i , the association analysis process of the corresponding treatment schemes is executed in parallel in the f oreach function. The association rules between DS C i and the related treatment schemes DS C i .T S s are extracted. In the f latMap parallel function, the support value RDD S up of each association rule is measured by the Apriori algorithm. If RDD S up of an association rule is larger than the minimum support MinS up, the confidence value RDD Con f of the rule is derived. If RDD Con f is larger than the minimum confidence MinCon f , the current association rule is marked as a strong rule. In the f latMap and f oreach functions, strong rules of disease-symptom clusters RDD DS C are appended to the frequent itemset RDD FI(DS C, T S ) simultaneously. Hence, strong association rules of disease treatment schemes are produced. The parallel process of the Apriori-based disease treatment-scheme association analysis is presented in Algorithm 4.
The computational complexity of Algorithm 4 is O( |c|k p ), where |c| is the number of disease-symptom clusters, k is the average number of treatment records for each disease-symptom cluster, and p is the number of computing nodes. Benefiting from the distributed data allocation and the parallel computing mechanism, the time complexity of the Apriori-based disease treatment-scheme association analysis is obviously reduced.

Experiments and Applications
We evaluate our proposed model in terms of clustering accuracy, recommendation quality, and performance of the proposed DDTRS. Section 5.1 presents the experimental settings. Clustering accuracy and recommendation quality evaluations of DDTRS are presented in Section 5.2. Section 5.3 analyzes two cases of the disease treatment recommendations. A performance assessment of DDTRS is provided in Section 5.4.

Experimental Setup
DDTRS is developed in a client/server software model, including a data-collection terminal (client) and a dataanalysis terminal (server). The data-collection terminal is deployed in our cooperating hospitals. Using the datacollection terminal, massive volumes of historical and current medical datasets are gathered, and the results of clustering analysis and treatment recommendations are fed back to the medical doctors in these hospitals. The data-analysis terminal is deployed at the National Supercomputing Center in Changsha (NSCC) for the disease-symptom clustering, association analysis, and treatment recommendation.
The experimental setup of DDTRS is installed on the Apache Spark cloud platform at the NSCC, which is comprised of 30 computing nodes. Each node has eight Intel Xeon Nehalem EX CPU (8 cores, 2.27GHz) and 32GB Algorithm 4 Parallel process of the Apriori-based disease treatment-scheme association analysis Require: DS Cs: the disease-symptom clusters obtained from Algorithm 3; Path T S : the path of the treatment-scheme records stored on HDFS; MinS up: the preset value of the minimum support; MinCon f : the preset value of the minimum confidence. Ensure: RDD FI(DS C, T S ) : the frequent itemsets of the association rules. 1: con f ← new SparkConf("Apriori", "SparkMaster"); 2: sc ← new SparkContext(con f ); 3: RDD T S ← sc.textFile(Path T S ); 4: create frequent itemset FI(DS C, T S ); 5: sc.parallelize(DS Cs).foreach 6: get disease-symptom cluster DS C i ; R ix ← get treatment association E(DS C i , T S j ); 10: R iy ← get treatment association E(DS C i , T S j+1 ); 11: calculate the support value RDD S up (R ix ⇒ R iy ); 12: if RDD S up (R ix ⇒ R iy ) ≥ MinS up then 13: calculate confidence RDD Con f (R ix ⇒ R iy ); 14: if RDD Con f (R ix ⇒ R iy ) ≥ MinCon f then memory. The nodes are connected by a high-speed Gigabit network. Each node is configured with Ubuntu 15.10 and a cloud computing environment using Apache Spark 1.6.0.

Accuracy of Disease-Symptom Clustering
The accuracy of the disease-symptom clustering is a crucial issue in medical sciences. Inaccurate results of the disease-symptom clustering might lead to incorrect diagnoses and inappropriate treatment recommendations, endangering patients' health. Considering that predicting disease for a given inspection result is a standard classification issue, in this experiment, two typical classification algorithms (namely, C4.5 and Random Forest (RF)) and a typical clustering algorithm (namely, K-Means) are introduced as the comparison algorithms. The accuracy of the proposed DPCA-based disease-symptom clustering algorithm is assessed by comparing the results with those of the C4.5, RF, and K-Means algorithms.
Although the clustering algorithm is a kind of unsupervised learning algorithm, for which it is not necessary to label the samples in advance, we pre-defined the class labels for all the samples in this experiment for comparison with the classification algorithms. Cluster Accuracy (CA) is introduced to evaluate the clustering algorithms and the classification algorithms [13]. CA measures the ratio of the number of correctly classified / clustered instances to that of pre-defined class labels. Let X be the inspection dataset in this experiment, let C be the set of classes / clusters detected by the corresponding algorithm, and let L be the set of pre-defined class labels. CA is defined in Eq. (15): where C i is the set of data points in the i-th class/cluster, L i is the set of pre-defined class labels of the data points in C i , and K is the size of C. max(C i |L i ) is the number of data points that have the majority label in C i . The greater value of CA, the higher the accuracy of the classification / clustering algorithm and the greater the purity that each cluster achieves. The comparison results of disease-symptom clustering based on different algorithms are illustrated in Figure 12. As is evident from Figure 12, for diseases that have few treatment stages or pathogeneses, such as influenza and Diabetes Mellitus (DM), the traditional classification algorithms obtain higher accuracy than the clustering algorithms. For example, in the case of influenza, the accuracy of C4.5 is 85.32% and that of RF is 92.82%, and those of the K-Means and DPCA algorithms are 70.92% and 84.73%, respectively. In the case of DM, the accuracies of C4.5 and RF are 86.48% and 90.23%, while those of K-Means and DPCA are 74.38% and 86.53%, respectively. This is because there are fewer treatment stages of diseases and fewer changes in the disease symptoms. In contrast, for diseases with the characteristics of multiple treatment stages, various symptoms, or multi-pathogenesis, the clustering algorithms achieve higher degrees of accuracy than the traditional classification algorithms. For example, in the case of anemia, the accuracy of DPCA is higher than those of the comparison algorithms, peaking at 88.35%, while those of the K-Means, RF, and C4.5 algorithms are 72.36%, 66.21%, and 57.92%, respectively. The experimental results demonstrate that our DPCA-based disease-symptom clustering algorithm achieves stability and high accuracy.

Robustness of the DPCA Algorithm
To intuitively describe the DPCA clustering process of disease symptoms, we take a dataset of the tumor-marker inspection task as an example. The disease-symptom clustering analysis of this dataset is expected to identify whether the patients corresponding to these data have a liver cancer. Liver cancer is a malignant tumor that occurs in the liver, which includes a primary liver cancer and metastatic liver cancer. In the tumor-marker inspection task, there are more than 10 inspection items, such as alpha-fetoprotein (AFP), carcinoembryonic antigen (CEA), carbohydrate antigen (CA724), CA125, CA153, CA199, neuro-specific enolase (NSE), globulin (GLO), human chorionic gonadotophin-β (HCG-β), and gamma glutamyl transpeptidase (GGT). Among them, AFP and CEA are the most crucial inspection items for identifying liver cancer. AFP measurement is one of the most specific methods for the diagnosis of hepatocellular carcinoma. CEA is a tumor index of digestive tract cancer, which particularly deteriorates and transforms into liver cancer. When AFP is more than 25 ng/ml and CEA is more than 5 ng/ml, a tumor is often suggested, which is common in liver cancer, colorectal cancer, and breast cancer.
To facilitate expression and understanding, a dataset of the tumor-marker inspection task containing 40 samples is collected, and two inspection items (namely, AFP and CEA) of the inspection task are selected to construct a twodimensional data view. Afterwards, we analyze the calculation processes, such as distance calculation and density peak calculation. The dataset of the tumor-marker inspection task is shown in Table 4. To compare the effects of different calculation methods of local density on the robustness of the algorithm, we set different values of the cutoff distance in the experiment. For the 40 data points of the dataset in Table 4, there are 780 distance values between data points, which are calculated by Eq. (1). These distances are arranged in ascending order, and the cutoff distance d c is set to the distance values of the 1.0%, 2.0%, 3.0%, and 4.0% positions of the ordered distances. Namely, the cutoff distance d c is set as 0.57, 0.76, 0.85, and 0.88, respectively. The influence of the cutoff distance on the local density is evaluated by analyzing the variation of the data density under different cutoff distances. We calculate the local density ρ for the dataset by Eq. (2) and Eq. (4) depending on different cutoff distances. Moreover, corresponding delta distances δ are subsequently calculated based on the related local density ρ. The results of comparing the effects of different calculation methods of local density are presented in Figure 13. It can be observed from Figure 13 (a) to (d) that, using the calculation method of Eq. (2), the value of cutoff distance d c has a great influence on the local density of the data points. When d c is equal to 0.57 (1.0%), the densities of most data points are 1.0 while delta distances are in the range of 0.0 to 10.0. There is only one point with high density (2.0) and high delta distance (20.1), which is the candidate cluster center. With the change of the value of d c , the distributions of decision points in Figure 13 (b), (c), and (d) are changed evidently. In contrast, it can be found from Figure 13 (e) to (h) that, using GKF of Eq. (4), the value of cutoff distance has minimal effect on the local density of the data points. When the value of cutoff distance d c increases from 0.57 (1.0%) to 0.88 (4.0%), the density distribution of the data points is basically stable. There are three decision points with high density and high delta distance (shown as the red squares) in the four cases of (e) to (h), which are the candidate cluster centers. At the same time, there are four decision points with low density and high delta distance (shown as the black triangles) in the four cases, which refer the outliers. Moreover, the three candidate cluster centers and four outliers refer to the same data points in the four cases. Among them, four outliers are the 1-st (AFP = 1.06 and CEA = 10.70), 2-nd (AFP = 2.32 and CEA = 13.50), 12-th (AFP = 7.38 and CEA = 10.35), and 13-th (AFP = 8.00 and CEA = 8.10) of data points in Table 4. Three candidate cluster centers are the 18-th (AFP = 4.54 and CEA = 26.03), 22-th (AFP = 4.91 and CEA = 27.98), and 26-th (AFP = 5.30 and CEA = 27.62) of data points, which refer different degrees of disease symptom of liver cancer. Therefore, we can carefully draw the conclusion that, the DPCA algorithm achieves high robustness by using GKF and obtain accurate disease-symptom clusters.

Quality Evaluation of Treatment Recommendation
To evaluate the quality of the treatment recommendation that DDTRS provided, an evaluation is performed via feedback from medical doctors. There are five indicators available on the application interface to evaluate the quality of the treatment scheme: (a) effectiveness, (b) chronergy, (c) non-harmful side-effects, (d) economy, and (e) patient satisfaction. The quality of a treatment scheme is defined in Eq. (16): where E f t is the effectiveness of the treatment scheme, Chr is the chronergy, NS E is the non-harmful side-effects, Eco is the economy, and PS is the patient satisfaction. The scoring range of each indicator is (1 ∼ 5). The quality Q of the treatment scheme is drawn as a radar graph, as shown in Figure 14. The radar graph of Q is a pentagon, in which the distance from the center to each vertex is equal to 5. It is easy to obtain that each side length is approximately 5.88 and the area of the pentagon is S pentagon = (5.88) 2 4 25 + 10 √ 5 ≈ 59.44. Hence, the value of Q is within the range of (1 ∼ 59.44). According to the radar graph, the value of Q is the area defined by the five indicators (Eq. (17)): In Eq. (17), the value of each indicator is computed with the scores submitted by doctors and their weights. Taking the effectiveness indicator E f t of a treatment plan as an example, assume that N scores are fed back from doctors.
Then, E f t is defined in Eq. (18): where e f t i is the score evaluated by the i-th doctor and w i is his weight, with a value in the range of (0 ∼ 1).
The weight of a doctor is defined based on the professional authority of the doctor in his field of expertise. Namely, it's value is calculated by combining his professional title and the average quality of his historical treatment schemes. Assuming that M treatment schemes presented by the i-th doctor are utilized in the recommendation, let Q i = 1 M M j=1 Q j be the average quality of all treatment schemes of the doctor. The weight value of the i-th doctor is defined in Eq. (19): where d i is the professional degree of the doctor, the value of which is in (1, 2, 3, 4), corresponding to different professional titles, such as primary (physician / resident), intermediate (doctor), deputy senior (deputy chief physician), and senior (chief physician). If there is no treatment scheme belonging to this doctor, we setQ i = 1. The weight distribution of doctors with different professional titles is shown in Figure 15. Four treatment schemes are considered in this experiment to evaluate to quality of the recommendation module. For each treatment-scheme case, more than 10,000 feedbacks over a period of more than six months are gathered. The results of the quality evaluation of treatment recommendations are shown in Figure 16, and the detailed description is provided in Table 5. As shown in Figure 16 and Table 5, the four treatment schemes reach overall quality scores of 28. 44 -37.27, with an average of 34.34. Compared with the other four indicators, the effectiveness achieves the highest overall score, with high values in the range of 4.11 -4.73 (82.20% -94.60%) and 4.33 (86.60%) on average. Indicators of non-harmful side-effects and patient satisfaction are ranked second and third, with average values of 3.90 (78.00%)  20%), respectively. However, the economic indicator is ranked the lowest, with a value of 3.24 (64.80%) on average. In general, a high-quality treatment recommendation means that the treatment has high effectiveness, chronergy, and few side effects. The experimental results demonstrate that the system can provide high-quality treatment recommendations and achieve the desired design goals.

Case Analysis of Liver Cancer
To estimate the validity and reliability of DDTRS, an application of disease-symptom clustering is considered and treatment recommendation is performed. DDTRS is deployed at our cooperating hospitals in China. A tumor-marker inspection task is performed on a male patient volunteer of age 50. The inspection report of the tumor marker stored in HDFS is described as follows.
"Tumor marker inspection:: specimen : serum, patient gender : female, age : 50, CEA : 5.56, AFP : 121000, CA724 : 0.69, CA125 : 28.29, CA153 : 11.86,CA199 : 0.60, NSE : 11.30, GLO : 29.4, HCG-β : 4.17, GGT : 12.0, ..." After clustering the submitted inspection report, a disease-symptom cluster named Liver Cancer is obtained from similar historical inspection data. Compared with the clustering results, diseases are usually inaccurately diagnosed by inexperienced medical doctors according to their own experience. The cluster center of the Liver Cancer disease is detected in the form of mean symptom values, which are characterized as follows. Depending on the disease-symptom cluster Liver Cancer, related diagnosis schemes and treatment plans are recommended: "The symptoms reflect the liver cancer. Liver cancer is the malignant tumor that occurs in the liver, which including a primary liver cancer and a metastatic liver cancer. When AFP is more than 25 ng/ml and CEA is more than 5 ng/ml, it is often suggested as a tumor, which is common in liver cancer, colorectal cancer, and breast cancer." The inspection report, disease-symptom clustering, and the treatment recommendation for Liver Cancer are presented in Figure 9. The recommended treatment scheme for Liver Cancer is surgical resection, which is the best choice. It can lead to healing by complete removal of the tumor tissue. The medication scheme of Liver Cancer is suggested in Table 6.

Case Analysis of Anti-Cardiolipin Antibody Syndrome
Another case of disease-symptom clustering and treatment recommendation is considered to verify the effectiveness of the proposed system. In the first place, a blood serum inspection task is performed on a female volunteer of age 33, who has been pregnant for two months. The inspection report of the blood serum for the volunteer is stored on HDFS and is characterized as follows.
"ACAS is a general term for a group of clinical signs caused by an anti-cardiolipin antibody. Anti-cardiolipin antibody is a type of autoantibody that the target antigen of it is taken on the platelets and the heart phospholipids, which exists on the endothelial cell membrane with negatively charged. ACAS often appears in SLE and other autoimmune diseases. There are close relationships between this antibody and the diseases, such as thrombosis, throm bocytopenia, spontaneous abortion, and intrauterine fetal death." The recommended treatment plan for the ACAS disease is to inject heparin sodium and take medication at the same time; the medication plan for ACAS is shown in Table 7. The performance of the disease-symptom clustering module of DDTRS is assessed. Inspection reports of four types of diseases are clustered, namely, influenza, diabetes mellitus, anemia, and hemorrhagic disorder. Their data sizes are 5GB, 10GB, 15GB, and 20GB, respectively. The experiments on each group of inspection datasets are executed on the Spark cluster. On the Spark cluster, the number of computing nodes increases from 5 to 30 in each case of the experiments. By observing the average execution time of the disease-symptom clustering process, performance across different cases is compared and analyzed. The results of the performance evaluation experiments are presented in Figure 17. In Figure 17, when the number of the cluster nodes is set to 5, due to the different sizes of the inspection data, the execution time of the clustering process for each case is different evidently. For example, in the case of hemorrhagic disorder, owing to the data size of 20GB, the execution time is longer than those of all the other cases, peaking at 1976.56 s. In contrast, the execution time is 1621.25 s in the case of anemia (15GB), 764.37 s in the case of diabetes mellitus (10GB), and 528.52 s in the case of influenza (5GB). As the number of cluster nodes increases from 5 to 30, taking advantage of data-parallel and task-parallel schemes of parallel computing, the performance of the diseasesymptom clustering process is improved distinctly. For example, the average execution time decreases from 528.52 s to 103.68 s in the case of influenza and decreases from 764.37 s to 145.52 s for diabetes mellitus. Obviously, the advantage of parallel optimization is greater in cases of large-scale datasets than in cases of small-scale datasets. The benefit is more noticeable when the dataset size increases or the number of slave nodes increases to a finite extent.

Performance of Disease-treatment Association Analysis and Recommendation
To evaluate the performance of the disease treatment association analysis and recommendation module, four groups of datasets of disease diagnosis and treatment are analyzed on the Spark cluster under different scales. The number of computing nodes in each experiment increases from 5 to 30. The average execution times of the association analysis process in different cases are illustrated in Figure 18. When there are five computing nodes on the Spark cluster, the average execution times of the association analysis process are 262.45 s for influenza, 240.71 s for proteinuria, 213.36 s for chronic gastritis, and 192.12 s for gout. As the cluster scale increases from 5 to 30, the average execution times of the association analysis process decrease by ratios of 6.02, 5.70, 5.20, and 4.78, respectively. Almost-linear speedup is achieved. The average execution time in the four cases is approximately 41.76 s. Benefitting from the high computing power of cloud computing and parallel computing, the performance of DDTRS is improved significantly.

Conclusions
This paper presented a disease diagnosis and treatment recommendation system to recommend medical treatments based on the given inspection reports of patients. The proposed system first clusters the inspection reports to obtain disease symptoms as clustering centers. Then, it identifies strong links between diseases and treatments by applying an association analysis algorithm. The paper further provided qualitative analysis of the proposed system by demonstrating how a patient and a doctor obtain treatment recommendations based on the patient's inspection reports. Experimental and application results indicated that the system effectively achieves the required goals and provides high-quality recommendations with low latency response.
In our future work, the effectiveness of the disease diagnosis and treatment schemes will be evaluated by tracking the changes in the inspection parameters of each patient. In addition, appropriate and accurate recommendations will be offered based on superior weighted diagnosis and treatment schemes. Moreover, security perspectives of the system in an actual application environment will be addressed.