Intelligent Workflow Analytics for Care Using Exposable Cloud-Based Registry
Patent Information
- Application Number
- JP2022570469
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-12-03
- Filing Date
- 2021-05-19
- Publication Date
- 2025-03-05
- Estimated Expiration
- 2041-05-19
Smart Images

Figure 0007640581000001 
Figure 0007640581000002 
Figure 0007640581000003
Abstract
Description
[Technical field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of and priority to European Patent Application No. 20175829.9, filed May 20, 2020, and European Patent Application No. 20211596.0, filed December 3, 2020, each of which is incorporated by reference in its entirety for all purposes.
[0002] Field The methods and systems disclosed herein generally relate to running machine learning and artificial intelligence models using subject records to enable intelligent treatment selection and other enhanced analyses. More specifically, the disclosure relates to a server configured to convert subject records characterizing various non-numerical features of a subject into a transformed representation (e.g., a numerical representation such as an N-dimensional matrix or vector) consumable by a machine learning or artificial intelligence model. The output of the machine learning or artificial intelligence model can be evaluated to enable intelligent treatment selection and other enhanced analyses, such as, for example, automatically detecting and defining subject populations, predicting treatment protocols likely to be positively responsive, and identifying similarities or dissimilarities between subject records along one or more dimensions. [Background technology]
[0003] background A subject record is a digital set of data elements that characterize a subject associated with an entity, such as a medical facility. The set of data elements included in a subject record can represent a complex combination of any number of attributes or characteristics of the subject. For example, a subject record can include a first data element, a second data element, and a third data element. The first data element can include a unique code (e.g., a diagnosis code) that represents a condition that the subject has developed. The second data element can include a longitudinal set of data (e.g., vitals) collected from the subject at various intervals over a period of time (e.g., years). The third data element can include a magnetic resonance image of the subject's brain. Thus, the values of the data elements across the set of data elements can be in different data formats and can be different data types.
[0004] Subject records are configured to characterize various attributes or characteristics of a subject, which becomes problematic when subject records are analyzed using algorithmic techniques. Gaining analytical insight into a single subject record or a comparison of multiple subject records is computationally problematic given the different data formats and data types present across subject records. Indeed, the different data formats and data types within each subject record limits the ability to process (e.g., input for processing) subject records using analytical techniques, making it problematic, for example, to algorithmically identify subject records similar to a given subject record. Furthermore, as pools of subject records reach big data scale and the complexity of individual subject records increases, simple techniques such as analyzing the values of data elements across multiple subject records in the time or frequency domain become computationally impractical. As a result, it may be impossible to use big data sets to detect which subject records correspond to a particular problem affecting a particular subject. Thus, a care provider may proceed to care for a particular subject without utilizing big data and / or by simply relying on high-level studies that have some bearing on a particular problem.
[0005] US Patent Application Publication No. 2020 / 0075141 discloses a medical information management device configured to process a request to retrieve stored medical information. The request includes a key and a value indicating a particular item of interest and corresponding content (e.g., disease: lung cancer). The medical information is retrieved based on the request, and a match rate is defined as the portion of the retrieved medical information that has a key-value pair that matches the key and value in the request. If the match rate is below a threshold set, the value is determined to be unique information. For example, lung cancer can be considered unique information if it is identified as a disease diagnosed in only 0.01% of the medical information. In some situations, it may be important that the specific individuals represented in the dataset cannot be identified. Thus, upon identifying unique information, the information can be obscured or anonymized.
[0006] US Patent No. 10,510,669 discloses expert opinion crowdsourcing. A submitter (e.g., a patient, an insurance company, a law firm, etc.) can submit a medical case (e.g., an exam) to a computing system and request feedback. The computing system can match the request to experts who can provide opinions from their own devices. The opinions can be returned to the submitter.
[0007] "Click-to-Call-Wikipedia", January 29, 2020, XP055786480, [searched 2021-03-16] discloses click-to-call operations in which a user clicks or presses a link on a computer, smartphone, etc., and a call is facilitated. When the link is clicked on a computer, the click can trigger one or more actions that result in an entity calling the user. When the link is clicked on a device with cellular capability, the click can trigger the dialing of a number associated with the link.
[0008] WO 2007 / 056601 discloses representing individual documents as vectors that identify respective occurrences of multiple terms. The similarity of multiple documents can then be measured by cosine coefficients and the documents can be clustered. Each term can also be represented as a vector of document identifiers so that associations between terms can be identified. The vector representation of terms can be used to identify associations between symptoms and structures.
[0009] WO 2019 / 182508 discloses that words (provided in response to a question) can be converted into semantic representation vectors. The vectors can then be compared to predefined semantic representations of symptoms associated with a mental illness or disorder to provide a diagnosis.
[0010] Chinese Patent No. 111008957 discloses using a neural network to extract features from medical images. The features are converted into feature vectors, which are then spliced and used to obtain classification results.
[0011] Thus, there remains a need for technological solutions that can generate analytical insights from existing subject records to enhance the level of care provided to subjects by care providers. Summary of the Invention
[0012] overview In some embodiments, a computer-implemented method for performing a clinical evaluation of a subject is provided. The computer-implemented method can include receiving, at a computing system, from a user device, a set of attributes of the subject identified by a user using an interface. For example, the set of attributes can characterize the subject and one or more symptoms of the subject. The computer-implemented method can include generating a record for the subject. The record can indicate each of the set of attributes, and the record can include a data element including a non-numeric value representing one of the one or more symptoms. The computer-implemented method can also include converting the non-numeric value representing the symptom to a conversion representation. The conversion representation can represent the non-numeric value numerically. The computer-implemented method can also include storing the record in a central data store and receiving a request submitted via the interface to initiate a consultation broadcast. The computer-implemented method can include querying the central data store using the conversion representation. The querying can include comparing the non-numeric conversion representation to other non-numeric other conversion representations included in other data elements of other records. The computer-implemented method can include identifying a set of other records based on results of the comparison and identifying a set of destination addresses. Each of the set of destination addresses can be associated with a caregiver of the other subject associated with one or more of the other sets of records. The computer-implemented method can also include generating an abbreviated representation of the subject's records that omits or obscures at least some of the set of attributes. The computer-implemented method can include sending the abbreviated representation of the records having the selectable element to each of the set of destination addresses. Additionally, the computer-implemented method can include receiving, from the other device corresponding to a destination address from the set of destination addresses, a communication generated by the other device selecting the selectable element. The computer-implemented method can include establishing a communication channel between the user device and the other device.
[0013] In some embodiments, a system is provided that includes one or more data processors and a non-transitory computer-readable storage medium containing instructions that, when executed on the one or more data processors, cause the one or more data processors to perform some or all of one or more of the methods disclosed herein.
[0014] In some embodiments, a computer program product is provided that is tangibly embodied in a non-transitory machine-readable storage medium and includes instructions configured to cause one or more data processors to perform some or all of one or more of the methods disclosed herein.
[0015] Some embodiments of the present disclosure include a system including one or more data processors. In some embodiments, the system includes a non-transitory computer-readable storage medium including instructions that, when executed on the one or more processors, cause the one or more processors to perform some or all of the methods and / or some or all of the processes disclosed herein. Some embodiments of the present disclosure include a computer program product tangibly embodied in a non-transitory machine-readable storage medium including instructions configured to cause the one or more processors to perform some or all of the methods and / or some or all of the processes disclosed herein.
[0016] The terms and expressions employed are used as terms of description and not of limitation, and in the use of such terms and expressions there is no intention to exclude any equivalents of the features shown and described or portions thereof, but it is recognized that various modifications are possible within the scope of the invention as claimed. Thus, although the invention as claimed has been specifically disclosed by embodiments and optional features, it will be understood that modifications and variations of the concepts disclosed herein may be resorted to by those skilled in the art, and such modifications and variations are considered to be within the scope of the invention as defined by the appended claims. [Brief description of the drawings]
[0017] The present disclosure is described in conjunction with the accompanying drawings, in which:
[0018] [Figure 1] 1 illustrates a network environment in which cloud-based applications are hosted in accordance with some aspects of the present disclosure.
[0019] [Diagram 2] 1 is a flowchart illustrating an example of a process performed by a cloud-based application to deliver abridged subject records to a user device in association with a consultation broadcast requesting assistance with a subject's treatment, in accordance with some aspects of the present disclosure.
[0020] [Diagram 3] 1 is a flowchart illustrating an example process for monitoring user integration of a treatment plan definition (e.g., a decision tree or a processing workflow) and automatically updating the treatment plan definition based on the results of the monitoring, in accordance with some aspects of the present disclosure.
[0021] [Figure 4] 1 is a flow chart illustrating an example of a process for recommending a treatment for a subject, according to some aspects of the present disclosure.
[0022] [Diagram 5] 1 is a flowchart illustrating an example of a process for obfuscating query results to comply with data privacy regulations in accordance with certain aspects of the present disclosure.
[0023] [Figure 6] 1 is a flowchart illustrating an example of a process for communicating with a user using a bot script, such as a chatbot, in accordance with some aspects of the present disclosure.
[0024] In the accompanying drawings, similar components and / or features may have the same reference label. Furthermore, various components of the same type may be distinguished by following the reference label with a dash and a second label that distinguishes the similar components. If only a first reference label is used in this specification, the description is applicable to any of the similar components having the same first reference label, regardless of the second reference label. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0025] Detailed Description I. Overview The technology relates to configuring a server to execute code that enables a user of an entity (e.g., a physician) to execute machine learning or artificial intelligence techniques using a subject record. The subject record includes a complex combination of data elements that characterize the subject. As an illustrative example, the subject record may include a combination of thousands of data fields. Some data fields may include fixed non-numeric values (e.g., the subject's ethnicity), other data fields may include unstructured text data (e.g., notes written by a physician), other data fields may include a time-varying series of collected measurements (e.g., glycosylated hemoglobin measurements taken two to four times a year), and other data fields may include images (e.g., an MRI of the subject's brain). Because machine learning and artificial intelligence models are often configured to process data in numerical or vector formats, the complexity and distribution of data types and formats in the subject record makes processing the subject record technically difficult, if not impossible. In light of this intended technical challenge, certain aspects and features of the present disclosure relate to the conversion of the subject record into a transformed representation, such as a vector representation, that characterizes the various data elements of the subject record.
[0026] The technology relates to converting non-numeric values contained in a subject record into a numerical representation (e.g., feature vectors) that can be input to a machine learning or artificial intelligence model to generate a predictive output. A server executing the code provides a technical effect by converting the subject record into a converted representation that is consumable by the machine learning or artificial intelligence model. "Consumable" may refer to data in a format or form that the machine learning or artificial intelligence model is configured to process to generate a predictive output. The machine learning or artificial intelligence model is not configured to process the subject records (as they exist stored in a data registry) due to the complex combination of data elements in multiple different data formats and data types contained in each individual subject record. By way of example, for a given subject record, data elements may include a longitudinal sequence of events (e.g., immunization records), other data elements may include measurements taken from the subject (e.g., vitals), still other data elements may include text entered by a user (e.g., notes recorded by a physician), and still other data elements may be images (e.g., x-rays). Limited or simple analytics can be performed on the subject records (before any transformation), such as grouping subjects based on the values of data elements (e.g., age groups). However, as the complexity and size of the subject records reach big data scale, limited or simple analytics become problematic or infeasible. To process and extract analytical assessments from the subject records at big data scale, machine learning or artificial intelligence techniques can be used to data mine the subject records. However, the machine learning or artificial intelligence models are configured to receive numeric or vector inputs. For example, a clustering operation, such as k-means clustering, is configured to receive a numeric vector as an input. Thus, to perform a clustering operation on the subject records, the present disclosure provides a technical effect by converting the subject records into a transformed representation, such as a numeric vector representation, consumable by the machine learning or artificial intelligence model.Intelligent analytics can be performed on the subject records in the transformed representation. Non-limiting examples of intelligent analytics (performed when the server executes the code) can include automatically detecting subject groups using clustering techniques, generating output that predicts certain outcomes based on values of data elements in the subject records, and identifying existing subject records that are similar to a given or new subject record.
[0027] To illustrate, and by way of non-limiting example only, a subject's subject record may include four data elements: a first data element includes a unique code representing a diagnosis of a condition; a second data element includes an MRI of the subject's brain; a third data element includes a time-varying series of measurements, such as blood pressure measurements over a one-year period; and a fourth data element includes unstructured notes, e.g., notes of symptoms detected by examining or performing one or more tests. According to certain implementations, each of the first data element, the second data element, the third data element, and the fourth data element may be converted to a transformation representation (e.g., a vector). The technique used to convert the values contained within the four data elements may depend on the type of data contained in the data elements. For the first data element, for example, the unique code representing a diagnosis may be represented as a fixed-length vector, the size of the vector being determined by the size of a vocabulary of codes, and each code in the vocabulary being represented by a vector element of the fixed-length vector. The one or more unique codes contained within the first data element may be compared to the vocabulary of codes. If the unique code matches a code in the vocabulary, a "1" may be assigned to the vector element at the location of the vector corresponding to the unique code, and a "0" may be assigned to all remaining vector elements of the vector. In light of the above, a first vector may be generated to represent the value of the first data element. As another example, for the second data element, a latent space representation of the image may be generated using a trained autoencoder neural network. The latent space representation of the input image may be a dimensionality reduced version of the input image. The trained autoencoder neural network may include two models: an encoder model and a decoder model. The encoder model may be trained to extract a subset of salient features from a set of features detected in the image. The salient features (e.g., keypoints) may be regions of high intensity in the image (e.g., edges of objects). The output of the encoder model may be a latent space representation of the input image.The latent space representation may be output by a hidden layer of the trained autoencoder model, and thus the latent space representation may only be interpretable by the server. A decoder model may be trained to reconstruct the original input image from a subset of the extracted salient features. The output of the encoder model may be used as a feature vector representing the pixel values of the image contained in the second data element. In light of the above, a second vector (e.g., a latent space representation) may be generated to represent the image contained in the second data element. As another example, for the third data element, a time-varying sequence of measurements may be numerically represented. In some implementations, the time-varying sequence may be represented by a sum of the instances where measurements are made from the subject. In other implementations, the time-varying sequence may be numerically represented using an arithmetic mean, average, or median of the values of the measurements made over instances of the measurements that occurred over a period of time (e.g., a year). In other implementations, the frequency of the measurements may be calculated and used to numerically represent the time-varying sequence of measurements. In light of the above, a third vector may be generated to represent the time-varying sequence of values contained within the third data element. As yet another example, the notes entered by the user for the fourth data element can be processed and vectorized using any number of natural language processing (NLP) text vectorization techniques. In some implementations, a word-to-vector machine learning model, such as a Word2Vec model, can be performed to convert the notes included in the fourth data element into a single vector representation. In other implementations, a convolutional neural network can be trained to detect words or numbers in the text indicating symptoms, treatments, or diagnoses from the notes included in the fourth data element. In light of the above, a fourth vector can be generated to represent the text of the notes included in the fourth data element as a vector representation. Thus, the final feature vector representing the entire subject record can be a vector of vectors including the concatenation of the first vector, the second vector, the third vector, and the fourth vector.In other examples, an average of the first vector, the second vector, the third vector, and the fourth vector may be used to numerically represent the entire subject record. As a non-limiting example, any transformation (e.g., a linear transformation) may be performed on any one or more of the first vector, the second vector, the third vector, etc. to ensure that each vector has the same dimensions. Other combinations of the first vector, the second vector, the third vector, and the fourth vector may be used to generate a final feature vector that numerically represents the entire subject record.
[0028] In some implementations, instead of generating a vector that numerically represents each data element of the subject record, a technique can be performed to reduce the dimensionality of the subject record by identifying and selecting a subset of data elements from the set of data elements. The subset of data elements can represent "important" data elements, and the "importance" of the data elements is determined based on a prediction using a feature extraction technique such as singular value decomposition (SVD). For example, converting the subject record into a transformed representation consumable by machine learning and artificial intelligence models can include performing one or more feature extraction techniques on non-numeric values contained in the data elements of the subject record to generate a feature vector that numerically represents the decomposed version of the non-numeric values. In some implementations, the feature extraction technique can include, for example, reducing the dimensionality of a set of data elements (e.g., each data element represents a characteristic or dimension of the subject) of the subject record to an optimal subset of features that can be used to predict, for example, an outcome or event. Reducing the dimensionality of the set of data elements can include reducing N data elements to a subset of M elements, where M is less than N. In these implementations, each element of the subset of M elements can be converted to a numerical value. In some implementations, a feature vector can be generated to represent the N data elements of the subject record. The feature vector can include a vector for each data element of the set of data elements. For example, the feature vector can be a numerical representation of a complex combination of the data elements of the subject record. Each non-numeric value in the data elements of the subject record can be vectorized to generate a representative vector. The vectors representing the set of data elements in the subject record can be concatenated or combined (e.g., as an average or weighted average) to generate a feature vector that numerically characterizes the entire set of data elements of the subject record. The feature vector can be consumed by a trained machine learning or artificial intelligence model. Once the feature vector of the subject record is generated, the subject record can be evaluated individually or in groups of other subject records using machine learning models and artificial intelligence techniques.After the feature vectors representing each subject record are generated and stored, the feature vectors of the subject records stored in the central data store can be input into a machine learning or artificial intelligence model, or other extended analysis can be performed on the numerical representation of the subject records. For example, two different subject records can be compared with respect to one or more dimensions. The dimensions can represent features or data elements of the subject records along which a comparison between the two or more subject records is made. By way of example, a data element of a first subject record includes text entered by a first user (e.g., a physician) describing a symptom of the first subject. The text (e.g., the value of the data element of the first subject record) can be vectorized using the text vectorization techniques described above (e.g., Word2Vec) to generate a first vector that numerically represents the text associated with the data element. The text vectorization technique can generate an N-dimensional word vector for each word contained in the text. A matching data element of a second subject record (e.g., a data element of the other patient record that also includes text entered by a physician describing the symptom of the other patient) can include text entered by a second user describing the symptom of the second subject. The text (e.g., the value of the data element of the second subject record) may be vectorized using the text vectorization techniques described above to generate a second vector (e.g., an N-dimensional word vector) representing the text associated with the data element. The server may compare the first vector to the second vector in Euclidean or cosine space to quantify the similarity or dissimilarity between the first patient record and the second patient record, at least with respect to the dimension of the patient's presentation of symptoms. If the first vector and the second vector are close to each other in Euclidean space (e.g., if the Euclidean distance between the first vector and the second vector is small), then the symptoms experienced by the first subject (as described in the text of the data element) are likely to be similar to the symptoms experienced by the second subject (as described in the text of the data element).However, if the Euclidean distance between the first vector and the second vector is large or exceeds a threshold distance (e.g., or if the Euclidean distance is above a threshold), then the symptoms experienced by the first subject can be predicted to be different from the symptoms experienced by the second subject.
[0029] In some implementations, the server can be configured to execute an application that allows users of the entity to build a data registry that serves to store subject records for subsequent processing. The data of the patient record can include unstructured data, such as an electronic copy of a doctor's note and / or responses to open-ended questions. The unstructured data can be captured in the data registry by mapping portions of the unstructured data to fixed portions (e.g., data elements) of a structured data record. The fixed portions of the structured data record can point to data elements that contain data corresponding to a predefined type of unstructured data (e.g., doctor's note, a response to a particular question, a type of image or vitals, etc.) and / or a predefined value that can be associated with the unstructured data (e.g., a set of possible symptoms that can be described in the unstructured data, a set of possible symptoms, etc.). The structure of the structured data record can be defined using specifications (e.g.,) from modules that correspond to a particular use case (e.g., a particular disease, a particular test, etc.). For example, each word (e.g., text) of the unstructured note data can be converted to a numerical representation, and the various numerical representations associated with the unstructured note data can be decomposed (e.g., using SVD) to detect words that describe the particular set of symptoms exhibited by the subject. The decomposition of the numerical representations of the unstructured note data can remove non-informative words such as "and," "the," "or." The remaining words represent the particular set of symptoms. Some portions of the note data may be irrelevant with respect to the data elements in the structured data and / or may be more or less specific than the data contained in the data elements. In some examples, various mappings (e.g., mapping a "poor balance" symptom to a "neurological" symptom), natural language processing, or interface-based techniques (e.g., prompting the user for new information) can be used to obtain the structured data records.The interface may also be used to receive input identifying new information about new or existing subjects, and the interface may include input components and selection options that map to the structure of the data records.
[0030] Additionally, the technology relates to configuring a cloud-based application to convert non-numeric values contained in data elements of the subject record to a numerical representation, such that the cloud-based application can perform intelligent analytical functions using the numerical representation (e.g., the converted representation) of the subject record stored in the data registry. The conversion of non-numeric values of data elements of the subject record to a numerical representation can depend on the type of data contained in the data element. For example, for a data element that includes text, such as notes taken by a user, the text can be converted to a numerical representation of the text using natural language processing techniques such as Word2Vec or other text vectorization techniques. As another example, for a data element that includes image frames of an image (e.g., an MRI) or video (e.g., an ultrasound video), each image or image frame can be converted to a numerical representation (e.g., a vector) using a trained autoencoder neural network that is trained to generate a latent space representation of the input image. The reduced representation (e.g., the latent space representation) of the input image can serve as a vector that numerically represents the input image. As yet another example, for a data element that includes a time-varying information sequence (e.g., an event occurring over a period of time), the time-varying information can be represented as a numerical representation using several exemplary transformations. In some examples, a count of an event may be used as a vector representing the time-varying information. In other examples, a frequency or rate of an event occurring (e.g., once a week, once a month, once a year, etc.) can be used as a vector representing the time-varying information. In still other examples, an average or combination of measurements associated with each event in the time-varying information can be used as a vector representing the time-varying information. The disclosure is not limited to these examples, and other numerical representations of the time-varying information can be used as vectors representing the numerical representation. Intelligent analysis functions can be performed by running machine learning or artificial intelligence models trained using the data records. Model outputs can be used to indicate specific analyses extracted from the data records.
[0031] Additionally, techniques disclosed herein relate to configuring a cloud-based application to implement data privacy protocols that allow an entity to transmit and / or receive one or more data records or other information characterizing a subject (e.g., experiencing a medical condition and / or having a possible or confirmed diagnosis of a medical condition) with an external entity while satisfying constraints imposed by data privacy regulations across various jurisdictions. The cloud-based application can be configured to algorithmically evaluate data privacy violations and automatically omit, obfuscate, or modify data records to comply with data privacy regulations. These techniques can be implemented in combination with any of the techniques described herein.
[0032] In some examples, transmission of data from subject records can be provided to generate treatment plans for individual subjects. For example, subject record information (e.g., conforming to data privacy restrictions by selecting omission and / or obfuscation of data) can be broadcast and / or transmitted to a selected group of user devices. For example, a broadcast may be sent to user devices associated with similar data records in response to input from a user corresponding to a request to initiate a consultation with a user associated with a similar subject. If the user receiving the broadcast accepts the consultation request (through providing corresponding input), a secure data channel can be established between the users, and potentially more subject records can be shared (e.g., while conforming to data privacy restrictions applicable to the two users). Subject records similar to a given subject can be identified by performing a nearest neighbor technique using vector representations of two or more subject records. The nearest neighbor technique can be performed by comparing vectors of individual data elements across multiple subject records (e.g., nearest neighbors can be determined relative to a dimension or feature of the subject records). Where vectors of individual data elements are compared, the individual elements may be matching data elements, such as vectors corresponding to a first (respectively, second, third, etc.) data element or a first (respectively, second, third, etc.) type of data element, where the type may refer, for example, to free text notes, images, images from a particular imaging modality, time series, vitals, etc. Alternatively, the nearest neighbor technique may be performed by comparing an overall vector characterizing an entire subject record with an overall vector characterizing another entire subject record. The overall vector may be a concatenation of the individual vectors representing the values of the data elements, or may be an average or combination of the individual vectors representing the values of the data elements.
[0033] As another example, one or more processed data records may be returned in response to a query for subject records matching certain constraints. In some examples, a first user may submit a query identifying a first subject record. The query may correspond to a request to identify other subject records similar to the first subject record. The server may convert the first subject record into a converted representation using certain conversion techniques described above herein. Alternatively, the converted representation of the first subject record may have been previously generated and stored in the database. Regardless of whether the converted representation of the first subject record is generated before or after receiving the query, converting the first subject record into the converted representation of the first subject record may include generating a vectorization of one or more non-numeric values of data elements of the first subject record. Vectorizing one or more non-numeric values contained within the first subject record may include generating a numeric vector representation for each value contained in each data element of the first subject record (e.g., for non-numeric text such as notes). The various vector representations may be concatenated or otherwise combined (e.g., calculating an average) to generate a feature vector representing the entire first subject record. A vector representation that numerically represents a first subject record can be compared to vector representations of other subject records in a domain space (e.g., Euclidean or cosine space). For example, if the Euclidean distance between the two vector representations is within a threshold distance, then the two subject records associated with the two vector representations can be interpreted (e.g., by a server) as being similar with respect to at least one or more dimensions.
[0034] For each data element in the subject record, the technique used to generate a vector representation of the values associated with the data element may depend on the type of data associated with the data element. In some examples, the data elements of the subject record may be associated with one or more images, such as x-rays of the subject. Feature extraction techniques may be performed to generate a vector representation of each image associated with the data element. For example, the server may be configured to run a trained autoencoder neural network to generate a dimensionality-reduced version of the image. The trained autoencoder neural network may include two models: an encoder model and a decoder model. The encoder model may be trained to extract a subset of salient features from a set of features detected in the image. The salient features (e.g., keypoints) may be regions of high intensity in the image (e.g., edges of objects). The output of the encoder model may be a latent space representation of the input image. The latent space representation may be output by a hidden layer of the trained autoencoder model, and thus the latent space representation may be interpretable only by the server. The subset of salient features of the latent space representation characterizing the subject record may be compared to the subset of salient features of the latent space representation characterizing other subject records to obtain specific analytical insights. The decoder model may be trained to reconstruct the original input image from the extracted subset of salient features. The output of the encoder model may be a vector representation of the data elements associated with the images comprising the subject record. In another example, a keypoint matching technique (e.g., a technique that compares a set of pixels detected as keypoints in one image with a different set of pixels detected as keypoints in another image) may be performed to match image keypoints contained in the data elements of a first subject record to other image keypoints contained in the data elements of a second subject record.The vector representation (e.g., latent space representation) of the input image is consumable by a machine learning or artificial intelligence model such that two different subject recordings (each containing an image) can be compared to each other to determine the similarity or dissimilarity between the two different subject recordings.
[0035] To illustrate, and by way of non-limiting example only, a magnetic resonance image (MRI) of the subject's brain is taken. The MRI is stored in a subject record associated with the subject. The server is configured to generate a transformed representation, such as a vector representation of the MRI included in the subject record, using feature extraction techniques such as keypoint detection, auto-encoding into latent space representations, SVD, and other suitable computer vision techniques. The vector representation of the data element including the MRI is concatenated or combined (e.g., averaged) with vector representations of some or all of the remaining data elements of the set of data elements to generate a feature vector that characterizes the entire subject record. A user can access the application to query a database of other subject records to search for a set of other subject records of a subset that includes an MRI similar to the MRI of the subject's brain. Identifying other subject records that are similar to the subject record (at least in terms of similarity between the MRIs) can include computing a k-nearest neighbor of the subject record. For example, the transformed representation may be plotted (visually or internally by the computing system) on a domain space, such as Euclidean space or cosine space. The transformed representation of each of the other subject records may be plotted (visually or internally by the computing system). Nearest neighbor techniques can be performed to compare the vector representation of the subject record with vector representations of other subject records to identify k nearest neighbors to the subject vector. The identified k nearest neighbors can be predicted to have MRIs similar to the MRI of the subject's brain. Each of the other subject records identified as nearest neighbors can be identified and retrieved for further evaluation or processing using an application.
[0036] In some implementations, the computing system can perform data processing techniques (e.g., nearest neighbor techniques) to identify similar subject records. In this search, various data elements can be differentially weighted (e.g., according to predefined data element weightings, the importance of matching various data elements, and / or user input indicating the prevalence of particular data element values across the subject record set). When searching a set of records for potential matches, some records may be missing values for various data elements. In these cases, when evaluating potential matches, it can be determined (for example) that the data element values do not match and / or that the data elements are unweighted. Handling of missing values can depend on the distribution of the values of the data elements across the set of records and / or the values of the data elements in the query.
[0037] Additionally, some techniques relate to defining and using a set of rules used to identify potential treatment regimens for a subject given a set of symptoms identified in the subject record. To illustrate, a target subject record may represent a target subject who recently experienced three symptoms: upper respiratory tract infection, fever, and sore throat. The three symptoms may be written as text within a data element of the target subject record (e.g., with separation between words marked by tags such as semicolons). A server, such as cloud server 135, may input the text "upper respiratory tract infection," "fever," and "sore throat" individually into a trained Word2Vec model or other text-to-vector model such as vocabulary mapping. The Word2Vec model may be trained to generate a vector representation of each word that represents a symptom. The vector representations of the three symptoms may be averaged (concatenated or otherwise combined, as described above) to generate a single vector representation of the "symptoms" data element of the target subject record. The single vector representation of the "symptoms" data element of the target subject record may be processed to identify other subject records that contain similar words in the "symptoms" data element. Each subject record stored in the database can be associated with an existing "symptom" data element that has been converted to a numerical representation, such as a vector. The vector of the "symptom" data element can be plotted and compared to the vector of the "symptom" data element of the target subject record. The server can identify the vector that is closest to the vector characterizing the "symptom" data element. The vector of the "symptom" data element that is closest to the vector of the target subject record can be predicted to be similar to the subject. The subject record associated with the vector that is closest to the vector of the target subject record may be identified and further evaluated to determine a treatment regimen to be provided to that subject. The treatment provided to the subject associated with the vector that is closest to the vector for the target subject record can be used as a potential treatment regimen for treating the target subject. Additionally, each potential treatment regimen can be weighted by the responsiveness experienced by other subjects. The potential treatment regimens can be classified according to the responsiveness experienced by other subjects.
[0038] The set of rules can be defined based on user interaction with a user interface, which can include specification of a particular criterion and an associated particular medical treatment, and / or selection of one or more previously defined rules (specifying the criterion and treatment). For example, one or more existing rules can be presented via the interface, and the user can select a rule to incorporate into the rule base associated with an account associated with the user. The one or more rules may be selected from among a set of rules defined by multiple users (e.g., associated with one or more institutions) and / or generated based on rules generated by multiple users. When the user selects a rule for incorporation into the rule base, the application can generate a feedback signal to the cloud server 135. The feedback signal can include metadata associated with the user's selection. The metadata can indicate whether the rule was incorporated into the rule base without changes or with changes. If the rule base was modified, the metadata indicates what changes were made to the rule. The metadata can also indicate whether the rule was rejected, deleted, or otherwise determined to be not useful to the user. To illustrate, as a non-limiting example, the computing system may detect that rules associating one or more particular types of symptoms and / or test results with a given treatment are defined and / or selected relatively frequently by a user, and the computing system may then generate general rules for the particular types of symptoms and / or test results and treatments. General rules may be defined to have (for example) the most restrictive, the most inclusive, or median criteria. In some examples, the user's rule base may be processed to detect overlaps of any criteria between the rules. Upon identifying overlaps, a warning identifying the overlaps may be presented. Rules in the rule base may be used to evaluate subject records and define populations associated with the subject records (e.g., by classification).Evaluating the subject record using the rules may be implemented as a decision tree, for example, in that the first criterion of the rule is compared to the attributes contained in the subject record. If the first criterion is met, the next criterion is compared to the attributes contained in the subject record. If the next criterion is met, the comparison continues for each criterion contained in the rule. The comparison may continue even if the next criterion is not met. In this case, the fact that the criterion (and any others contained in the rule) was not met is remembered and presented to the user device along with the criteria that were met.
[0039] Additionally, embodiments of the present disclosure provide a cloud-based application configured to exchange subject information with external entities without violating data privacy regulations. The cloud-based application is configured to automatically evaluate data privacy regulations involved in sharing subject information across various jurisdictions. The cloud-based application is configured to execute protocols that obfuscate or otherwise alter the subject information, thereby algorithmically ensuring compliance with data privacy regulations.
[0040] II. Network environment for hosting cloud-based applications configured with intelligent capabilities 1 illustrates a network environment 100 in which an embodiment of a cloud-based application is hosted. The network environment 100 can include a cloud network 130 that includes a cloud server 135 and a data registry 140. The cloud server 135 can execute source code underlying the cloud-based application. The data registry 140 can store data records captured from or identified using one or more user devices, such as a computer 105, a laptop 110, and a mobile device 115.
[0041] The data records stored in the data registry 140 may be structured according to a skeleton structure of fixed parts (e.g., data elements). The computer 105, the laptop 110, and the mobile device 115 may each be operated by a different user. For example, the computer 105 may be operated by a doctor, the laptop 110 may be operated by an administrator of an entity, and the mobile device 115 may be operated by a subject. The mobile device 115 may connect to the cloud network 130 using the gateway 120 and the network 125. In some examples, the computer 105, the laptop 110, and the mobile device 115 are each associated with the same entity (e.g., the same hospital). In other examples, the computer 105, the laptop 110, and the mobile device are associated with different entities (e.g., different hospitals). The user devices of the computer 105, the laptop 110, and the mobile device 115 are examples for illustrative purposes, and thus the present disclosure is not limited thereto. The network environment 100 may include any number or configuration of user devices of any device type.
[0042] In some embodiments, the cloud server 135 can obtain data (e.g., subject records) for storage in the data registry 140 by interacting with either the computer 105, laptop 110, or mobile device 115. For example, the computer 105 interacts with the cloud server 135 by using an interface to select subject records or other data records stored locally (e.g., stored on a network local to the computer 105) for inclusion in the data registry 140. As another example, the computer 105 interacts with the interface to provide the cloud server 135 with an address (e.g., a network location) of a database that stores the subject records or other data records. The cloud server 135 then retrieves the data records from the database and incorporates the data records into the data registry 140.
[0043] In some embodiments, the computer 105, the laptop 110, and the mobile device 115 are associated with different entities (e.g., a medical center). The data records that the cloud server 135 retrieves from the computer 105, the laptop 110, and the mobile device 115 may be stored in different data registries. The data records from each of the computer 105, the laptop 110, and the mobile device 115 may be stored in the cloud network 130, but the data records are not intermingled. For example, the computer 105 cannot access the data records retrieved from the laptop 110 due to constraints imposed by data privacy regulations. However, the cloud server 135 can be configured to automatically obfuscate, obscure, or mask portions of the data records when the data records are queried by different entities. Thus, the data records captured from the entities can be released to the different entities in an obfuscated, obscured, or masked form to comply with the data privacy regulations.
[0044] Once the data records are collected from the computers 105, laptops 110, and mobile devices 115, the data records can be used as training data to train machine learning or artificial intelligence models to provide the intelligent analytic functions described herein. If a user device associated with an entity queries the data registry 140 and the query results include data records originating from different entities, the data records may be available for query by any entity, given that these data records may be provided or exposed to the user device in an obfuscated format that complies with data privacy regulations.
[0045] The cloud server 135 can be configured in a special manner to execute code that, when executed, causes the cloud server 135 to execute an intelligent function using the transformed representation of the subject record (e.g., a vector that numerically represents information stored in the subject record). For example, the intelligent function can be executed by executing code using the cloud server 135. The executed code can represent a trained neural network model. The neural network model may be trained to perform an intelligent function, such as predicting a subject's responsiveness to a treatment regimen, identifying similar patients, generating treatment regimen recommendations for the patient, and other intelligent functions. The neural network model can be trained using a training dataset that includes subject records of subjects who have previously been treated for a condition and experienced an outcome (e.g., overcoming the condition, increasing the severity of the condition, decreasing the severity of the condition, etc.). Additionally, the executed code can be configured to cause the cloud server 135 to convert non-numeric values of the existing subject record into a numerical representation (e.g., the transformed representation) that can be processed by the trained neural network model. For example, code executed by cloud server 135 can be configured to receive as input each subject record of a set of subject records, and for each subject record, the code, when executed, can cause cloud server 135 to perform the operations described herein to convert each data element of each subject record into a transformed representation, such as a vector representation. Performing the intelligent function can include inputting at least a portion of the data records stored in data registry 140 into a trained machine learning or artificial intelligence model to generate an output for further analysis. In some embodiments, the output can be used to extract patterns within the data records or to predict values or outcomes associated with data fields of the data records. Various embodiments of the intelligent functions performed by cloud server 135 are described below.
[0046] In some embodiments, the cloud server 135 is configured to enable a user device (e.g., operated by a physician) to access a cloud-based application to send a consultation broadcast to a set of destination devices. The consultation broadcast can be a request for assistance or assistance with the treatment of a subject associated with the subject record. The destination devices can be user devices operated by other users associated with other entities (e.g., physicians at other medical centers). If the destination device accepts the request for assistance associated with the consultation broadcast, the cloud-based application can generate an abridged representation of the subject record that omits or hides certain data fields of the subject record. The abridged representation can comply with data privacy regulations, such that the abridged representation of the subject record cannot be used to uniquely identify the subject associated with the subject record. The cloud-based application can send the abridged representation of the subject record to the destination devices that accepted the request for assistance. The users operating the destination devices can evaluate the abridged representation and communicate with the user devices using a communication channel to discuss options for treating the subject. For example, the communication channel can be configured as a secure chat room that allows a user device (e.g., operated by a physician requesting a consultation) to securely communicate with a destination device (e.g., operated by another physician providing a consultation).
[0047] In some embodiments, the cloud server 135 is configured to provide a treatment plan definition interface to the user device. The treatment plan definition interface allows the user device to define a treatment plan for the condition. For example, the treatment plan can be a workflow for treating a subject with that condition. The workflow can include one or more criteria for defining a population of subjects as having the condition. The workflow can also include a particular type of treatment for the condition. The cloud server 135 receives and stores a treatment plan definition for a particular condition from each user device of the collection of user devices. A cloud-based application can distribute a treatment plan for a given condition to the set of user devices. Two or more user devices of the set of user devices may be associated with different entities. Each of the two or more user devices can include an option to integrate any part or the entirety of the treatment plan into a customer rule set. The cloud server 135 can monitor whether the user device integrates the entire shared treatment plan or a portion of the treatment plan. An interaction between the user device and the shared treatment plan can be used to determine whether to update the treatment plan or rules created based on the treatment plan.
[0048] In some embodiments, the cloud server 135 allows a user operating a user device to access a cloud-based application to determine a proposed treatment for a subject having a condition. The user device loads an interface associated with the cloud-based application. The interface allows the user operating the user device to select a subject record associated with a subject being treated by the user. The cloud-based application can evaluate other subject records to identify previously treated subjects similar to the subject being treated by the user. The similarity between subjects can be determined, for example, using an array representation of the subject record. The array representation (e.g., a transformed representation such as a vector, an N-dimensional matrix, or any numerical representation of a non-numeric value) can be any numerical and / or categorical representation of the values of the data fields of the subject record. For example, the array representation of the subject record can be a vector representation of the subject record in a domain space, such as in Euclidean space. In some examples, the cloud server 135 can be configured to convert the entire subject record into a numerical representation, such as a vector. For a given subject record, the cloud server 135 can evaluate each data element to determine the type of data contained or included in that data element. The type of data can inform the cloud server 135 as to what process or technique to perform to convert the numeric or non-numeric values of that data element into a numerical representation. As an illustrative example, the cloud server 135 can convert the non-numeric values of the data elements of a subject record (e.g., text in a doctor's note) into a numerical representation (e.g., vectors). The conversion can include using natural language processing techniques such as Word2Vec or other text vectorization techniques to generate numerical values representing each word of the text. The generated numerical values can serve as vectors that can be input into a trained neural network to perform intelligent analytics.As another illustrative example, for a data element that includes images (e.g., MRI data) or image frames (e.g., ultrasound video data) of a video, each image or image frame can be converted to a numerical representation (e.g., a vector) using a trained autoencoder neural network that is trained to generate a latent space representation of the input image. The reduced representation (e.g., latent space representation) of the input image can serve as a numerical representation of the input image. This numerical representation can be input to a neural network or other machine learning model to perform intelligent analysis of the associated subject records. As yet another example, for a data element that includes a time-varying information sequence (e.g., events that occurred or measurements taken from a subject over a period of time), the time-varying information can be represented as a numerical representation using several illustrative transformations. In some examples, a count of events may be used as a vector representing the time-varying information. For example, if four measurements were taken on a subject over a year, the numerical representation can be "4". In other examples, the frequency or rate of an event occurring (e.g., once a week, once a month, once a year, etc.) can be used as a vector representing the time-varying information. In yet other examples, an average or combination of measurements associated with each event in the time-varying information can be used as a vector representing the time-varying information. This disclosure is not limited to these examples and other numerical representations of the time-varying information can be used as a vector representing the numerical representation.
[0049] In some examples, the multiple values in the array representation correspond to a single data element. For example, the value of the data element may be represented by multiple binary values generated via one-hot encoding. As another example, each value of the multiple values in a single data element of a subject record may be individually converted to a numeric representation, as described above. The numeric representations representing each value of the multiple values may be combined into a single numeric representation corresponding to the data element. The combination of the multiple numeric representations may be performed using any vector combination technique, such as averaging the magnitudes of the vectors, adding the vectors, or concatenating the multiple vectors into a single vector. In some examples, the cloud-based application may generate an array representation of each subject record of a group of subject records. The similarity between two subject records may be represented by comparing the two array representations to determine the distance between them. Instead of comparing the numeric representation of an entire subject record to other numeric representations of other subject records, the subject records may also be compared along a dimension (e.g., data elements). For example, comparing two subject records along a dimension may include comparing the numeric representation of a data element of the subject record to other numeric representations of matching data elements of the other subject records. Additionally, the cloud-based application can be configured to identify subjects that are closest to a subject record selected by a user device using the interface. The closest neighbors may be determined by comparing the numerical representations of the various subject records to the numerical representation of a target subject record. The cloud-based application can identify treatments previously performed on the subjects that are closest neighbors. The cloud-based application can utilize on the interface the processing previously performed on the closest neighbors.
[0050] In some embodiments, the cloud server 135 is configured to create a query that searches a database of previously treated subjects. The cloud server 135 may execute the query and retrieve subject records that satisfy the constraints of the query. However, in presenting the query results, the cloud-based application may present complete subject records only for subjects that have been or are being treated by the user creating the query. The cloud-based application masks or otherwise obfuscates portions of subject records for subjects not treated by the user creating the query. Masking or obfuscating portions of subject records included in the query results allows the user to comply with data privacy regulations. In some embodiments, the query results (whether or not the query results are obfuscated) may be automatically evaluated for patterns or common attributes within the subject records.
[0051] In some embodiments, the cloud server 135 embeds the chatbot in the cloud-based application. The chatbot is configured to automatically communicate with a user device. The chatbot can communicate with the user device in a communication session in which messages are exchanged between the user device and the chatbot. The chatbot can be configured to select an answer to a question received from the user device. The chatbot can select an answer from a knowledge base accessible to the cloud-based application. When a user device sends a question to the chatbot and the chatbot does not have an existing answer stored in the knowledge base, the chatbot can select a different representation of the question for which there is an existing answer stored in the knowledge base. A user communicating with the chatbot can be prompted as to whether the answer provided by the chatbot is accurate or useful.
[0052] It will be understood that any machine learning or artificial intelligence algorithm can be executed to generate any of the trained machine learning models described herein. A variety of different types and techniques of artificial intelligence-based models and machine learning models can be trained and then executed to generate one or more outputs that predict user outcomes for performing a protocol or function. Non-limiting examples of models include naive Bayes models, random forest or gradient boosting models, logistic regression models, deep learning neural networks, ensemble models, supervised learning models, unsupervised learning models, collaborative filtering models, and any other suitable machine learning or artificial intelligence models.
[0053] It will be understood that the cloud-based application can be configured to perform intelligent functions with respect to consulting external physicians, determining diagnoses, and suggesting treatments for any disease, condition, area of study, or disorder, including, but not limited to, COVID-19, oncology, including cancers of the lung, breast, colorectal, prostate, stomach, liver, cervical (cervix), esophagus, bladder, kidney, pancreas, endometrium, oral cavity, thyroid, brain, ovary, skin, and gallbladder, solid tumors such as sarcomas and carcinomas, cancers of the immune system including lymphomas (such as Hodgkin's lymphoma or non-Hodgkin's lymphoma), and cancers of the blood (hematological cancers) and bone marrow such as leukemias (such as acute lymphocytic leukemia (ALL) and acute myeloid leukemia (AML)), lymphomas and myelomas. Further disorders include blood disorders such as anemia, bleeding disorders such as hemophilia, blood clots, ophthalmologic disorders including diabetic retinopathy, glaucoma, and macular degeneration, neurological disorders including multiple sclerosis, Parkinson's disease, spinal muscular atrophy, Huntington's disease, amyotrophic lateral sclerosis (ALS), and Alzheimer's disease, autoimmune disorders including multiple sclerosis, diabetes, systemic lupus erythematosus, myasthenia gravis, inflammatory bowel disease (IBD), psoriasis, Guillain-Barre syndrome, chronic inflammatory demyelinating polyneuropathy (CIDP), Graves' disease, Hashimoto's thyroiditis, eczema, vasculitis, allergies, and asthma.
[0054] Other diseases and disorders include, but are not limited to, kidney disease, liver disease, heart disease, stroke, gastrointestinal disorders such as celiac disease, Crohn's disease, diverticular disease, irritable bowel syndrome (IBS), gastroesophageal reflux disease (GERD) and peptic ulcers, arthritis, sexually transmitted diseases, high blood pressure, bacterial and viral infections, parasitic infections, connective tissue diseases, celiac disease, osteoporosis, diabetes, lupus, diseases of the central and peripheral nervous system such as attention deficit / hyperactivity disorder (ADHD), catalepsy, encephalitis, epilepsy and seizures, peripheral neuropathy, meningitis, migraine headaches, myelopathy, autism, bipolar disorder, and depression.
[0055] II.A. Cloud-based application enables user devices to broadcast consultation requests to other user devices and automatically condense subject records to comply with data privacy regulations 2 is a flow chart illustrating a process 200 performed by a cloud-based application to deliver condensed subject records to user devices in association with a consultation broadcast requesting assistance regarding a subject's treatment. Process 200 can be performed by the cloud server 135 to enable user devices associated with different entities (e.g., hospitals) to collaborate or consult regarding a patient's treatment while complying with data privacy regulations.
[0056] Process 200 begins at block 210, where the cloud server 135 receives a set of attributes from a user device. Each attribute in the set of attributes can represent any characteristic of a subject (e.g., a patient). The set of attributes can be identified by a user using an interface provided by the cloud server 135. For example, the set of attributes identifies demographic information of the subject and recent symptoms experienced by the subject. Non-limiting examples of demographic information include age, gender, ethnicity, state or city of residence, income range, education level, or any other suitable information. Non-limiting examples of recent symptoms include subjects who currently or recently (e.g., at last clinic visit, intake, within 24 hours, within a week) experienced a particular symptom (e.g., difficulty breathing, fever above a threshold temperature, blood pressure above a threshold blood pressure, etc.).
[0057] In block 220, the cloud server 135 generates a record for the subject. The record can be a data element that includes one or more data fields. The record indicates each of a set of attributes associated with the subject. The record can be stored in a central data store, such as the data registry 140 or any other cloud-based database. In block 230, the cloud server 135 receives a request submitted by a user using the interface. The request can be to initiate a consultation broadcast. For example, a user associated with an entity is a doctor at a medical center treating a patient. The user can operate a user device to access a cloud-based application and broadcast a request to assist in treating the patient. The broadcast can be sent to a set of other user devices associated with a different entity.
[0058] In block 240, the cloud server 135 queries the central data store using one or more recent symptoms included in the set of attributes associated with the subject. The query result includes a set of other records. Each record in the set of other records is associated with another subject. In some examples, the cloud server 135 can query the central data store to identify other subject records similar to the subject record. Similarity can be determined by comparing the transformed representation of the entire subject record to the transformed representation of each of the other subject records. The comparison of the transformed representations can result in a distance (e.g., Euclidean distance) that represents the similarity between the two subject records. In other examples, similarity can be determined based on values included in the data elements. For example, the target subject record can include a subject data element that includes text that represents a symptom experienced by the subject. Each of the other subject records stored in the central data store can also include a data element that includes text that represents the associated subject's symptoms. The cloud server 135 can convert the text included in the subject data element into a numerical representation using techniques described above (e.g., trained convolutional neural networks, text vectorization techniques such as Word2Vec, etc.). The numerical representation of the text contained in the subject data element can be compared to the numerical representation of the text contained in the data element of the matching subject record. The result of the comparison (e.g., in a domain space such as Euclidean space) between the two numerical representations can indicate the degree to which the text contained in the subject data element is similar to the text contained in the data element of the other subject record. In block 250, the cloud server 135 identifies a set of destination addresses (e.g., other user devices associated with different entities). Each destination address in the set of destination addresses is associated with a care provider of another subject associated with one or more other records in the set of other records identified in block 240. In block 260, the cloud server 135 generates a condensed representation of the record for the subject. The condensed representation of the record omits, obscures, or obfuscates at least a portion of the record.The condensed representations of the records can be exchanged between external systems without violating data privacy regulations because they cannot be used to uniquely identify the subject associated with the record. The cloud server 135 can perform any masking or obfuscation techniques to generate the condensed representations of the records.
[0059] At block 270, the cloud server 135 utilizes a reduced representation of the record having a connection input component (e.g., a selectable link such as a hyperlink that establishes a communication channel) for each destination address of the set of destination addresses. The connection input component may be a selectable element presented at each destination address. Non-limiting examples of a connection input component include buttons, links, input elements, and other suitable selectable elements. At block 280, the cloud server 135 receives a communication from a destination device associated with the destination address. The communication includes an indication that a user operating the destination device has selected a connection input component associated with the reduced representation of the record. At block 290, the cloud server 135 establishes a communication channel between the user device for which the connection input component was selected and the destination device. The communication channel enables a user operating the user device (e.g., a physician treating the subject) to exchange messages or other data (e.g., a video feed) with a destination device (e.g., a physician at another hospital who has agreed to assist in the treatment of the patient) associated with the destination address for which the connection input component was selected.
[0060] In some embodiments, the cloud server 135 is configured to automatically determine the location of the user device and the location of the destination device where the connection input component was selected. The cloud server 135 can also compare the locations to determine whether to generate a condensed representation of the recording. For example, in block 260, the cloud server 135 can generate a condensed representation of the recording because the cloud server 135 determines that each destination address of the set of destination addresses is not co-located with the user device that initiated the consultation broadcast. In this case, the cloud server 135 can automatically determine to generate a condensed representation of the recording to comply with data privacy regulations. As another example, if the set of destination addresses are associated with the same entity as the user device that initiated the consultation broadcast, the cloud server 135 can transmit the recording in its entirety (e.g., without obfuscating any part of the recording) to the destination device associated with the destination address while complying with data privacy regulations.
[0061] In some embodiments, the cloud server 135 generates a plurality of other condensed record representations. Each of the plurality of other condensed record representations is associated with the other subject. The cloud server 135 transmits the plurality of other condensed record representations to a user device and receives a communication from the user device identifying a selection of a subset of the plurality of other condensed record representations. Each of the set of destination addresses is represented by one of the condensed record representations. For example, generating the condensed record representation includes determining a jurisdiction of the other subject associated with the condensed record representation, determining data privacy rules governing exchange of subject records within the jurisdiction, and generating the condensed record representation to comply with the data privacy rules. A first other condensed record representation of the plurality of other condensed record representations can include a particular type of data. A second other condensed record representation of the plurality of other condensed record representations can omit or obscure the particular type of data. For example, the particular type of data may be contact information, identifying information such as a name, a social security number, and other suitable information that can be used to uniquely identify the other subject.
[0062] In some implementations, the communication can be received at a central data store. The communication can be sent by a user device operated by a user and can include an identifier of a target subject record for the target subject. When the communication is received at the central data store, it can cause the central data store to query a set of stored subject records to identify an incomplete subset of the set of subject records. Each subject record of the incomplete subset can be identified and included in the incomplete subset because the subject record is determined to be similar to the target subject record along at least one dimension. The similarity between two subject records along a dimension can represent similarity with respect to data elements of the subject records, such as similarity with respect to symptoms, diagnoses, treatments, or any other suitable data elements. The one or more dimensions along which similarity or dissimilarity is determined can be automatically defined or user defined. Determining the similarity or dissimilarity between the target subject record and each subject record of the set of subject records stored in the central data store may include at least the following operations: retrieving the target subject record based on the identifier included in the communication, generating a transformed representation of the target subject record (or retrieving an existing transformed representation of the target subject record), and performing a clustering operation using the transformed representation of the target subject record and the transformed representation of each subject record of the set of subject records. The clustering operation may be performed on one or more dimensions (e.g., one or more features of the subject records). For example, the clustering operation may cluster the set of subject records stored in the central data store based on a data element that includes a value representing a symptom of the subject. The transformed representation of the target subject record may include a vector representation of a data element that includes a value representing a symptom of the subject. The vector representation of this data element of the target subject record may be compared to a vector representation of a corresponding data element in each subject record of the set of subject records to define a cluster of subject records. Each cluster of subject records may define a group of one or more subject records sharing a common characteristic associated with a data element selected as a dimension of similarity.For each cluster of subject records, a Euclidean distance between the transformed representation of the target subject record and other transformed representations of the set of subject records can be calculated. A subject record can be determined to be similar to a target subject record, for example, if the Euclidean distance between the transformed representation of the subject record and the transformed representation of the target subject record is within a threshold. Thus, the cloud-based application and the method performed by said application enable a user to identify and optionally share clinically relevant subject records for a reference subject.
[0063] II.B. Sharable Treatment Plan Definition Updates Based on Aggregated User Integration FIG. 3 is a flow chart illustrating a process 300 for monitoring the integration of a treatment plan definition (e.g., a decision tree or a processing workflow) by a user and automatically updating the treatment plan definition based on the monitoring results. The process 300 can be executed by the cloud server 135 to enable a user device to define a treatment plan for treating a population of subjects having a condition. The user device may distribute the treatment plan definition to user devices connected to an internal or external network. The user device receiving the treatment plan definition can decide whether to integrate the treatment plan definition into a custom rule base. The integration into the custom rule base can be monitored and used to automatically modify the treatment plan definition.
[0064] In block 310, the cloud server 135 stores interface data that causes a treatment plan definition interface to be displayed when a user device loads the interface data. The treatment plan definition interface is provided to each user device of the set of user devices when the user device accesses the cloud server 135 to navigate to the treatment plan definition interface. In some embodiments, the treatment plan definition interface allows a user to define a treatment plan for treating a population of subjects having a condition (e.g., lymphoma).
[0065] At block 320, the cloud server 135 receives a set of communications. Each communication of the set of communications is received from a user device of the set of user devices and generated in response to an interaction between the user device and the treatment plan definition interface. In some embodiments, the communications include, for example, one or more criteria for defining a population of subject records. Each criterion may be represented by a variable type. For example, the variable type may be a value or a variable used as a condition of the criterion. The variable type of the criterion of the rule may also be any value of the condition that constrains the population of subjects into an incomplete subgroup. For example, the variable type of a rule defining a population of pregnant women is "IF "subject is pregnant". The criteria may be a filter condition for filtering a pool of subject records. For example, the criteria for defining a population of subject records associated with subjects who may develop lymphoma may include the filter conditions "abnormality in anaplastic lymphoma kinase (ALK)" and "age 60 or older". The communications may also include a particular type of treatment for the condition. A particular type of treatment can be associated with a particular action (e.g., undergoing surgery) or refraining from a particular action (e.g., reducing salt intake) suggested to treat a symptom associated with a subject represented by a population of subject records.
[0066] At block 330, the cloud server 135 stores the set of rules in a central data store, such as the data registry 140 or any other centralized server in the cloud network 130. Each rule in the set of rules includes one or more criteria and a particular treatment type to be included in the communication from the user device. As an illustrative example, the rules represent a treatment workflow for treating lymphoma in a subject. The rules include the following criteria (e.g., a condition following an "IF" statement) and the following actions (e.g., a particular treatment type defined or selected by the user following a "THEN" statement): "IF "lymph node biopsy indicates lymphoma cells are present" and "blood test indicates lymphoma cells are present", THEN "treat with chemotherapy" and "active surveillance". Additionally, each rule in the set of rules is stored in association with an identifier corresponding to the user device from which the communication was received.
[0067] In block 340, the cloud server 135 identifies a subset of the set of rules that are available among the entities via the treatment plan definition interface. The subset of rules may include a subset of the set of rules that are associated with symptoms and that are distributed to external systems, such as other medical centers, for evaluation. For example, rules may be selected for inclusion in the subset of rules by evaluating characteristics of the rules or identifiers associated with the rules. The characteristics of the rules may include a code or flag stored or attached to the stored rules. The code or flag indicates that the rule is generally available to external systems (e.g., provided to the entities).
[0068] At block 350, for each rule of the subset of rules identified at block 340, the cloud server 135 monitors interactions with the rule. The interactions can include an external entity (e.g., outside the entity associated with the user that defined the treatment plan associated with the rule) integrating the rule into a custom rule base. For example, a user device associated with the external entity (e.g., other hospitals) evaluates the rules available to the external entity. The evaluation includes determining whether the rule is suitable for integration into a rule set defined by the external entity. A rule can be suitable if a user device associated with the external entity indicates that a treatment workflow defined using the rule is suitable for treating a condition corresponding to the rule. Continuing with the illustrative example above, a rule for treating lymphoma can be available to an external medical center. A user associated with the external medical center determines that the rule for treating lymphoma is suitable for integration into a rule set defined by the external medical center. Thus, after the rule is integrated into the custom rule base defined by the external medical center, other users associated with the external medical center can execute the integrated rule by selecting the integrated rule from the custom rule base. Additionally, the cloud server 135 monitors the integration of available rules by detecting a signal that is generated or caused to be generated when the treatment plan definition interface receives input from a user device associated with an external entity corresponding to the integration of a rule into the custom rule base.
[0069] As another illustrative example, a user device associated with an external entity integrates an interaction-specific modified version of a rule into a custom rule base using a treatment plan definition. The interaction-specified modified version of a rule is a portion of a rule selected for integration into the custom rule base. Selecting a portion of a rule for integration includes selecting fewer criteria than all criteria included in the rule for integration into the custom rule base. Continuing with the illustrative example above, a user device associated with an external entity selects the criterion "IF 'lymph node biopsy indicates the presence of lymphoma cells'" for integration into the custom rule base, but the user device does not select the criterion "blood test reveals the presence of lymphoma cells" for integration into the custom rule base. Thus, the interaction-specific modified version of the rule integrated into the custom rule base is "IF 'lymph node biopsy indicates the presence of lymphoma cells', THEN 'treatment with chemotherapy' and 'active surveillance'". The criterion "blood test reveals the presence of lymphoma cells" is removed from the rule to create an interaction-specified modified version of the rule and incorporated into the custom rule base.
[0070] In block 360, the cloud server 135 may detect that a modified version of the interaction-specified rule has been integrated into the custom rule base defined by the external entity. Upon detection, the cloud server 135 may update the rule stored in the central data store of the cloud network 130. The rule may be updated based on the monitored interaction. The term "base" in this example corresponds to "after evaluating" or "using the results of the evaluation" of the monitored interaction. For example, the cloud server 135 detects that a user device associated with the external entity has integrated a modified version of the interaction-specified rule. In response to detecting the modified version of the interaction-specified rule, the cloud server 135 may update the rule stored in the central data store from the existing rule to the modified version of the interaction-specified rule.
[0071] In some embodiments, the cloud server 135 updates the rules by generating an updated version that is utilized across external entities. Other original versions may remain unupdated and are provided to users associated with user devices that received one or more communications that identified the criteria and a particular type of treatment. For example, the cloud server 135 updates rules stored in the central data store, but the cloud server 135 does not update other rules in the set of rules stored in the central data store.
[0072] In some embodiments, the cloud server 135 can update the rules when an update condition is met. The update condition can be a threshold. For example, the threshold can be a number or percentage of external entities that have integrated modified versions of the rules into their custom rule base. As another example, the update condition can be determined using the output of a trained machine learning model. To illustrate, the cloud server 135 can input the detection signals received from the external entities into a multi-armed bandit model that automatically determines whether and / or when to utilize the rules and / or whether and when to utilize an updated version of the rules. To illustrate by way of non-limiting example only, the rules can be defined as executable code such that, when executed, the rules automatically query the central data store to identify a subset of the set of subject records for further analysis. Additionally, the rules can include one or more treatment protocols for treating the subjects associated with the identified subset of subject records. The rules can be defined as a workflow for defining a subset of the set of subject records and processing the subset associated with the subset of subject records. For example, a rule may include one or more criteria for filtering subject records from a set of subject records and executing a particular treatment protocol on subjects associated with the remaining subject records (e.g., the subject records remaining after filtering has been performed on the set of subject records). Although the rules are defined by a user of the first entity, the rules can be accepted (e.g., integrated into the rule base of the second entity), modified, or completely rejected by an external user (e.g., a doctor working at another hospital) of a second entity (e.g., the first entity and the second entity are two different medical facilities). In some examples, a feedback signal can be sent to the cloud server 135 each time the external user of the second entity accepts a rule and thus completely integrates the rule into its code base.In another example, a feedback signal may be sent to the cloud server 135 whenever a user of the second entity modifies a rule. In another example, a feedback signal may be sent to the cloud server 135 whenever a user of the second entity rejects a rule entirely. In each of the above examples, the feedback signal may include the rule (e.g., a rule identifier) and data indicating whether the rule was accepted, modified, or rejected. The multi-armed bandit model (executable by the cloud server 135) may be configured to intelligently select one of the original rule, the modified rule, or a completely different rule for broadcasting to external users of other entities. The selection of the original rule, the modified rule, or the different rule may be based at least in part on the configuration of the multi-armed bandit. In some examples, the multi-armed bandit may be configured by an ε-greedy search technique. In the ε-greedy search technique, the multi-armed bandit model may select the original rule for broadcasting to external users of other entities with a probability of “1-ε”, where ε represents the probability of searching for a new or modified rule. Thus, the multi-armed bandit model can select a modified version of the original rule or a completely new rule with a defined probability of ε. The multi-armed bandit model can modify ε based on feedback signals received from other entities. For example, if the feedback signals indicate that a rule has been modified in a particular way by different external users a threshold number of times, the multi-armed bandit model can learn to select the modified rule in a particular way to broadcast to the external users instead of broadcasting the original rule.
[0073] In some embodiments, the cloud server 135 identifies multiple rules in the rule set that include criteria corresponding to the same variable type and identify the same or similar types of treatments. The variable type may be a value or variable used as a condition of the criteria. The variable type of the criteria of the rule may also be any value of the condition that constrains the population of subjects into subgroups. For example, the variable type of a rule that defines a population of pregnant women is "IF "subject is pregnant". The cloud server 135 determines the new rule, which is a contracted representation of the multiple rules, when the new rule is sent to a server typically operated by other entities.
[0074] In some embodiments, the cloud server 135 provides another interface configured to receive the set of subject attributes. For example, a user operating a user device accesses the other interface and uses the other interface to select a subject record that includes the set of attributes. The selection of the subject record can cause the cloud server 135 to receive the set of subject attributes. The cloud server 135 identifies (e.g., determines) a particular rule whose criteria are met based on the set of subject attributes. For example, evaluates the set of attributes of the subject record against the criteria of the rule stored in the central data store. To illustrate, if the set of attributes includes a data field that includes a value of "is pregnant" and if the rule includes a single criterion of "IF "subject is pregnant", the cloud server 135 identifies the rule. The cloud server 135 updates the other interface to present the particular rule and each particular type of processing associated with the particular rule.
[0075] In some embodiments, the rule criteria is a variable type related to a particular demographic variable and / or a particular symptom-type variable. Non-limiting examples of demographic variables include any item of information that characterizes the demographics of a subject, such as age, sex, ethnicity, race, income level, education level, location, and other suitable items of demographic information. Non-limiting examples of symptom-type variables indicate whether a subject is currently or recently (e.g., at last visit, at intake, within 24 hours, within a week) experiencing a particular symptom (e.g., difficulty in breathing, loss of consciousness, fever above a threshold temperature, blood pressure above a threshold blood pressure, etc.).
[0076] In some embodiments, the cloud server 135 monitors data in a registry of subject records, such as subject records stored in the data registry 140. The cloud server 135 monitors data in the registry of subject records for each rule of the subset of rules (identified in block 340). The cloud server 135 identifies a set of subjects for which the criteria of the rule have been met and a particular treatment has been previously prescribed for the subjects. For each of the set of subjects, the cloud server 135 identifies a reported status of the subject as indicated from or using an assessment or test. For example, the reported status is any information that characterizes the subject's status in such aspects as whether the subject has been discharged from the hospital, whether the subject is alive, a measurement of the subject's blood pressure, the number of times the subject has woken up during a sleep stage, and other suitable status. The cloud server 135 determines an estimated responsiveness metric of the set of subjects to a particular treatment based on the reported status. For example, if the particular treatment of the rule is to prescribe a medication, the estimated responsiveness metric is a representation of the extent to which the medication has addressed the symptoms or condition experienced by the subject. As a non-limiting example, the estimated responsiveness metric of the set of subjects can be an average, weighted average, or any sum of the scores assigned to each subject in the set of subjects. The score can represent or measure the effectiveness of the subject's responsiveness to the treatment. In some examples, the cloud server 135 can generate a score representing the effectiveness of the subject's responsiveness to the treatment by using clustering techniques. To illustrate, as a non-limiting example, the set of subject records can represent subjects who have previously undergone a particular treatment protocol to treat a condition. Each subject record in the set of subject records can be labeled (e.g., by a user) as having one of a positive responsiveness to the particular treatment protocol, a neutral responsiveness to the particular treatment protocol, or a negative responsiveness to the particular treatment protocol. The set of subject records can then be divided into three subsets (e.g., clusters).The first subset of subject records can correspond to subjects who had a positive responsiveness to the particular treatment protocol, the second subset of subject records can correspond to subjects who had a neutral responsiveness to the particular treatment protocol, and the third subset of subject records can correspond to subjects who had a neutral responsiveness to the particular treatment protocol. The cloud server 135 can convert each subject record of the first subset of subject records to a transformed representation according to the implementations described above. The cloud server 135 can also convert each subject record of the second subset of subject records to a transformed representation using the techniques described above. Finally, the cloud server 135 can convert each subject record of a third subject of the subject records to a transformed representation using the techniques described above. In some implementations, determining the predicted responsiveness of the new subject to the particular treatment protocol can include converting the new subject record of the new subject to a new transformed representation. The new transformed representation can be compared to the transformed representation of each cluster or subset of subject records in a domain space (e.g., Euclidean space). If the new transformed representation is closest to the representative value (e.g., centroid) of the transformed representations associated with the first subset, the new subject is predicted to have a positive responsiveness to the particular treatment. If the new transformed representation is closest to the representative value (e.g., centroid) of the transformed representations of the second subset, the new subject is predicted to have a neutral responsiveness to the particular treatment. Finally, if the new transformed representation is closest to the representative value (e.g., centroid) of the transformed representations of the third subset, the new subject is predicted to have a negative responsiveness to the particular treatment protocol. The centroid may be a multidimensional average of the transformed representations associated with the subsets. The cloud server 135 may cause the estimated responsiveness metrics of the subset of the set of rules and the set of subjects to be displayed or presented in the treatment plan definition interface.
[0077] II.C. Providing Treatment Recommendations with Associated Efficacy Using Treatments Prescribed to Similar Subjects 4 is a flow chart illustrating a process 400 for recommending a treatment for a subject. The process 400 can be performed by the cloud server 135 to display the recommended treatments for the patient and the effectiveness of each recommended treatment on a user device associated with the medical entity. The recommended treatments can be identified using results of evaluating the effectiveness of treatments previously prescribed for similar subjects.
[0078] At block 410, the cloud server 135 receives input corresponding to a subject record characterizing an aspect of a subject. The input is received from a user device associated with the entity. Additionally, the input is received in response to the user device selecting or identifying the subject record using an interface associated with an instance of a platform configured to manage a registry of subject records. The user device can access the interface by loading interface data stored on a web server (not shown) connected within the cloud network 130. The web server may be included in the cloud server 135 or may run on the cloud server.
[0079] In block 420, the cloud server 135 extracts a set of subject attributes from the subject record received in block 410. The subject attributes characterize an aspect of the subject. Non-limiting examples of subject attributes include any information found in an electronic health record (e.g., the data elements described above), any demographic information, age, sex, ethnicity, recent or past symptoms, conditions, severity of conditions, and any other suitable information that characterizes the subject.
[0080] At block 430, the cloud server 135 generates an array representation of the subject record using the set of subject attributes (e.g., by transforming the subject record as described above). For example, the array representation is a vector representation of the values contained in the subject record. The vector representation may be a vector in a domain space, such as Euclidean space. However, the array representation may be any numerical representation of the values of the data elements of the subject record. In some embodiments, the cloud server 135 may perform a feature decomposition technique, such as singular value decomposition (SVD), to generate values representative of the set of subject attributes of the array representation of the subject record.
[0081] In block 440, the cloud server 135 accesses a set of other sequence representations characterizing the multiple other subjects. The sequence representations in the set of other sequence representations may be vector representations of subject records characterizing the multiple other subjects (e.g., one of the multiple other subjects).
[0082] At block 450, the cloud server 135 determines a similarity score representing the similarity between the array representation representing the subject and each of the array representations of the other subjects. For example, the similarity score is calculated using a function of the distance (in domain space) between the array representation representing the subject and the array representation representing the other subjects. As an illustrative and non-limiting example, the similarity score may be calculated using a range from "0" to "1", with "0" representing a distance above a defined threshold and "1" representing the array representations having no distance between them. By way of illustrative and non-limiting example only, the similarity score may be based on the Euclidean distance between the two array representations (e.g., vectors).
[0083] At block 460, the cloud server 135 identifies a first subset of the plurality of other subjects. A subject may be included in the first subset if the similarity score associated with the subject is within a predetermined absolute or relative range. Similarly, at block 470, the cloud server identifies a second subset of the plurality of other subjects. However, a subject may be included in the second subset if the similarity score of the subject is within another predetermined range.
[0084] At block 480, the cloud server 135 obtains record data for each subject in the first and second subsets of the plurality of other subjects. The record data includes attributes included in the subject record that characterize the subject. For example, the subject record data identifies a treatment the subject received and the subject's responsiveness to the treatment. The responsiveness to the treatment can be represented by text (e.g., "the subject responded positively to the treatment") or a score indicating the extent to which the subject responded positively or negatively to the treatment (e.g., a score from "0" to "1" with "0" indicating a negative responsiveness and "1" indicating a positive responsiveness). In some examples, the treatment responsiveness can indicate the extent to which the subject responded positively to a treatment previously administered to the subject. For example, the treatment responsiveness may be numeric (e.g., a score from "0" to "10") or non-numeric (e.g., a word assigned to represent a responsiveness such as "positive," "neutral," or "negative"). In some examples, the treatment responsiveness for previously treated subjects may be user-defined. In other examples, the treatment response may be determined automatically based on the results of a test or measurement from a user, for example, based on values contained in a blood test administered to the subject.
[0085] At block 490, the cloud server 135 generates an output that is presented to an interface on the user device. The output may, for example, indicate one or more treatment recommendations for the subject. The one or more treatment recommendations may be determined, for example, based on treatments received by other subjects in the first and second subsets, treatment responsiveness of the subjects in the first and second subsets, and differences between subject attributes of the subjects in the second subset and subject attributes of the subjects.
[0086] In some embodiments, the cloud server 135 determines that the subject and one of the subjects from the first or second subset are being or have been treated by the same medical entity. The cloud server 135 determines that the subject and the other subject of the first or second subset are being or have been treated by different medical entities. The cloud server 135 can utilize different obfuscated versions of the subject's records via the interface. The cloud-based application can automatically provide the entity with different obfuscated versions of the records based on various constraints imposed on data sharing by data privacy regulations of different jurisdictions. In some embodiments, the cloud server 135 identifies the first and second subsets of subject records by performing a clustering operation on a transformed representation of the set of subject records.
[0087] II.D. Automatic Obfuscation of Query Results from External Entities FIG. 5 is a flow chart illustrating a process 500 for obfuscating query results to comply with data privacy regulations. The process 500 can be executed by the cloud server 135 as an execution rule to ensure that data sharing of subject records with external entities is compliant with data privacy regulations. A cloud-based application can enable a user device to query the data registry 140 for subject records that satisfy query constraints. However, the query results may include data records originating from external entities. Thus, the process 500 enables the cloud server 135 to provide additional information about a treatment from external entities to a user device while complying with data privacy regulations.
[0088] At block 510, the cloud server 135 receives a query from a user device associated with a first entity. For example, the first entity is a medical center associated with a first set of subject records. The query may include a set of symptoms associated with a medical condition, or any other information that constrains the query search of the data registry 140.
[0089] At block 520, the cloud server 135 queries the database using the query received from the user device. At block 530, the cloud server 135 generates a data set of query results corresponding to the set of symptoms and associated with the medical condition. The query results corresponding to the set of symptoms can include subject records including at least one of the set of symptoms. For example, the user device sends a query for subject records of subjects diagnosed with lymphoma. The query results include at least one subject record from a first set of subject records (originating from or created at the first entity) and at least one subject record from a second set of subject records associated with a second entity (e.g., a medical center different from the first entity). Each of the subject records from the first set of subject records and the second set of subject records can include a set of subject attributes. The subject attributes can characterize any aspect of the subject.
[0090] At block 540, the cloud server 135 presents (e.g., utilizes, or otherwise makes available) to the user device an entire set of subject attributes for the subject records included in the first subject record set as these records originate from the first entity. Presenting the subject records in their entirety includes making the set of attributes included in the subject records available to the user device for evaluation or interaction using an interface. At block 550, the cloud server 135 also, or alternatively, utilizes to the user device an incomplete subset of the set of subject attributes for each subject record included in the second subject record set. Providing the incomplete subset of the set of subject attributes provides anonymity to the subject as the incomplete subset of the subject attributes cannot be used to uniquely identify the subject. For example, providing the incomplete subset may include available 4 of the 10 subject attributes to anonymize the subject associated with the 10 subject attributes. In some embodiments, at block 550, the cloud server 135 utilizes an obfuscated set of subject attributes for each subject record included in the second subject. Obfuscating the set of attributes includes reducing the granularity of the information provided. For example, instead of utilizing a subject attribute of the subject's address, the obfuscated attribute may be a zip code or the state the subject lives in. Regardless of whether an incomplete subject or obfuscated subset is available, the cloud server 135 anonymizes the subjects associated with the subject records.
[0091] II.E. Chatbot Integration with Self-Learning Knowledge Base FIG. 6 is a flow chart illustrating a process 600 for communicating with a user using a bot script, such as a chatbot. The process 600 can be executed by the cloud server 135 to automatically link a new question provided by a user to an existing question in a knowledge base to provide a response to the new question. The chatbot can be configured to provide answers to questions related to symptoms. For example, the questions can relate to identifying a diagnosis, prognosis and / or treatment for a subject. Thus, the process described below can be implemented as part of a computer-implemented method for diagnosing a symptom associated with a subject, a computer-implemented method for identifying a treatment or treatment plan for a subject, or a computer-implemented method for providing a prognosis for a subject.
[0092] In block 605, the cloud server 135 defines a knowledge base that includes a set of answers. The knowledge base may be a data structure stored in memory. The data structure stores text that represents a set of answers to defined questions. Each answer may be selectable by the chatbot in response to a question received from the user device during a communication session. The knowledge base may be automatically defined (e.g., by retrieving text from a data source and parsing the text using natural language processing techniques) or may be user-defined (e.g., by a researcher or physician).
[0093] In block 610, the cloud server 135 receives a communication from a particular user device. The communication corresponds to a request to initiate a communication session with a particular chatbot. For example, a doctor or a subject may operate the user device to communicate with the chatbot in a chat session. The cloud server 135 (or a module stored within the cloud server 135) may manage or establish the communication session between the user device and the chatbot. In block 615, the cloud server 135 receives a particular question from the particular user device during the communication session. The question may be a string of characters that is processed using natural language processing techniques.
[0094] In block 620, the cloud server 135 queries the knowledge base using at least some words extracted from the particular question. The words may be extracted from the string representing the particular question using natural language processing techniques. In block 625, the cloud server 135 determines that the knowledge base does not contain a representation of the particular question. In this case, the received question may be newly posted to the chatbot. In block 630, the cloud server 135 identifies other question representations from the knowledge base. The cloud server 135 may identify other question representations by comparing the question received from the user device with other question representations stored in the knowledge base. For example, if similarity is determined based on an analysis of the question representation using natural language processing techniques, the cloud server 135 identifies other question representations.
[0095] At block 635, the cloud server 135 retrieves the answer from a set of answers associated with other question representations in the knowledge base. At block 640, the answer retrieved at block 635 is sent to the particular user device as an answer to the received question, even if the knowledge base did not contain a representation of the received question. At block 645, the cloud server 135 receives an indication from the particular user device. For example, an indication may be received in response to the user device indicating that the answer provided by the chatbot responded to the particular question.
[0096] In block 650, the cloud server 135 updates the knowledge base to include the representation of the particular question or a different representation of the particular question. For example, storing the representation of the question may include storing keywords included in the question in a data structure. The cloud server 135 may also associate the same or different representation of the particular question with more answers sent to the particular user device.
[0097] In some embodiments, the cloud server 135 accesses a subject record associated with a particular user device. The cloud server 135 determines multiple answers to a particular question. The cloud server 135 then selects an answer from the set of answers. However, the selection of the answer is based at least in part on one or more values included in the subject record associated with the particular user device. For example, the values included in the subject record can represent symptoms recently experienced by the subject. The chatbot may be configured to select an answer according to the symptoms recently experienced by the subject. In some examples, the cloud server 135 can access a learning-to-rank machine learning model trained to predict the order of each answer in the set of answers. The learning-to-rank machine learning model can be trained using a training set of answers. Each answer in the training set of answers may be labeled with one or more symptoms and a relevance score for the symptoms. The relevance score can represent the relevance of the associated answer to a given symptom of the one or more symptoms. The relevance score may be user-defined or may be automatically determined based on certain factors, such as the frequency of words (e.g., words for symptoms) in the training answers. The set of training answers may differ from the set of answers used when the chatbot is operating in a production environment. The learn-to-rank machine learning model can learn how to order a set of answers (to be used in a production environment) with respect to relevance to symptoms (detected from the subject profile) based on patterns (e.g., patterns between a training set of labeled answers for each symptom of one or more symptoms and associated relevance scores) learned by the learn-to-rank model. The chatbot can select an answer from the set of answers to be used in a production environment based on the predicted answer ordering. In some examples, each answer in the set of answers may be associated with a tag or code that indicates one or more symptoms associated with the answer. The cloud server 135 can compare a value representing a symptom recently experienced by the subject to the tag or code associated with each answer.
[0098] III. Further Considerations Some embodiments of the present disclosure include a system including one or more data processors. In some embodiments, the system includes a non-transitory computer-readable storage medium including instructions that, when executed on the one or more data processors, cause the one or more data processors to perform some or all of one or more methods and / or some or all of one or more processes disclosed herein. Some embodiments of the present disclosure include a computer program product tangibly embodied in a non-transitory machine-readable storage medium including instructions configured to cause the one or more data processors to perform some or all of one or more methods and / or some or all of one or more processes disclosed herein.
[0099] The terms and expressions used are used as terms of description and not of limitation, and in the use of such terms and expressions there is no intention to exclude equivalents of the features shown and described or portions thereof, but it is recognized that various modifications are possible within the scope of the invention as claimed. Thus, although the invention as claimed has been specifically disclosed by embodiments and optional features, it will be understood that modifications and variations of the concepts disclosed herein may be resorted to by those skilled in the art, and such modifications and variations are considered to be within the scope of the invention as defined by the appended claims.
[0100] The following description provides only preferred exemplary embodiments and is not intended to limit the scope, applicability, or configuration of the present disclosure. Rather, the following description of preferred exemplary embodiments provides those skilled in the art with an enabling description for implementing various embodiments. It will be understood that various changes can be made in the function and arrangement of elements without departing from the spirit and scope of the appended claims.
[0101] Specific details are given in the following description to provide a thorough understanding of the embodiments. However, it will be understood that the embodiments can be practiced without these specific details. For example, circuits, systems, networks, processes, and other components may be shown as components in block diagram form so as not to obscure the embodiments in unnecessary detail. In other examples, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail so as to avoid obscuring the embodiments.
Claims
1. 1. A computer-implemented method for assisting in the clinical evaluation of a subject, comprising: receiving, at the computing system, from a user device, a set of attributes of the subject identified by a user using an interface, the set of attributes characterizing the subject and one or more conditions of the subject; generating a record for the subject, the record indicating each of the set of attributes, the record including a data element including a non-numeric value representing a symptom of the one or more symptoms; converting the non-numeric value representing the symptom into a transformed representation, the transformed representation numerically representing the non-numeric value, using a text vectorization technique to generate vectors that numerically represent text associated with one or more elements contained in the non-numeric value; storing said records in a central data store; receiving a request submitted via the interface to initiate a consultation broadcast; querying the central data store using the transformed representation, said querying including comparing the transformed representation of the non-numeric value with other transformed representations of other non-numeric values included in other data elements of other records; identifying a set of other records similar to the record for the subject based on results of the comparison; and identifying a set of destination addresses to which the consultation broadcast may be sent in response to the request, each of the set of destination addresses being associated with a care provider of another subject associated with one or more of the other sets of records; generating a condensed representation of the record for the subject that omits or obscures at least some of the set of attributes used to uniquely identify the subject; transmitting the condensed representation of the record having selectable elements to each of the set of destination addresses identified for transmitting the consultation broadcast; receiving, from another device corresponding to the destination address from the set of destination addresses, a communication generated by the other device selecting the selectable element; establishing a communication channel between the user device and the other device that selected the selectable element.
2. 2. The computer-implemented method of claim 1, wherein facilitating the clinical evaluation includes one or more of identifying a treatment for the subject, identifying a condition associated with the subject, and determining a prognosis for the subject, wherein the identifying and / or determining is based on the other set of records and / or the user device and the other device are associated with different medical institutions.
3. converting the non-numeric value representing the symptom into the converted representation; identifying one or more words from the non-numeric value that represent the one or more symptoms; inputting each word of the one or more words into a word-to-vector machine learning model trained to generate a vector representation of the word; 3. The computer-implemented method of claim 1, further comprising: generating the transformed representation as a vector representation based on an output of the word-to-vector machine learning model by combining the outputs, the transformed representation being an N-dimensional vector characterizing each word of the one or more words.
4. Comparing the transformed representation of the non-numeric value to another transformed representation of another non-numeric value, 4. The computer-implemented method of claim 1, further comprising determining a distance in a domain space between the transformed representation and the other transformed representation, the distance representing a degree to which the recording and the other recording are similar.
5. The computer-implemented method of claim 4 , wherein the domain space is a Euclidean space.
6. The computer-implemented method of claim 4 , wherein the recording and the other recording are determined to be similar when the distance between the transformed representation and the other transformed representation is within a threshold.
7. For each of a plurality of other contracted record representations, determining jurisdictions corresponding to other subjects corresponding to the other condensed record representations; and determining one or more other data privacy regulations associated with the jurisdiction; and 7. The computer-implemented method of claim 1, further comprising: generating the other condensed record representation based on the one or more other data privacy rules, wherein a first other condensed record representation among the plurality of other condensed record representations includes a particular type of data and a second other condensed record representation among the plurality of other condensed record representations omits or conceals the particular type of data.
8. Querying the central data store, determining, for each other record of the plurality of other records, a score characterizing a similarity between at least a portion of the other record and at least a portion of the record for the subject, the similarity being determined based on a distance between the transformed representation and a transformed representation of each other record of the plurality of other records in a domain space; The computer-implemented method of claim 1 , further comprising: defining the set of other records to be a subset of the plurality of other records associated with the score within a threshold.
9. identifying another data element of a set of data elements included in the record, the other data element including image data representative of an image associated with the subject; inputting the image data into a trained autoencoder neural network; 9. The computer-implemented method of claim 1, further comprising: generating a dimensionality-reduced version of the image data based on an output of the trained autoencoder neural network, wherein the dimensionality-reduced version of the image data is used as the transformed representation of the image data.
10. identifying other data elements of the set of data elements included in the record, the other data elements including time-varying information representative of a series of events associated with the subject; The computer-implemented method of claim 1 , further comprising: converting the time-varying information into the transformed representation.
11. identifying other data elements of the set of data elements included in the record, the other data elements including time-varying information representative of a series of events associated with the subject; converting the time-varying information into the transformed representation; 10. The computer-implemented method of claim 9, further comprising generating a transformed representation characterizing the set of data elements included in the record by combining the transformed representation of the non-numeric values, the transformed representation of the image data, and the transformed representation of the time-varying information.
12. 12. The computer-implemented method of claim 11, further comprising identifying similar records from the set of other records, the similar records being identified based on a comparison between the transformed representation characterizing the record and other transformed representations characterizing the other records.
13. The computer-implemented method of claim 1 , wherein the query of the central data store further uses at least a portion of demographic information to identify the set of other records.
14. The computer-implemented method of claim 1 , wherein the communication channel is a secure chat room.
15. 1. A system comprising: one or more processors; A non-transitory computer-readable storage medium comprising instructions that, when executed on the one or more processors, cause the one or more processors to perform operations of the computer-implemented method of any one of claims 1 to 14.
16. A definition of a treatment plan for treating a population of subjects is shared between the user device and the other device by distribution.
14. A computer-implemented method according to any one of claims 1 to 13.
Citation Information
Patent Citations
Similar case browsing system and similar case browsing method
JP2012198846A
Image viewing architecture with an integrated, collaborative, and secure file transfer mechanism.
JP2015524112A