Dynamic topological system and method for efficient claims processing

Information

  • Patent Grant
  • 10474792
  • Patent Number
    10,474,792
  • Date Filed
    Thursday, November 12, 2015
    9 years ago
  • Date Issued
    Tuesday, November 12, 2019
    5 years ago
Abstract
A dynamic topological system and method for efficient claims processing are provided. The dynamic topological system and method for efficient claims processing may be used in a healthcare system. The dynamic topological system and method for efficient claims processing is easily extensible, maintainable and extendable.
Description
FIELD

The disclosure relates generally to a system and method for healthcare claims processing and in particular to a dynamic topological system and method for efficient claims processing.


BACKGROUND

A healthcare marketplace system may provide a transparent health services marketplace with clear descriptions and posted prices. Many health care providers and payers use legacy systems to communicate information to the healthcare marketplace system for a variety of transactions: eligibility checks, claims processing and benefits enrollment. To integrate the healthcare marketplace system capabilities with existing systems in the health care space, it's important that it be able to process massive streams of transactional data related to health care services. The ability to process these transaction streams enables: real-time eligibility checks for quote requests, submitting a claim for a service after paying cash so that the service cost can contribute toward a deductible, and enrolling a consumer in new health benefits so that they might save money on expensive services. Integrating all of these transaction capabilities with the health service marketplace provides consumers with easy access to information to help them make informed decisions concerning their health care spending. It also provides health care providers and payers with more efficiencies so that administrative costs for processing health care transactions approach zero. Without the dynamic transactional data streaming capabilities, consumers would only be able to use the healthcare marketplace system for cash based transactions and would have to consult other systems for insurance based pricing. The dynamic transactional data streaming may provide the best possible user experience for health care consumers and providers participating in the health care services marketplace.


Since many healthcare providers and payers use legacy systems to communicate information for a variety of transactions (eligibility checks, claims processing and benefits enrollment), according to the American Medical Association (“AMA”), administrative costs associated with the processing of health care insurance claims is upwards of $210 billion per year in the United States. The AMA also estimates that as many as 1 in 5 claims is processed inaccurately leading to significant amounts of money lost due to waste, fraud, and abuse. Thus being able to accurately predict whether a claim will be denied before it is submitted to the payer as well as predicting if the claim was accurately paid after adjudication has the potential greatly improve provider's revenue cycle management.


There is a difference between a “denied” and a “rejected” claim, although the terms are commonly interchanged. A denied claim refers to a claim that has been processed and the insurer has found it to be not payable. Denied claims can usually be corrected and/or appealed for reconsideration. A rejected claim refers to a claim that has not been processed by the insurer due to a fatal error in the information provided. Common causes for a claim to be rejected include inaccurate personal information (i.e.: name and identification number do not match) or errors in information provided (i.e.: truncated procedure code, invalid diagnosis codes, etc.) A rejected claim has not been processed so it cannot be appealed. Instead, rejected claims need to be researched, corrected and resubmitted.


While there is a fair bit of literature on using data-driven methods to detect fraud and abuse in healthcare claims, there is relatively little on using these approaches for predicting denials and errors in healthcare claims. Unlike rejected claims which are erroneous due to very wrong information provided in the claim transaction, claims are denied for less obvious reasons.


Common Reasons for Denied Claims


There are many core reasons that a claim is denied. Below are a few pertinent examples of reasons for denied claims:

    • Delay between claim submission and encounter: Claims will be denied to too long a time period passes between the encounter and the claim submission because payers specify the allowable amount of time between the encounter and when the claim must be submitted.
    • Mismatched diagnostic and procedure codes: Claims will be denied if the diagnosis code (ICD) does not warrant the billed procedure code (CPT). Frequent itemset mining approaches such as FP-Growth and others can be used to learn positive and negative association rules between the ICD and CPT codes.
    • Claim Not at billing contracted rate: If a provider accepts a payer's insurance plan, then they are held to a contracted rate for each procedure they provide for the payer's insured patients. Detecting outliers in a payer/provider/procedure tuple could be detected rather easily using linear regression, however there is one catch and that is when the contract rate changes. Thus a system must be able to deal with the concept of drift of contracted rates.
    • Claim not covered: The procedures performed by the provider are not covered under the patient's insurance. Some circumstances could be caught with an eligibility check.
    • Patient no longer eligible: A lot of claims are submitted where the patient is, for various reasons, no longer an insured member of the payer's plan. This could be addressed by doing an eligibility request before a claims submission.
    • Preauthorization required: The procedure required pre-authorization that was not performed beforehand.
    • Provider is out of network: The provider is not a member of the payer's network.


The last 3 reasons (patient is not eligible, pre-auth required, and provider is out of network) are kind of moot at the point of claim submission as there is no ability to appeal since the damage is done. These should probably be moved up in the “process” at the time of the encounter to be more effective.


Previous systems have attempted to solve this problem via expert systems. These systems are cumbersome and require extensive domain knowledge.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 illustrates a health care marketplace system that may incorporate a dynamic topological component for claims processing;



FIG. 2 illustrates more details of the claims processing component;



FIG. 3 illustrates a method for claims processing that may be implemented using the claims processing component;



FIG. 4 illustrates a data flow of the method for claims processing;



FIGS. 5A-5F illustrates an example of claims data in an X12 837;



FIG. 6 illustrates an example of the data in EDI 277;



FIG. 7 illustrates an example of a simplicial complex;



FIG. 8 illustrates an example of a weighted graph;



FIG. 9 illustrates an example of a simplified feature matrix.





DETAILED DESCRIPTION OF ONE OR MORE EMBODIMENTS

The disclosure is particularly applicable to a claims processing system incorporated into a health system as described below and it is in this context that the disclosure will be described. It will be appreciated, however, that the system and method has greater utility since it may be implemented in other manners that those disclosed below and may be a standalone claims processing system as well as software as a service (SaaS) system that provides claims processing to a plurality of third party systems.


A healthcare marketplace system may include one or more payers of healthcare services and products, one or more healthcare service and product providers and one or more consumers of the healthcare services or products. To reduce costs for the payer, provider and consumer, a claims processing system described below provides a modeling process that will enable more efficient claims processing for medical services as described below in more detail.



FIG. 1 illustrates an example of a health network system 100 that may incorporate a claims processing component 113. In the example in FIG. 1, the system may be implemented as a client/server, software as a service (SaaS) or a cloud based architecture. However, the system and in particular the claims processing component 113 may also be implemented on a standalone computer system that performs the operations of the claims processing component 113 as described below or the claims processing component 113 may be integrated into other systems.


In one implementation, as shown in FIG. 1, the claims processing component 113 may be integrated into a health system 100 in which one or more computing devices 102 may couple to, access and interface with a backend component 108 over a communications path 106. The backend component 108 may include a health marketplace 110 and the claims processing component 113. The health marketplace 110 may permit a user of the computing device to perform various health care related activities including shopping for health care, participating a health care blogs and forums and the like. The claims processing component 113 may, based on available data about a particular health care claim of a particular consumer, determine a claim denial score for the particular health care claim of a particular consumer. The detailed operation of the claims processing component 113 is described below in more detail.


In the system, each computing device 102, such as computing devices 102a, 102b, . . . , 102n, may be a processor based device with memory, persistent storage, wired or wireless communication circuits and a display that allows each computing device to connect to and couple over the communication path 106 to a backend component 108. For example, each computing device may be a smartphone device, such as an Apple Computer product, Android OS based product, etc., a tablet computer, a personal computer, a terminal device, a laptop computer and the like. In one embodiment shown in FIG. 5A, each computing device 102 may store an application 104 in memory and then execute that application using the processor of the computing device to interface with the backend component 108. For example, the application may be a typical browser application or may be a mobile application. The communication path 106 may be a wired or wireless communication path that uses a secure protocol or an unsecure protocol. For example, the communication path 106 may be the Internet, Ethernet, a wireless data network, a cellular digital data network, a WiFi network and the like. The system 100 may also have a storage 114 that may be connected to the backend component 108 and may store various data, information and code that is part of the system. The storage 114 may also store a claims database that contains healthcare claims related information.


The backend component 108 may be implemented using one or more computing resources, such as a processor, memory, flash memory, a hard disk drive, a blade server, an application server, a database server, a server computer, cloud computing resources and the like. The health marketplace 110 and the claims processing component 113 may each be implemented in software or hardware. When the health marketplace 110 and the claims processing component 113 are each implemented in software, each component may be a plurality of lines of computer code that reside on the backend component 108 (or are downloaded to the backend component 108) and may be executed by a processor of the backend component 108 so that the processor is configured to perform the operations of the health marketplace 110 or the claims processing component 113. When the health marketplace 110 and the claims processing component 113 and each implemented in hardware, each component may be an application specific integrated circuit, a microcontroller, a programmable logic device and the like that perform the operations of the health marketplace 110 or the claims processing component 113.


The dynamic topological system and method for efficient claims processing that may be implemented as the claims processing component 113 as described above has various advantages over known systems:

    • 1. Easily Extensible: The system is able to allow a non-programmer person such as an Electronic Data Interchange (EDI) analysts or other subject matter experts (SME) to view, add, edit, and delete validation logic for the claims processing.
    • 2. Maintainable: While the validations in the ASC X12 specification do not change that often, the validation requirements for 3rd party trading partners do. The validation system is designed in such a way that doesn't make it a nightmare to update validation logic. In the past this has been addressed through complex maintenance of rule engines.
    • 3. Extendable: The system allows payer/provider/procedure specific validation logic to supercede general or global logic. Once again, the extensibility in previous embodiments has been through rule based engines where millions of rules needed to be maintained.


Classification is a well studied problem in machine learning and statistics in which the goal is to assign a new observation to a category based on a set of training data whose category assignment is known. Most classification algorithms operate by trying to optimize a function for determining classes over all of the dataset, and thus make global assumptions about the data. The claims processing system has a process for segmenting the claims datasets into local neighborhoods and then training and choosing the best classifier for each neighborhood. The methodology of making these global optimizations are germane to the process.



FIG. 2 illustrates more details of the claims processing component 113 that is associated with a claims database 200. The claims database 200 may have a plurality of pieces of data about a plurality of healthcare claims (an example of which is shown in FIGS. 5A-5F) that may be used by the system. The claims processing component 113 may have feature matrix converter component 202, a mapper component 204 and a classification component 206 that operate on the plurality of pieces of data about a plurality of healthcare claims to perform the claim processing of the system as will be described below with reference to FIGS. 3-4. Each component of the claims processing component 113 may be implemented in software or hardware. When the components are each implemented in software, each component may be a plurality of lines of computer code and may be executed by a processor of the backend component 108 (that hosts the claims processing component 113) so that the processor is configured to perform the operations of the components. When the components are each implemented in hardware, each component may be an application specific integrated circuit, a microcontroller, a programmable logic device and the like that perform the operations of the claims processing component 113 as described below in more detail.



FIG. 3 illustrates a method 300 for claims processing that may be implemented using the claims processing component and FIG. 4 illustrates a data flow of the method for claims processing. These methods may be implemented by the components in FIG. 1-2 or by other elements that are configured to perform the processes of the method.


Prior to describing the details of the method, an electronic healthcare claim data overview is provided. Health care insurance claims are transmitted electronically using the ANSI ASC X12 standard. Professional and institutional claims are submitted using the format detailed in the “ANSI ASC X12 837 Health Care Claims” specification (hereinafter referred to as “837”). The status of a health care insurance claim is described in the “ANSI ASC X12 277 Health Care Information Status Notification” transaction (hereinafter referred to as “277”). After verifying the consumer's health insurance, the provider examines the patient and makes a diagnosis. Since the provider did a general eligibility inquiry (X12 270) to determine the consumer's current deductible information, the provider is now equipped to recommend a set of treatment options that the consumer can pay for with cash or insurance. With a diagnosis and treatment(s) identified, the provider can initiate a more specific eligibility inquiry (X12 270) with codes (typically CPT or ICD-10) for the treatments to determine if the recommended treatments are covered by the consumer's insurance plan. This allows the consumer to make informed decisions regarding the treatments and their costs while they're still meeting with their health care provider. Once a treatment is selected, the health care marketplace system will record the treatment purchase transaction and submit the necessary X12 837 claims to the insurance company if the consumer elects to (partially) pay with insurance. If there is a portion of the treatment cost remaining after processing the X12 835 health care claim payment response, the health care marketplace system can then bill the consumer via their credit card on file and deposit the funds in the provider's bank account along with the insurance payment that was delivered in the X12 835 claim payment transaction set.


An example of the data in the X12 837 health care claims record is in FIGS. 5A-5F. In the record, a patient is a different person than the Subscriber and the payer is commercial health insurance company.


An example of the data in the X12 277 record is shown in FIG. 6. The EDI 277 Health Care Claim Status Response transaction set is used by healthcare payers (insurance companies, Medicare, etc.) to report on the status of claims (837 transactions) previously submitted by providers. The 277 transaction, which has been specified by HIPAA for the submission of claim status information, can be used in one of the following three ways:

    • A 277 transaction may be sent in response to a previously received EDI 276 Claim Status Inquiry (described in more detail at https://www.ledisource.com/transaction-sets?tset=276 which is incorporated by reference)
    • A payer may use a 277 to request additional information about a submitted claim (without a 276)
    • A payer may provide claim status information to a provider using the 277, without receiving a 276


Information provided in a 277 transaction generally indicates where the claim is in process, either as Pending or Finalized. If finalized, the transaction indicates the disposition of the claim—rejected, denied, approved for payment or paid. If the claim was approved or paid, payment information may also be provided in the 277, such as method, date, amount, etc. If the claim has been denied or rejected, the transaction may include an explanation, such as if the patient is not eligible.


The 276 transaction can be received from the trading partner at the line level. The 276 request is a solicited request that is made by the Trading Partner. The 277-response transaction will only be returned when a solicited 276 is received. The following STC data elements will be returned on the 277 transaction depending if the claim was paid or rejected:


STC 05—Claim Payment Amount: This element will be used to reflect the claim paid amount. When a claim is not paid or the adjudication period is not complete this amount will be 0 (zero).


STC 06—Adjudication or Payment Date: This element will be used to reflect the date the claim was paid or rejected. If the claim in being inquired about has not completed the adjudication cycle, this field will not be populated.


STC 07—Payment Method Code: This element will be used to reflect the type of method that will be used to pay the adjudicated claim. This element will not be used for claims that are in process, have not completed the adjudication process, or have rejected.


STC 08—Check Issue or EFT Date: This element will be used to reflect the date that the check was produced or the date the EFT funds were released. This element will only be used for claims that have completed and adjudication and payment cycles.


STC 09—Check Number: This element is required by HIPAA for all paid and finalized claims, when the entire claim has been paid using a single check or EFT. This element will not be used for claims that are in process, have not completed the adjudication process, or have rejected.


Returning to FIGS. 3 and 4, during the method, claims data (that may be in a claims database for example) may be converted into a feature matrix (302) and then stored, such as in a Titan database as shown in FIG. 4. The 837 and 277 messages (examples of which were provided above) may be received in plain text and must be transformed into a feature matrix, F. The columns of the matrix represent numeric features of the claim and each row is a single claim instance, thus the dimensions of the F will be n×m where n is the number of claims in the database and m is the number of features. The column space of this feature matrix has the potential to be very large due to the need to categorize CPT codes, provider NPIs, and trading partner IDs, i.e. there would be a column for each of the approximately 9800 CPT codes, 4.5 million providers, and 1000 trading partners. Other features of the claim would be present as well, including but not limited to, the time between patient encounter and claims submission, total number of procedures itemized in the claim, total amount billed, etc. A very simple example of a feature matrix is shown in more detail in FIG. 9. As shown in FIG. 9, the feature matrix may have one or more columns that contain information about each claim, such as a patient age, one or more billed procedure codes (CPTs), provider information, total amount of the claim and a procedure count. Each row of the feature matrix contains the information for a particular claim made by a particular patient.


Generate a Compressed Representation


Since there are a multitude of singular and interrelated reasons a claim can be denied, it can be difficult to train a single classifier that can accurately account for all the cases. The mapper component may compress the claims database into a combinatorial structure. This process allows us to identify claims that are similar in some sense and then build specific classifiers for these similar groups, thus making a more accurate and robust classification system that provides more intuitive reasons for the classification assignments.


Thus, once the feature matrix is generated, the method may use the feature matrix and generate a compressed representation of the claims database (304) using the mapper component. In one embodiment, the compressed representation also may be generated based on a user supplied filter function. In one embodiment, the compressed representation may be a 1-dimensional simplicial complex (304), an example of the simplicial complex is shown in FIG. 7.


The process 304 takes a feature matrix F and produce a simplicial complex which is a compressed representation of F, yet still possesses certain topological properties of the original space.


Definition:


A simplex is a generalization of a triangle or tetrahedron to arbitrary dimensions. More formally a k-simplex is the convex hull of k+1 vertices. Thus a 0-simplex is a point, a 1-simplex is a line segment, a 2-simplex is a triangle, a 3-simplex is a tetrahedron, etc.


Definition:


A simplicial complex is topological space created by “gluing” simplices such that the gluing is done along faces of the simplices. More formally, a simplicial complex K is a set of simplices such that:

    • 1. Any face of a simplex in K is in K
    • 2. The intersection of any two simplices σ1, σ2∈K is both of a face of σ1 and σ2


The process to generate the simplicial complex output may include:

    • 1. Use a specified filter function, ƒ, to map the claims feature matrix F to a parameter space P.
    • 2. Choose a scheme that defines an open cover U on the parameter space
    • 3. Choose a clustering algorithm and for each set in the open cover, cluster in the preimage of ƒ for that set; and
    • 4. Represent each cluster as a node in the simplicial complex output and join any 2 nodes by an edge if a claim is a member of both clusters.


Choose a Filter Function


Filter functions are functions such that ƒ: F→P where F is the claims feature matrix and P, the parameter space, is a topological space, such as custom character, custom character2, or S1. Often these filter functions are functions that demonstrate some geometric or connectivity properties of the data set F, such as a centrality measure from geometry or a kernel density estimator from statistics. Filter functions can also be defined by domain experts to reflect important properties of the data, i.e. the amount of time that has passed between a patient encounter and when the claim was submitted.


Filter Function Examples


Below are explanations of popular filter functions in the literature that work on any data set that has a notion of distance or similarity between points.


Gaussian Kernel Density Estimator


Kernel density estimation is a well developed area of statistics and is a nonparametric method to estimate the probability density function of a given random variable.


Gaussian Kernel Density Estimator Algorithm
















Let ∈ = the smoothness parameter



Let n = the number of rows of F



Let m = the number of columns of F



For each point x ∈ F:



Let densityx = 0



 For each point y ∈ F such that y ≠ x:



 d = dist(x, y)







estimatepoint=d2e-2e2n(2πe)m







 densityx = densityx + estimatepoint









Eccentricity


Eccentricity measures are functions that identify which points in the data set are far away from the “center” where an intrinsic notion of centrality is derived from the pairwise distances of the points in the space.


Eccentricity Algorithm
















Let exponent = be the eccentricity exponent



Let n = the number of rows of F



For each point x ∈ F:



 if exponent == ∞:



  dmax = 0



  For each point y ∈ F:



   d = dist(x, y)



   if d > dmax:



    dmax = d



  eccentricityx = dmax



 else:



  eccentricityx = 0



  For each point y ∈ F:



   d = dist(x, y)exponent



   eccentricityx = eccentricityx + d






  
eccentricityx=1n(eccentricityx)1/exponent










Define a Cover Over the Image of ƒ


Once a filter function is chosen, the method may choose a scheme for defining a cover over the image space of the filter function ƒ.


Definition:


An open cover of a topological space X is a collection of open sets whose union contains X as a subset. More formally, if C={Uα:α∈A} is a family of open sets Uα and A is a finite indexing set, then C is a cover of X if Xα∈A Uα


There are 2 parameters in defining the cover; the number of open sets (n) and the percent overlap (p) between them.


Example Cover Schemes


Uniform Cover


Here the n open sets in the cover of the parameter space are sized so that each open set covers the same amount of the parameter space, i.e.

|Uα|=|Ug|∀U∈C


Uniform Cover Example


Input


Let filter_values=[1,2,3,4,5,6]


Let n=3


Let p=0.5


Output

    • [{‘open_set_idx’: 0, ‘max’: 3.5, ‘min’: 1.0},
    • {‘open_set_idx’: 1, ‘max’: 4.75, ‘min’: 2.25},
    • {‘open_set_idx’: 2, ‘max’: 6.0, ‘min’: 3.5}]


Balanced Cover


Here the n open sets in the cover of the parameter space are sized so that each open set covers the same amount of the original data space, i.e.

−1(Uα)=|ƒ−1(Uβ)|∀U∈C


Balanced Cover Example


Input


Let filter_values=[1,1,2,2,5,6]


Let n=3


Let p=0.5


Output

    • [{‘open_set_idx’: 0, ‘max’: 1.45150502, ‘min’: 1},
    • {‘open_set_idx’: 1, ‘max’: 3.67725753, ‘min’: 1.44091416},
    • {‘open_set_idx’: 2, ‘max’: 6, ‘min’: 3.64548495}]


Clustering in the Preimage of ƒ


Now, the method has generated an open cover of the parameter space that is a collection of overlapping open sets denoted C. Next, the method may use an arbitrary clustering algorithm, clust, as a statistical replacement for determining the number of connected components in the inverse image of ƒ for each open set in the cover. More precisely,

Clusters=clust(ƒ−1(Uα))∀Uα∈C.


Examples of Possible Clustering Algorithms

    • Hierarchical Clustering with one of the following linkage functions:
      • Single
      • Complete
      • Average
      • Weighted
      • Centroid
      • Median
      • Ward
    • K-means Clustering
    • K-medians Clustering
    • DBSCAN
    • Self-organizing Map


Define Mapper Output


Finally, the method defines an abstract simplicial complex using the clusters created above. For each cluster c in Clusters we add a 0-dimensional simplex, or vertex, to the complex. Next ∀ci, cj∈Clusters such that i≠j we add a 1-dimensional simplex, or edge, between ci and cj if ci∩cj is non-empty.


Example Simplicial Complex Output (an Example of which is Shown in FIG. 7)

    • {‘0-dimensional simplicies’: [(1), (2), (3), (4), (5), (6)],
    • ‘1-dimensional simplicies’: [(1,2), (1,3), (2,3), (3,4), (4,5), (4,6), (5,6)],
    • ‘2-dimensional simplicies’: [(1,2,3)]}


Group Nodes in the Simplicial Complex Output into Neighborhoods


Returning to the method in FIGS. 3-4, the method may then partition the simplicial complex into neighborhoods of nodes (306). In one embodiment, the method may represent the 1-dimensional simplicial complex as a weighted, undirected graph G=(V,E) where each vertex vi∈V represents a group of claims ci and each edge ei,j∈E joins two vertices vi and vj if and only if c1∩cj≠∅. Each vertex vi∈V has a weight δi and each edge ei,j∈E has a weight ωi,j. An example of a weighted graph described above in shown in FIG. 8.


The method applies techniques in community detection to detect a natural division of vertices into non-overlapping groups or communities where these communities may be of any size. This the method seeks to determine a partition K of the vertices V such that

K=∩i ki=V.


Techniques in community detection are sensitive to both the neighborhood structure and weights of the graph's adjacency matrix. As such, the method seeks to combine domain knowledge with graph invariants to calculate an optimal division. For example, the method may use a weighting scheme in the graph from the distribution of documents in the clusters of the preimage of ƒ, as described in the previous section. That is to say, each vertex's weight would be δi=|ci|, which is the number of claims belonging to the cluster in the preimage of ƒ; further, each edge's weight could be ωi,j=ci∩cj, which is the count of documents in the intersection of each cluster in the preimage of ƒ.


When paired with graph invariants such as, but not limited to, vertex degree, domination sets, clique assignment, connectedness, topological index, strength, capacity, independence . . . etc, the combination of domain knowledge with techniques in graph analysis yields a myriad of variations to the weighted adjacency matrix of the simplicial complex. The method seeks to utilize the combination of domain knowledge from both graph theory and this application space to determine the optimal division of a weighted or unweighted graph into communities for the overall analytics pipeline.


Graph theoretic techniques in discovering groups of vertices within a graph have a long standing history and can be generally divided into two groups. One set of methodologies, commonly referred to as graph partitions, seek to divide the vertices of a network for applications in parallel computing. A second set of approaches, known as community detection algorithms or hierarchical clustering, utilize adjacency structures to identify community structure within a graph. The methodology described herein best fits with the second class of algorithms and seeks to label natural divisions within the simplicial complex graph G in an unsupervised manner.


Algorithms in community detection attempt to divide the graph of interest into natural subgroups; typically the number and size of the groups are determined by the network itself. Further, first approaches in community detection assume that it not such division may exist. The addition of each community's modularity score introduces a level of optimization to the problem; the application seeks to find the natural subdivision that optimizes the graph's modularity score. As with typical approaches in community detection, this methodology in graph division, which optimizes the graph's modularity score, is not bounded by the number or size of each sub graph.


The method may approach the optimization problem in stages with heavy emphasis on the significance of the distribution of vertex and edge weight. That is to say, community detection in a graph identifies sub communities by selecting a minimum cut in the graph that establishes two separate, but adjacent, sub communities. The minimum cut of a graph is an edge or set of edges which, when removed, separates the graph into two disjoint components in such a way that minimizes the quantifiable difference between the components of the resulting division using an invariant of interest.


In the method, the weighted variation of a simplicial complex can represent the distribution of the document set population throughout the vertices and edges in the graph. When applying methodologies for sub community detection in a weighted graph, the relationship of an edge's weight carries two elements of significance for classifying the edge as a separation or shared adjacency between two sub-communities. First, the edge weight's position in the distribution of all edge weights in the graph yields one measure of connectivity significance as it relates to all adjacencies across the network. Secondly, in the method, the edge and vertex weights can be directly related to the population sizes for each respective community. As such, the strength associated with each adjacency is also locally related to the total weight of each vertex on the edge.


In the most basic application, the identification of a minimum cut in a graph identifies the edge, or set smallest set of edges, which would split the graph into two disjoint components upon their removal. In a weighted graph, the identification of a minimum cut identifies the smallest valued edge, or smallest accumulated value within a set of edges, which would split the graph into two disjoint components upon their removal. When optimizing over the number of edges and resulting components, trivial solutions identify the partitioning of leaves as optimal solutions or suggest no division at all. As a result, community detection algorithms seek to optimize other graph invariants which preserve community structure after the division.


Thus, the method applies methodologies in community detection which optimize the modularity score of the unweighted or weighted simplicial complex. One such methodology divides a graph according to its modularity score. A modularity score is a quantification of true community structure within the subgraph, as relates to all potential adjacencies across the graph. More formally, a graph's modularity score is the number of edges within a group minus the expected number of edges in an isomorphic graph with random edge assignment. (derived formulation below) The modularity score was designed to measure the strength of division of a network into separate clusters or communities. A modularity score for a graph can range; a graph with a high modularity has dense connectivity between identified sub-graphs but sparse connections between nodes in different sub-graphs. The literature on community detection algorithms suggest that optimizing the maximum modularity score for a graph division is the way to both divide a network into subnetworks while preserving the inherent community structure. existing work applies simulated annealing, greedy algorithms, and extremal optimization to identify the best network division via measuring the graph's modularity score.


Optimal Division of a Network into Two Communities


The method may represent the 1-dimensional simplicial complex as a weighted and undirected graph G=(V,E) where |V|=n and |E|=m. We denote Aij to be the weighted or binary adjacency matrix of G. The method seeks to discover the natural division of the graph G into non-overlapping communities that can be of any size and then can apply the methodology of optimal modularity to divide and discover such a partition. In addition, the use of other techniques in graph division such as, but not limited to, clique analysis, dominating sets, independent sets, connectivity, small-world property, heavy-tailed degree distributions, clustering, statistical inference, partitionings, . . . etc, may be used.


When applying the modularity score, the method initializes the problem by dividing the graph G into two groups and assigning a parameter si to every vertex vi∈V where si=1 if vi is in group 1 and si=−1 if vi is in group 2. Generally speaking, the modularity score of this graph partition is understood to be the density of the edges within each community minus the expected number of edges between the groups.


The expected number of edges between any two vertices, denoted herein with Eij, preserves the degree distribution of the graph while considering all possible graphs with the same distribution. For any two vertices vi and vj we calculate Eij as follows:







E
ij

=



δ


(

v
i

)


·

δ


(

v
j

)




2





m






where δ(vi) denotes the degree of vertex vi and |E|=m=½·Σv∈V δ(vi). Thus, the modularity is Aij−Eij for all pairs of vertices in the same group, and zero otherwise. Following the work in Neumann, we represent the modularity matrix as follows:






Q
=


1

4





m




s
T


Bs





where s is the column vector of graph partition assignments and the matrix B=Aij−Eij. By writing s as a linear combination of the normalized eigenvectors ui of B where

s=Σi=1n αiui where αi=uiT·s, then we have:






Q
=



1

4





m




s
T


Bs

=



1

4





m







i
=
1

n




α
i



u
i
T


B





i
=
1

n




α
i



u
i






=


1

4

m







i
=
1

n





(


u
i
T

·
s

)

s

·

β
i











where βi is the eigenvalue of B corresponding to eigenvector ui. With the assumption that the eigenvalues are labeled in decreasing order β1≥β2≥ . . . ≥βn, the method may maximize the modularity by choosing an appropriate division of the network by choice of the index vector s.


Optimal Division of a Network into n Communities


As detailed in Newman, Mark E J. “Modularity and community structure in networks.” Proceedings of the National Academy of Sciences 103.23 (2006): 8577-8582, this procedure works for applications when the sizes of the communities are not specified. In this process, there is a trivial solution vector s=<1, 1, . . . 1>, but the corresponding eigenvalue is zero. Further, it is also important to note that eigenvalues of the modularity matrix may all be negative. In this case, this method implies that no further division of the network will improve the modularity score and therefore the solution is that no further division exists. This then gives the algorithm for dividing the network: the method computes the leading eigenvector of the weighted adjacency matrix and divides the vertices into two groups according to the signs of the elements in this vector. The method stops when the leading eigenvalue is nonpositive. The weighted adjacency matrix can be constructed as a modularity matrix, or some other combination of graph invariants with application knowledge.


The above process describes the procedure for discovering the optimal partition of a graph into two sets and the method may iteratively apply this technique in a greedy manner to discover the natural division of the graph G into non-overlapping communities that can be of any size. As such, the process for optimizing the resulting number and size of communities will be as follows:
















optimal_split(G):



 initialize si with a random partition



 calculate matrices:






  
Eij=δ(vi)·δ(vj)2m







  B = Aij − Eij



 calculate eigenvectors and eigenvalues β1 of B



 sort eigenvalues such that β1 ≥ β2 ≥ . . . ≥ βn



 if β1 ≤ 0:



  si = 1 ∀ i



 else:



 for element μi in normalized eigenvector u1 of β1:



  if μi ≤ 0:



   si = 1



   else:



    si = −1






  
Q=14msTBs







  if Q > 0:



   optimal_split(v ∈ V(G) where si = 1)



  optimal_split(v ∈ V(G) where si = −1)









The above pseudo code for optimal_split(G) describes the process of network division according to principal eigenvalue calculation and binary neighborhood assignment from the associated eigenvector. Other techniques in graph divisions such as, but not limited to, clique analysis, dominating sets, independent sets, connectivity, small-world property, heavy-tailed degree distributions, clustering, statistical inference, partitionings, . . . etc, may be used and yield a desired graph partition for this analytics architecture.


Train Group of Classifiers on Each Node Neighborhood


Returning to FIGS. 3-4, the method may, for each node neighborhood, train a set of classifiers on all the claims vectors in the feature matrix associated to that neighborhood (308) and then select a best classifier (310) to determine the status (denial, overpayment or underpayment) of a particular claim. In the processes described above, the method has compressed the original claims database into an abstract graph where each node in the graph represents a group of claims in the original database and there is an edge between two nodes if the claim groups overlap in anyway and the method used graph invariants and techniques in node partitioning to group the nodes into neighborhoods. The method may use a “bucket of models” approach to train a classifier for each node neighborhood. We define bucket={C0, C1, . . . , Cn} where each Ci is a classifier and neighborhoods={N0, N1, . . . , Nm} is the collection of node neighborhoods of the simplicial complex.


For example let Ni be an arbitrary node neighborhood and let bucket={SVM, RandomForest, LogisticRegression}. The method randomly splits the data points in Ni into a training set and cross validation set, where 80% of the data points are used for training and the remaining 20% are held out for cross validation. For each classification algorithm in the bucket (SVM, RandomForest, LogisticRegression in this example), the method trains the algorithm on the training set and then uses the cross validation data set to calculate the root mean squared error of the classifier. The method then chooses the classifier for Ni that has the lowest root mean squared error.


In one embodiment, a method for selecting the best classifier for each neighborhood may be:


For each Ni∈neighborhoods:


Let data=all claim vectors associated with all nodes in Ni

    • For each Ci∈bucket:
      • Do c times: (Where c is some constant)
        • Randomly divide data into two datasets: A, and B.
        • Train Ci with the A
        • Test Ci with B
    • Select the classifier or combination thereof that obtains the highest average score.


For example, using the claim example in FIG. 5A-5F, the claims database was used to produce the mapper output simplicial complex as described above and then this simplical complex was partitioned into node neighborhoods using the process described above. The method then coverts the claim into a vector using the same process that converted the claim database into the feature matrix and employ the filter function used in the mapper process to determine which node neighborhood the claim vector belongs to in which that neighborhood may be designated Neighborhoodi. The method then looks up the best trained classifier for Neighborhoodi, which lets assume is RandomForesti in this example. Since RandomForesti is a trained classifier for Neighborhoodi, we can use it to predict the class of the claim vector. The possible classes the classifier could predict would be “Denied” or “Accepted”.


The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the disclosure to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the disclosure and its practical applications, to thereby enable others skilled in the art to best utilize the disclosure and various embodiments with various modifications as are suited to the particular use contemplated.


The system and method disclosed herein may be implemented via one or more components, systems, servers, appliances, other subcomponents, or distributed between such elements. When implemented as a system, such systems may include an/or involve, inter alia, components such as software modules, general-purpose CPU, RAM, etc. found in general-purpose computers. In implementations where the innovations reside on a server, such a server may include or involve components such as CPU, RAM, etc., such as those found in general-purpose computers.


Additionally, the system and method herein may be achieved via implementations with disparate or entirely different software, hardware and/or firmware components, beyond that set forth above. With regard to such other components (e.g., software, processing components, etc.) and/or computer-readable media associated with or embodying the present inventions, for example, aspects of the innovations herein may be implemented consistent with numerous general purpose or special purpose computing systems or configurations. Various exemplary computing systems, environments, and/or configurations that may be suitable for use with the innovations herein may include, but are not limited to: software or other components within or embodied on personal computers, servers or server computing devices such as routing/connectivity components, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, consumer electronic devices, network PCs, other existing computer platforms, distributed computing environments that include one or more of the above systems or devices, etc.


In some instances, aspects of the system and method may be achieved via or performed by logic and/or logic instructions including program modules, executed in association with such components or circuitry, for example. In general, program modules may include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular instructions herein. The inventions may also be practiced in the context of distributed software, computer, or circuit settings where circuitry is connected via communication buses, circuitry or links. In distributed settings, control/instructions may occur from both local and remote computer storage media including memory storage devices.


The software, circuitry and components herein may also include and/or utilize one or more type of computer readable media. Computer readable media can be any available media that is resident on, associable with, or can be accessed by such circuits and/or computing components. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and can accessed by computing component. Communication media may comprise computer readable instructions, data structures, program modules and/or other components. Further, communication media may include wired media such as a wired network or direct-wired connection, however no media of any such type herein includes transitory media. Combinations of the any of the above are also included within the scope of computer readable media.


In the present description, the terms component, module, device, etc. may refer to any type of logical or functional software elements, circuits, blocks and/or processes that may be implemented in a variety of ways. For example, the functions of various circuits and/or blocks can be combined with one another into any other number of modules. Each module may even be implemented as a software program stored on a tangible memory (e.g., random access memory, read only memory, CD-ROM memory, hard disk drive, etc.) to be read by a central processing unit to implement the functions of the innovations herein. Or, the modules can comprise programming instructions transmitted to a general purpose computer or to processing/graphics hardware via a transmission carrier wave. Also, the modules can be implemented as hardware logic circuitry implementing the functions encompassed by the innovations herein. Finally, the modules can be implemented using special purpose instructions (SIMD instructions), field programmable logic arrays or any mix thereof which provides the desired level performance and cost.


As disclosed herein, features consistent with the disclosure may be implemented via computer-hardware, software and/or firmware. For example, the systems and methods disclosed herein may be embodied in various forms including, for example, a data processor, such as a computer that also includes a database, digital electronic circuitry, firmware, software, or in combinations of them. Further, while some of the disclosed implementations describe specific hardware components, systems and methods consistent with the innovations herein may be implemented with any combination of hardware, software and/or firmware. Moreover, the above-noted features and other aspects and principles of the innovations herein may be implemented in various environments. Such environments and related applications may be specially constructed for performing the various routines, processes and/or operations according to the invention or they may include a general-purpose computer or computing platform selectively activated or reconfigured by code to provide the necessary functionality. The processes disclosed herein are not inherently related to any particular computer, network, architecture, environment, or other apparatus, and may be implemented by a suitable combination of hardware, software, and/or firmware. For example, various general-purpose machines may be used with programs written in accordance with teachings of the invention, or it may be more convenient to construct a specialized apparatus or system to perform the required methods and techniques.


Aspects of the method and system described herein, such as the logic, may also be implemented as functionality programmed into any of a variety of circuitry, including programmable logic devices (“PLDs”), such as field programmable gate arrays (“FPGAs”), programmable array logic (“PAL”) devices, electrically programmable logic and memory devices and standard cell-based devices, as well as application specific integrated circuits. Some other possibilities for implementing aspects include: memory devices, microcontrollers with memory (such as EEPROM), embedded microprocessors, firmware, software, etc. Furthermore, aspects may be embodied in microprocessors having software-based circuit emulation, discrete logic (sequential and combinatorial), custom devices, fuzzy (neural) logic, quantum devices, and hybrids of any of the above device types. The underlying device technologies may be provided in a variety of component types, e.g., metal-oxide semiconductor field-effect transistor (“MOSFET”) technologies like complementary metal-oxide semiconductor (“CMOS”), bipolar technologies like emitter-coupled logic (“ECL”), polymer technologies (e.g., silicon-conjugated polymer and metal-conjugated polymer-metal structures), mixed analog and digital, and so on.


It should also be noted that the various logic and/or functions disclosed herein may be enabled using any number of combinations of hardware, firmware, and/or as data and/or instructions embodied in various machine-readable or computer-readable media, in terms of their behavioral, register transfer, logic component, and/or other characteristics. Computer-readable media in which such formatted data and/or instructions may be embodied include, but are not limited to, non-volatile storage media in various forms (e.g., optical, magnetic or semiconductor storage media) though again does not include transitory media. Unless the context clearly requires otherwise, throughout the description, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is to say, in a sense of “including, but not limited to.” Words using the singular or plural number also include the plural or singular number respectively. Additionally, the words “herein,” “hereunder,” “above,” “below,” and words of similar import refer to this application as a whole and not to any particular portions of this application. When the word “or” is used in reference to a list of two or more items, that word covers all of the following interpretations of the word: any of the items in the list, all of the items in the list and any combination of the items in the list.


Although certain presently preferred implementations of the invention have been specifically described herein, it will be apparent to those skilled in the art to which the invention pertains that variations and modifications of the various implementations shown and described herein may be made without departing from the spirit and scope of the invention. Accordingly, it is intended that the invention be limited only to the extent required by the applicable rules of law.


While the foregoing has been with reference to a particular embodiment of the disclosure, it will be appreciated by those skilled in the art that changes in this embodiment may be made without departing from the principles and spirit of the disclosure, the scope of which is defined by the appended claims.

Claims
  • 1. A healthcare claims processing apparatus, comprising: a computer system having a processor and a memory;a database associated with the computer system that stores one or more claims records wherein each claim record contains data about a claim and the database stores data about a plurality of claims;a claims processing component that generates a compressed representation of the plurality of claims including a particular claim in the one or more claims records, the compressed representation having a plurality of nodes with which the particular claim is associated, partitions the compressed representation into one or more neighborhoods of nodes using a weighted undirected graph having a plurality of vertexes and a plurality of edges that connect two of the plurality of vertexes and each vertex represents a neighborhood of nodes and has a weight and each edge joins two vertexes only if at least one of the claims in the two vertexes exists in each vertex, identifies the neighborhood of nodes that includes the particular claim and determines, using a classifier for the identified neighborhood of nodes for the particular claim, a status of the particular claim, wherein the status is one of denied, overpaid or underpaid.
  • 2. The apparatus of claim 1, wherein the compressed representation is a simplicial complex.
  • 3. The apparatus of claim 2, wherein the claims processing component converts the one or more claims records into a feature matrix before generating the compressed representation of the one or more claims records.
  • 4. The apparatus of claim 1, wherein the claims processing component trains one or more classifiers for each neighborhood of nodes.
  • 5. The apparatus of claim 4, wherein the claims processing component selects a best classifier from the trained classifiers for a particular neighborhood of nodes wherein the particular claim is associated with the particular neighborhood of nodes.
  • 6. The apparatus of claim 1, wherein the claims processing component gathers the status of the claim and feeds back the status of the claim.
  • 7. A method for healthcare claims processing, comprising: obtaining one or more claims records wherein each claim record contains data about a claim;generating a compressed representation of a plurality of claims including a particular claim in the one or more claims records, the compressed representation having a plurality of nodes with which the particular claim is associated;partitioning the compressed representation into one or more neighborhoods of nodes using a weighted undirected graph having a plurality of vertexes and a plurality of edges that connect two of the plurality of vertexes and each vertex represents a neighborhood of nodes from the plurality of claims and each edge joins two vertexes only if at least one of the claims in the two vertexes exists in each vertex;identifying the neighborhood of nodes that includes the particular claim; anddetermining, using a classifier for the identified neighborhood of nodes for the particular claim, a status of the particular claim, wherein the status is one of denied, overpaid or underpaid.
  • 8. The method of claim 7, wherein the compressed representation is a simplicial complex.
  • 9. The method of claim 8 further comprising converting the one or more claims records into a feature matrix before generating the compressed representation of the one or more claims records.
  • 10. The method of claim 7, wherein determining using the classifier further comprises training one or more classifiers for each neighborhood of nodes.
  • 11. The method of claim 10, wherein determining using the classifier further comprises selecting a best classifier from the trained classifiers for a particular neighborhood of nodes wherein the particular claim is associated with the particular neighborhood of nodes.
  • 12. The method of claim 7 further comprising gathering the status of the claim and feeding back the status of the claim.
  • 13. A healthcare system, comprising: a computer system having a processor and a memory;a health marketplace system hosted by the computer system;a database associated with the computer system that stores one or more claims records wherein each claim record contains data about a claim and the database stores data about a plurality of claims;a claims processing component that generates a compressed representation of the plurality of claims including a particular claim in the one or more claims records, the compressed representation having a plurality of nodes with which the particular claim is associated, partitions the compressed representation into one or more neighborhoods of nodes using a weighted undirected graph having a plurality of vertexes and a plurality of edges that connect two of the plurality of vertexes and each vertex represents a neighborhood of nodes from the plurality of claims and each edge joins two vertexes only if at least one of the claims in the two vertexes exists in each vertex, identifies the neighborhood of nodes that includes the particular claim, and determines, using a classifier for the identified neighborhood of nodes for the particular claim, a status of the particular claim, wherein the status is one of denied, overpaid or underpaid.
  • 14. The system of claim 13, wherein the compressed representation is a simplicial complex.
  • 15. The system of claim 14, wherein the claims processing component converts the one or more claims records into a feature matrix before generating the compressed representation of the one or more claims records.
  • 16. The system of claim 13, wherein the claims processing component trains one or more classifiers for each neighborhood of nodes.
  • 17. The system of claim 16, wherein the claims processing component selects a best classifier from the trained classifiers for a particular neighborhood of nodes wherein the particular claim is associated with the particular neighborhood of nodes.
  • 18. The system of claim 13, wherein the claims processing component gathers the status of the claim and feeds back the status of the claim.
PRIORITY CLAIM

This application claims priority under 35 USC 120 and is a continuation of U.S. patent application Ser. No. 14/715,380, file May 18, 2015 and entitled “Dynamic Topological System and Method for Efficient Claims Processing” the entirety of which is incorporated herein by reference.

US Referenced Citations (130)
Number Name Date Kind
5872021 Matsumoto et al. Feb 1999 A
6546428 Baber et al. Apr 2003 B2
7386565 Singh et al. Jun 2008 B1
7917378 Fitzgerald et al. Mar 2011 B2
7917515 Lemoine Mar 2011 B1
7970802 Ishizaki Jun 2011 B2
7992153 Ban Aug 2011 B2
8073801 Von Halle et al. Dec 2011 B1
8095975 Boss et al. Jan 2012 B2
8103667 Azar et al. Jan 2012 B2
8103952 Hopp Jan 2012 B2
8203562 Alben et al. Jun 2012 B1
8229808 Heit Jul 2012 B1
8286191 Amini et al. Oct 2012 B2
8359298 Schacher et al. Jan 2013 B2
8364501 Rana et al. Jan 2013 B2
8417755 Zimmer Apr 2013 B1
8495108 Nagpal et al. Jul 2013 B2
8515777 Rajasenan Aug 2013 B1
8527522 Baron Sep 2013 B2
8817665 Thubert et al. Aug 2014 B2
8984464 Mihal et al. Mar 2015 B1
9165045 Mok et al. Oct 2015 B2
9208284 Douglass Dec 2015 B1
20020022973 Sun et al. Feb 2002 A1
20020038233 Shubov et al. Mar 2002 A1
20020165738 Dang Nov 2002 A1
20030055668 Saran et al. Mar 2003 A1
20030097359 Ruediger May 2003 A1
20030171953 Narayanan et al. Sep 2003 A1
20030217159 Schramm-Apple et al. Nov 2003 A1
20030233252 Haskell et al. Dec 2003 A1
20040143446 Lawrence Jul 2004 A1
20050010452 Lusen Jan 2005 A1
20050071189 Blake et al. Mar 2005 A1
20050102170 Lefever et al. May 2005 A1
20050137912 Rao Jun 2005 A1
20050152520 Logue Jul 2005 A1
20050182780 Forman et al. Aug 2005 A1
20050222912 Chambers Oct 2005 A1
20060036478 Aleynikov et al. Feb 2006 A1
20060074290 Chen et al. Apr 2006 A1
20060089862 Anandarao et al. Apr 2006 A1
20060129428 Wennberg Jun 2006 A1
20060136264 Eaton et al. Jun 2006 A1
20070113172 Behrens et al. May 2007 A1
20070118399 Avinash et al. May 2007 A1
20070156455 Tarino et al. Jul 2007 A1
20070174101 Li et al. Jul 2007 A1
20070180451 Ryan et al. Aug 2007 A1
20070214133 Liberty et al. Sep 2007 A1
20070233603 Schmidgall et al. Oct 2007 A1
20070260492 Feied et al. Nov 2007 A1
20070276858 Cushman et al. Nov 2007 A1
20070288262 Sakaue et al. Dec 2007 A1
20080013808 Russo et al. Jan 2008 A1
20080046292 Myers Feb 2008 A1
20080082980 Nessland et al. Apr 2008 A1
20080091592 Blackburn et al. Apr 2008 A1
20080126264 Tellefsen et al. May 2008 A1
20080133436 Di Profio Jun 2008 A1
20080288292 Bi et al. Nov 2008 A1
20080295094 Korupolu et al. Nov 2008 A1
20080319983 Meadows Dec 2008 A1
20090083664 Bay Mar 2009 A1
20090125796 Day et al. May 2009 A1
20090192864 Song et al. Jul 2009 A1
20090198520 Piovanetti-Perez Aug 2009 A1
20090300054 Fisher et al. Dec 2009 A1
20090307104 Weng Dec 2009 A1
20090313045 Boyce Dec 2009 A1
20100076950 Kenedy et al. Mar 2010 A1
20100082620 Jennings, III et al. Apr 2010 A1
20100088108 Machado Apr 2010 A1
20100088119 Tipirneni Apr 2010 A1
20100138243 Carroll Jun 2010 A1
20100217973 Kress et al. Aug 2010 A1
20100228721 Mok et al. Sep 2010 A1
20100295674 Hsieh et al. Nov 2010 A1
20100332273 Balasubramanian et al. Dec 2010 A1
20110015947 Erry et al. Jan 2011 A1
20110055252 Kapochunas et al. Mar 2011 A1
20110071857 Malov et al. Mar 2011 A1
20110137672 Adams et al. Jun 2011 A1
20110218827 Kennefick et al. Sep 2011 A1
20110270625 Pederson et al. Nov 2011 A1
20120035984 Srinivasa et al. Feb 2012 A1
20120078940 Kolluri et al. Mar 2012 A1
20120130736 Dunston et al. May 2012 A1
20120158429 Murawski et al. Jun 2012 A1
20120158750 Faulkner et al. Jun 2012 A1
20120173279 Nessa et al. Jul 2012 A1
20120245958 Lawrence et al. Sep 2012 A1
20120246727 Elovici et al. Sep 2012 A1
20120290320 Kurgan et al. Nov 2012 A1
20120290564 Mok et al. Nov 2012 A1
20130030827 Snyder et al. Jan 2013 A1
20130044749 Eisner et al. Feb 2013 A1
20130085769 Jost et al. Apr 2013 A1
20130138554 Nikankin et al. May 2013 A1
20130166552 Rozenwald et al. Jun 2013 A1
20130204940 Kinsel et al. Aug 2013 A1
20130304903 Mick et al. Nov 2013 A1
20140046931 Mok et al. Feb 2014 A1
20140056243 Pelletier et al. Feb 2014 A1
20140059084 Adams et al. Feb 2014 A1
20140088981 Momita Mar 2014 A1
20140136233 Atkinson et al. May 2014 A1
20140222482 Gautam et al. Aug 2014 A1
20140244300 Bess et al. Aug 2014 A1
20140278491 Weiss Sep 2014 A1
20140358578 Ptachcinski Dec 2014 A1
20140358845 Mundlapudi et al. Dec 2014 A1
20150095056 Ryan et al. Apr 2015 A1
20150112696 Kharraz Tavakol Apr 2015 A1
20150142464 Rusin et al. May 2015 A1
20150199482 Corbin et al. Jul 2015 A1
20150332283 Witchey Nov 2015 A1
20160028552 Spanos et al. Jan 2016 A1
20160055205 Jonathan et al. Feb 2016 A1
20160253679 Venkatraman et al. Sep 2016 A1
20160328641 Alsaud et al. Nov 2016 A1
20160342750 Alsaud et al. Nov 2016 A1
20170060856 Turtle Mar 2017 A1
20170091397 Shah et al. Mar 2017 A1
20170103164 Dunlevy et al. Apr 2017 A1
20170103165 Dunlevy et al. Apr 2017 A1
20170132621 Miller et al. May 2017 A1
20170351821 Tanner et al. Dec 2017 A1
20170372300 Dunlevy et al. Dec 2017 A1
Foreign Referenced Citations (2)
Number Date Country
2478440 Oct 2013 GB
WO 2012122065 Sep 2012 WO
Non-Patent Literature Citations (22)
Entry
“A simplicial complex, a hypergraph, structure in the altent semantic space of document clustering”; Lin et al.; Elsevier, 2005.
Newman, Modularity and community structure in networks, PNAS, vol. 103, No. 23, pp. 8581-8582 Jun. 6, 2006 (2 pgs.).
Titan Database Documentation ©2015 (disclosed at http://s3.thinkaurelius.com/docs/titan/1.0.0/ (printed Sep. 16, 2016) (214 pgs.).
Ahlswede et al., Network Information Flow, IEEE Transactions on Information Theory, vol. 46, No. 4; Jul. 2000 (13 pgs.).
Bhattacharya, Indrajit and Getoor, Lise, Entity Resolution in Graphs, Department of Computer Science, University of Maryland (2005) (21 pgs.).
Chen et al., Adaptive Graphical Approach to Entity Resolution, Jun. 18-23, 2007, Proceedings of the 7th ACM/IEEE-CS Joint Conference on Digital Libraries, pp. 204-213 (10 pgs.).
Christen, Data Matching, Concepts and Techniques for Record Linkage, Entity Resolution, and Duplicate Detection, © Springer-Verlag Berlin Heidelberg, 2012 (279 pgs.).
Cohen et al., A Comparison of String Metrics for Matching Names and Records, © 2003, American Association for Artificial Intelligence (www.aaai.org) (6 pgs.).
Coleman et al., Medical Innovation—a diffusion study; The Bobbs-Merrill Company, Inc., 1966 (248 pgs.).
Domingos et al., Mining High-Speed Data Streams, (2000) (10 pgs.).
Greenhalgh et al., Diffusion of Innovations in Health Service Organisations—a systematic literature review, Blackwell Publishing, 2005 (325 pgs.).
Jackson et al., The Evolution of Social and Economic Networks, Journal of Economic Theory 106, pp. 265-295, 2002 (31 pgs.).
Jackson, Matthew O., Social and Economic Networks, Princeton University Press, 2008 (509 pgs.).
Krempl et al., Open Challenges for Data Stream Mining Research, SIGKDD Explorations, vol. 16, Issue 1, Jun. 2014 (64 pgs.).
Rebuge, Business Process Analysis in Healthcare Environments, 2011, Ellsevier Ltd., pp. 99-116 (18 pgs.).
Wasserman et al., Social Network Analysis: Methods and Applications, Cambridge University Press; 1994 (434 pgs.).
White et al., Algorithms for Estimating Relative Importance in Networks, Proceedings of the Ninth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 2003 (10 pgs.).
(MATHJAX), Naive Bayes Categorisation (with some help from Elasticsearch), blog post dated Dec. 29, 2013 (https://blog.wtf.sg/2013/12/29/naive-bayes-categorisation-with-some-help-from-elasticsearch/). (8 pgs.).
Webpage: New Health Care Electronic Transactions Standards Versions 5010, D.0, and 3.0, Jan. 2010 ICN 903192; http://www.cms.gov/Regulations-and-Guidance/HIPAA-Adminstrative-Simplification/Versions5010and D0/downloads/w5010BasicsFctCht.pdf (4 pgs.).
Webpage: U.S. Dept. of Health and Human Services, Guidance Regarding Methods for De-identification of Protected Health Information in Accordance with the Health Insurance Portability and Accountability Act (HIPAA) Privacy Rule, http://www.hhs.gov/ocr/privacy/hipaa/understanding/coveredentities/De-identification/guidance.html printed Oct. 15, 2015 (14 pgs.).
Anonymous: “Oauth” Wikipedia—Retrieved from the Internet URL:https://en.wikipedia.org/wiki/Oauth (8 pgs.).
Version 5010 and D.O, Center for Medicare & Medicaid Services (2 pgs.).
Related Publications (1)
Number Date Country
20160342751 A1 Nov 2016 US
Continuations (1)
Number Date Country
Parent 14715380 May 2015 US
Child 14939973 US