Systems, Devices, and Methods for Assembling and Presenting Interactive Electronic Documents
The computing system uses NO-CODE or LOW-CODE statements to separate and define navigation, branching, and verification logic, addressing inefficiencies in existing technologies by enabling flexible and efficient assembly and presentation of interactive electronic documents across diverse devices and UI elements.
Patent Information
- Application Number
- JP2024571022
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-12-15
- Filing Date
- 2023-05-31
- Publication Date
- 2025-07-15
AI Technical Summary
Existing technologies for generating interactive electronic documents, such as clinical questionnaires and consent forms, are inefficient and fragile, requiring extensive re-verification of the entire workflow for even minor changes due to their reliance on high-code approaches.
A computing system that utilizes NO-CODE or LOW-CODE statements to define navigation, branching, and verification logic, allowing for the separation of definitional, translational, and layout aspects of interactive electronic documents, enabling flexible and efficient assembly and presentation on various devices.
Enables scalable and efficient construction of interactive electronic documents with enhanced flexibility and completeness, allowing seamless implementation across different UI elements and natural languages without altering the document's composition.
Smart Images

Figure 2025522332000001_ABST
Abstract
Description
Technical Field
[0001] Cross - Reference to Related Applications This application claims the benefit and priority of U.S. Provisional Patent Application No. 63 / 347,442, filed May 31, 2022, and U.S. Provisional Patent Application No. 63 / 412,838, filed Oct. 3, 2022, and is a continuation of U.S. Application No. 17 / 968,680, filed Oct. 18, 2022, which claims the benefit and priority of U.S. Application No. 18 / 066,462, filed Dec. 15, 2022, the contents of which are hereby incorporated by reference in their entirety.
Background Art
[0002] Typical approaches for generating interactive electronic documents typically involve using a declarative description of the structure of the interactive electronic document and the branching logic associated with the interactive electronic document. The declarative description may be well - suited for simple interactive electronic documents, but the suitability of the declarative description can be insufficient for more sophisticated interactive electronic documents having rich interactivity requirements, deep logic, and / or complex verification constraints. Examples of such more sophisticated interactive electronic documents include clinical questionnaires, detailed consent forms, guides for stand - alone tasks, and the like.
[0003] Other existing approaches for generating interactive electronic documents may rely on large amounts of program code that make up the interactive electronic document. Such an approach may be referred to as a high-code approach and provides extensive flexibility by construction. That is, almost any adjustment to an interactive electronic document can be implemented by adjusting the code base that forms the document. However, the high-code approach is time-consuming and quite fragile. In fact, changes to a portion of an interactive electronic document configured using the high-code approach may require re-verification of the entire workflow that underpins the interactive electronic document, regardless of the scope of the change.
[0004] Accordingly, much remains to be improved in the technology for assembling and presenting electronic questionnaires, and more generally, interactive electronic documents. SUMMARY OF THE INVENTION
[0005] It should be understood that both the following summary description and the following detailed description of the invention are merely illustrative and explanatory and not restrictive.
[0006] In one embodiment, the present disclosure provides a computing system. The computing system includes a computing device. The computing device includes at least one processor that executes computer-executable components stored in at least one memory device. The computer-executable components can include a runtime component configured to apply navigation rules corresponding to a navigation mode for a series of views, where at least one of the series of views can include respective prompts. The series of views, and the logic that can be associated therewith, can be configured in terms of human-readable content formatted as NO-CODE statements or LOW-CODE statements, or combinations thereof. The computer-executable components can also include a coordination component configured to cause the presentation of at least one of the series of views in response to the runtime component applying the navigation rules. The computer-executable components can also include a presentation component configured to render respective user interfaces corresponding to at least one view.
[0007] Additional elements or advantages of the present disclosure are in part set forth in the description that follows, and in part will be obvious from the description, or may be learned by practice of the present disclosure. The advantages of the present disclosure may be realized and attained by means of the elements and combinations particularly pointed out in the appended claims.
[0008] This summary is not intended to identify key or essential features of the present disclosure, but is merely intended to summarize specific features and variations thereof. Other details and features are described in the sections that follow. Further, both the foregoing summary description and the following detailed description of the embodiments for carrying out the invention are merely illustrative and explanatory and are not restrictive of the embodiments of the present disclosure.
[0009] The accompanying drawings, which are an essential part of this disclosure, are incorporated herein. The drawings illustrate exemplary embodiments of this disclosure and, in conjunction with the specification and the claims, serve to at least partially explain the various principles, elements, or aspects of this disclosure. The embodiments of this disclosure will be more fully described below with reference to the accompanying drawings. However, the various elements of this disclosure can be implemented in many different forms and should not be construed as limited to the implementation modes described herein. Like numerals refer to like elements throughout.
Brief Description of the Drawings
[0010]
Figure 1
Figure 2
Figure 3
Figure 4A
Figure 4B
Figure 5
Figure 6A
Figure 6B
Figure 7
Figure 8A
Figure 8B
Figure 9
Figure 10A
Figure 10B
Figure 10C
Figure 10D
Figure 11A
Figure 11B
Figure 12A
Figure 12B
Figure 13
Figure 14
Figure 15
Figure 16
Figure 17
Figure 18
Best Mode for Carrying Out the Invention
[0011] Among other technical problems, the present disclosure recognizes and addresses the problems of assembling and presenting interactive electronic documents. An example of an interactive electronic document is an electronic clinical outcome assessment (eCOA). Another example of an interactive electronic document is an electronic consent form. As described in more detail below, embodiments of the present disclosure separate (i) definitional aspects involved in the composition of a series of views, and various logics associated with the series of views, such logics including, for example, navigation logic, branching logic, and verification logic, and (ii) the composition of translational aspects involved in the consumption of the series of views in a desired natural language, and (iii) layout aspects involved in the composition of the layout of UI elements corresponding to each view of the series of views on a particular computing device having a defined set of resolutions, thereby enabling the assembly and presentation of interactive electronic documents. By separating those aspects, embodiments of the present disclosure provide greater flexibility and efficiency over existing technologies in the development and presentation of interactive electronic documents. More specifically, in contrast to existing technologies, by separating those aspects, embodiments of the present disclosure enable a scalable and efficient use of computing resources when constructing interactive electronic documents having a full range of complexities from simple documents to highly complex documents. Additionally, by separating those aspects, embodiments of the present disclosure also provide greater completeness with respect to the validity of the elements that make up the interactive electronic document. Such flexibility can include a seamless implementation of an interactive electronic document for presentation on a computing device having a desired type of UI element library (native or custom) without changing the existing composition of the translational aspects and / or the definition of the views and associated logics. The computing device can be a personal computing device or an institutional computing device (such as a computing device provided by a hospital, a test center, a public library, or the like).
[0012] Referring to the drawings, FIG. 1 illustrates an example of a computing system 100 according to one or more embodiments of the present disclosure. The illustrated computing system 100 includes a computing device 110 that can include a software application 114 (e.g., a mobile application, a web application, a web browser, or another type of application). In response to being executed, the software application 114 can cause a display device 120 to present a plurality of user interfaces 130 (UI 130) that can form part of a series of views. Each view of the series of views can include one or more prompts. A prompt can be a question or a call to action. The plurality of user interfaces 130 can be presented sequentially or as a sequence of views in a series of views, and each UI of the plurality of UIs 130 embodies a view of the series of views. In some cases, the series of views forms a questionnaire or otherwise represents, and the sequence of the plurality of user interfaces 130 embodies a digital (or electronic) instance of the questionnaire. The questionnaire can correspond to a clinical outcome assessment (COA), a triage assessment, a neuropsychological assessment, a college admissions suitability assessment, a vocational assessment, a professional certification qualification assessment, a licensing assessment, or the like. The COA and the corresponding eCOA instance implemented in accordance with the present disclosure can include a patient-reported outcome (PRO), a performance outcome (PerfO), a clinician-reported outcome (ClinRO), or an observer-reported outcome (ObsRO) that a patient can complete the COA. The plurality of UIs 130 can include, for example, a combination of a landing page (e.g., an index page or a table of contents), a section of a questionnaire, a results (s) page, a results summary page, and the like. In other cases, the series of views forms or otherwise represents another type of document, and the sequence of the plurality of user interfaces 130 embodies a digital (or electronic) instance of the document.Merely by way of illustration, in such other cases, a series of views can represent a consent document, a privacy practice document, a waiver consent document, a stand-alone task guide (e.g., an installation guide or a troubleshooting guide), or the like.
[0013] The navigation mode can indicate the manner of traversal of a series of views (e.g., a questionnaire, a consent document, or the like). Thus, the specific views presented in a sequence of multiple UI130s can be at least partially indicated by the navigation mode. The execution of the software application 114 can cause the display device 120 to sequentially present (e.g., one after another) multiple UI130s and according to one of several navigation modes. In other words, during the execution of the software application 114, a series of views (e.g., a questionnaire or a consent document) including multiple UI130s can be traversed according to a specific navigation mode among several navigation modes.
[0014] Some navigation modes can include, for example, a linear mode, a hub and spoke mode, and a computerized adaptive testing (CAT) mode. For illustrative purposes, the linear mode causes a series of views to be traversed one view at a time, in order, until all views in the series have been traversed. Each view is selectable and includes a control element (such as a "next" button) that advances the view to the next successive view in response to being selected. That is, each UI corresponding to each view includes a control element, and the selection of the control element causes the display device 120 to transition from the current view to the next successive view. In an exemplary scenario where the series of views is an eCOA, such a linear mode is the primary mode used for subject record outcomes (also referred to as subject-reported outcomes).
[0015] As a further example, the hub and spoke mode enables fast navigation to the appropriate sections of a series of views. As part of the navigation of a series of views in such a mode, a particular view corresponding to the table of contents (hub) can be displayed on the display device 120 that lists all sections within the series of views. Each section of the table of contents can be displayed using selectable UI elements. That particular view can also include an indication showing the percentage of sections that are completed. The end user can select (e.g., click or tap) a section, answer the questions (spokes), and then return to the table of contents. In an exemplary scenario where the series of views is an eCOA, the hub and spoke mode is typically the relevant mode used for medical staff to record outcomes. In such a scenario, the hub and spoke mode is used to record responses from a subject interview, where the subject can quickly answer different questions in different sections as the subject describes their symptoms and outcomes. Thus, the medical staff needs to be able to navigate efficiently across different sections.
[0016] As a further example, the CAT mode enables dynamic adjustment of navigation between views within a series of views when an end user responds to prompts within the view. The transition from a first section in a series of views to a second section in the series of views can be based on the content of the response(s) to the prompt(s) in the first section. In one example, where the series of views represents an eCOA, depending on the response to the question in the first section that assesses pain, the questionnaire flow can proceed to either a second section (e.g., in the case of mild pain) that probes how well the subject is feeling, or alternatively, a third section (e.g., in the case of severe pain) that probes whether the pain is manageable. In an exemplary scenario where the series of views corresponds to an electronic assessment (e.g., eCOA, electronic consent assessment, etc.), the CAT mode can update the score while the electronic assessment is in progress (e.g., while the series of views is being traversed), and use intermediate updates to the score to select further questions to be presented to obtain more accurate results.
[0017] Rather than being statically implemented, as in a typical case in the existing technology, the navigation mode can be defined dynamically at runtime of the software application 114. The navigation mode can be defined as a group of rules (referred to as a rule set). Regardless of its type, the navigation mode can be defined as a rule set having one or more rules. The software application 114 includes a runtime component 140 that can obtain a group of rules in response to the start of the execution of the software application 114. The group of rules can be obtained from the primary memory device (not depicted in FIG. 1) of the computing device 110. Obtaining the group of rules can include loading, or otherwise receiving, data defining the group of rules from the primary memory device. As a result, the runtime component 140, and thus the software application 114, can be configured according to the navigation mode. More specifically, as shown in FIG. 2, the runtime component 140 can include an import component 210 that can obtain a group of rules 204a defining the navigation mode. The group of rules 204a can be obtained in a native format for a rule library 240 included in the runtime component 140. The import component 210 can pass, or otherwise transmit, the group of rules 204a (or data defining such rules) to the rule library 240.
[0018] The runtime component 140 can also obtain definition data that defines a series of views (e.g., questionnaires). The definition data can be included in a configuration file within the configuration package 116 obtained by the computing device 110. The definition data is graphically represented in FIG. 1 as a block with the letter “+D”. The series of views can be defined in terms of human-readable content formatted according to a Core Definition Language (CDL). For illustrative purposes, CDL refers to a set of files in a particular format that define instructions for forming views and prompts and for defining logical statements and logical formulas related to interactive electronic documents. Additionally, since each type of file is defined by a set of grammar and rules, CDL can be referred to as the language of interactive electronic documents. As described herein, CDL can be represented using JSON for describing interactive electronic documents and a JSON schema for the grammar of statements for describing interactive electronic documents. The present disclosure is, of course, not limited in that regard, and other forms of CDL other than JSON and related JSON schemas are contemplated. In some aspects, regardless of the form, CDL can define code and rely on the code to identify various types of objects each having one or more attributes. The code uniquely identifies a prompt, text, or another object that makes up an interactive electronic document. Thus, the code can provide a reference into the interactive electronic document.
[0019] The definition data can include human-readable content that defines a data structure for each view of a series of views. The human-readable content can be, for example, NO-CODE statements or LOW-CODE statements, or can include them. The definition data can also include a second human-readable content that defines branching logic for a series of views. The branching logic can include one or more statements. An example of a branching logic statement is "if question5.response>5 then GOTO section 3," which represents the following logic: when the response to question 5 has a value greater than 5, proceed to section 3 in the interactive electronic document. In some cases, the second human-readable content also defines one or more verification conditions and one or more actions. Each action (or, in some cases, at least one action) of the actions responds to at least one outcome of the verification condition(s). An example of an action is the presentation of a specific error message based on the outcome of the verification condition. As shown in Figure 2, the capture component 210 can obtain definition data 204b that defines a series of views. The definition data 204b can include a definition structure 214 and a logic structure 218. Each definition structure of the definition structure 214 defines each view of a series of views (for example, a question in a questionnaire). Each logic structure of the logic structure 218 can define each logic statement included within the view definition 204b. The logic statement refers to either a logic or an expression, and can be formatted as a NO-CODE representation or a LOW-CODE representation of the logic or expression, or can be expressed otherwise. The logic statement can be expressed in a LOW-CODE format or a NO-CODE format as either an IF-predicate-THEN-action statement, or an IF-predicate-THEN-action A-ELSE-action B statement.When the no-code approach is adopted, during the configuration of the +D component of the configuration package 116, the predicate representing the IF part of the logical statement can be defined by selecting from a menu of pre-set conditions (e.g., the subject is male, the subject is non-binary, the subject is Hispanic, etc.) or expressions. For example, the condition "the subject is male" can be constructed by selecting "gender" from a first menu (e.g., a graphical drop-down menu), then selecting "equal" from the first menu or a second menu, and then selecting "male" from the first menu or yet another menu. Similarly, the action(s) associated with the logical statement can also be selected from a menu of pre-set actions. Examples of actions in the menu of pre-set actions can be "gray out(question_n)" and "highlight(question_m)". Further, since the +D component can be updated and then supplied to the computing device 110 as the updated configuration package 116, the logical statement defined by the logical structure 218 can be modified as desired without causing a change to the definition of a series of views. In other words, the embodiments of the present disclosure enable flexible adjustment of various logics associated with a series of views independently of the definition of the series of views themselves.
[0020] The logical structure of the logical structure 218 can define logical statements targeting, for example, branching logic, verification logic, invalidation logic, scoring logic, export logic, or combinations thereof. Branching logic refers to the logic that, based on specific conditions, instructs the transition from the current prompt to the next prompt. Verification logic indicates the existence of an invalid response to a prompt based on specific conditions. Invalidation logic instructs the exclusion of one or more next prompts based on a specific response to the current prompt. Scoring logic indicates the manner of evaluating one or more responses to a group of prompts associated with a series of views. Export logic can indicate the manner of exporting responses to prompts and / or other data associated with the traversal of a series of views.
[0021] Since the CDL does not need to conform to the native format of the rule library 240, the branching logic structure 218 may not be formatted according to its native format. Accordingly, the runtime component 140 can include a logical translator component 220 (also referred to as the logical translator 220) that can convert the branching logic structure 218 into a group of rules formatted according to the native format of the rule library 240. The runtime component 140 can combine, for example, (i) the group of rules resulting from the conversion of the branching logic structure 218 and (ii) the group of rules 204a corresponding to the desired navigation mode for traversing a series of views (e.g., questionnaires or consent documents) via, for example, the logical translator component 220. The runtime component 140 can then hold the group of rules resulting from such a combination within the rule library 240 as a rule set of the rule sets 244. The combined group of rules can instruct how an end user is to interact with a series of views. If the series of views corresponds to a questionnaire, the combined group of rules can instruct how an end user (e.g., a patient, clinician, or other subject) is to answer the questionnaire.
[0022] At runtime, the definition structure 214 and the specific rule set, which are configured using the navigation mode rules 204a and the logical structure 218 (obtained from the view definition 204b), can specify a series of views in terms of the logic and assembly of a series of views. To apply that logic, the runtime component 140 can access the rule library 240 and can include a rule component 230 (such as a rule engine) that can implement (e.g., interpret or otherwise execute) each rule within the specific rule set. In some cases, in response to implementing one or more rules within the specific rule set, the rule component 230 can enable one or more navigation mode rules derived from the group of rules 204a to be overridden by the logical structure 218. In such a case, the translated rules from the logical structure 218 can take precedence over the translated rules from the navigation mode rules 204a. An example is the branching logic from question Q u (in the case of a questionnaire), where, because question Q u received a "yes" answer, the next question to be answered is question Q v (where v is different from u + 1). Such a transition indicates that the subsequent question after Q u is question Q u+1Override the linear mode that defines it to be. The implementation of such override rules existing in the rule set can, in some cases, trigger the implementation of defined actions such as graying out sections. Thus, override rules can be more than just branching logic. In other words, override rules contain if-then statements and, for example, execute defined actions in response to a conditional statement being satisfied. For example, IF question5.response>7 THEN greyout-section(6), or IF question.6.response>2 THEN next-question(8). FIG. 3 illustrates an example of elements of the runtime component 150 related to the operation of the rule component 230 according to one or more embodiments of the present disclosure. The rule component 230 can be functionally coupled to a data storage 310 that includes fact data defining a plurality of facts representing the current state of traversal of a series of views. The plurality of facts includes from the first fact 1 314(1), the second fact 2 314(2), etc., up to the Qth fact 314(Q). For example, a fact among the plurality of facts can be the value of the current question in the questionnaire (e.g., response-15), and another fact among the plurality of facts can be the answer to question number 14 (i.e., that other fact can be response-14). The rule component 230 is also functionally coupled to a rule library 240. The rule library 240 includes rule data defining a particular rule set. The rules within a particular rule set include if-then statements. By way of illustration, a particular rule set includes M rules each having a respective priority: the first rule 1 320(1) having priority P, the second rule 2 320(2) having priority P-1, and the Nth rule N 320(N) having priority P0, etc., continuing up to the Mth rule M 320(M) having priority P0-q. The M rules can be arranged in descending order of priority, i.e., P>P-1>P0>P0-q.
[0023] The rule component 230 can apply the rules within a specific rule set. The rule component 230 can apply the rules within a specific rule set in order of priority. Thus, some rules can be applied (or evaluated) before other rules. In response to the rule component 230 applying the rules within the rule set, the rule component 230 can evaluate facts (e.g., fact 1 314(1)~Q 314(Q)) that define the current state of traversal of a series of views. The facts can be evaluated according to the "if" condition of the if-then statement of the rule being applied. Based on the result of the evaluation of such an "if" condition, the "then" action in the if-then statement of the rule being applied can establish one or more new facts (e.g., establish fact 314(Q+1)), remove one or more existing facts, update one or more existing facts, perform another action, navigate to a specific view among a series of views, or perform a combination of the above.
[0024] For illustrative purposes only, consider traversing a questionnaire in linear mode. As described herein, the navigation mode rule 204a can be supported for linear mode and held in the rule library 240 as a rule set including the following: (i) Rule 1: If the fact that the "Next" button is clicked is true and there are no validation errors, update the current question fact to the next question / view. (ii) Rule 2: If the fact that the "Previous" button is clicked is true, update the current question fact to the previous question / view. (iii) Rule 3: If the fact that the "Submit" button is clicked is true and there are no validation errors, create the fact that "completed" has occurred. As further described herein, the logical structure within the view definition of the questionnaire can be converted into one or more native rules for the rule component 230. For example, if the branching logic for question 7 states that "if the response to this question is true, gray out the rest of the section", then the logic translator 220 can convert such branching logic into a native rule that "if fact response - 7 is true, invalidate the remaining questions in the section in the CDL definition structure". Similarly, the CDL validation conditions / rules within the view definition of the questionnaire can be converted into one or more native rules for the rule component 230. For example, if the CDL validation rule states that "the value of question 8 needs to be within the range of 1 to 10", then the logic translator 220 can convert such validation conditions / rules into "if fact response - 8 is outside the range of 1 to 10, add additional fact validation - failure - 8".
[0025] Accordingly, the runtime component 140 is separated from the implementation of aspects associated with causing the presentation of a UI corresponding to a view among a series of views in the display device 120. In short, as shown in FIG. 1, the software application 114 can include a coordination component 150 that is functionally coupled to the runtime component 140, and the coordination component 150 causes the presentation of a UI (or other UIs at other times) in the display device. More specifically, the runtime component 140 includes a runtime interface 144 that functionally couples the runtime component 140 to the coordination component 150. The runtime interface 144 can query and / or determine the logical state of a series of views in combination with a particular rule set, and thus can expose or otherwise provide a plurality of functions (or operations) that can control the presentation of a series of views. The plurality of functions constitute the core control logic of the runtime component 140. By way of mere example, the plurality of functions can include a first function configured to obtain the current view for presentation in the display device 120. A call to the first function returns the page element(s) and prompt(s) corresponding to the current view. The page element(s) and prompt(s) can be returned as a CDL data structure formatted according to JavaScript Object Notation (JSON). The first function can be referred to as operation Q for mere naming purposes.
[0026] Continuing with the example, the plurality of functions can also include a second function configured to pass a response to a prompt (e.g., a question). The call to the second function passes the response as a particular CDL data structure formatted according to JSON. The second function can be referred to as operation R, for naming purposes only. The plurality of functions can also include a third function configured to pass an indication of interaction with a control element. For example, an indication that a navigation icon has been selected (e.g., clicked or tapped). The third function can be referred to as operation N, for naming purposes only. The plurality of functions can also include a fourth function configured to extract one or more validation errors (if any) from the current response to a prompt. For example, an indication that a navigation icon has been selected (e.g., clicked or tapped). The fourth function can be referred to as operation V, for naming purposes only. The plurality of functions can also include a fifth function configured to determine whether a particular sequence of views (e.g., an instance of a questionnaire) is complete. The call to the fifth function can return an indication of a positive or negative determination and can also return one or more responses to a prompt (if any). The one or more responses can be returned as a particular CDL data structure formatted according to JSON. The fifth function can be referred to as operation C, for naming purposes only.
[0027] The coordination component 150 can include an execution component 154 that can execute a function call for one or more of the plurality of function calls exposed by the runtime interface 144. In response to the execution of the function call, the coordination component 150 can instruct the presentation component 150 to draw a UI (e.g., one of the UIs 130) on the display device 120. The presentation component 150 is part of the application 114 and includes a library interface 164 that provides a functional coupling between the presentation component 150 and the coordination component 140. The presentation component 150 can include a UI element library 166 having a plurality of UI elements 168. The UI element 168 includes at least one presentation element and at least one navigation control element (also referred to as a control element in the present disclosure). The presentation element associated with the UI element 168 can include various types of digital content such as, for example, a still image (e.g., an icon, an avatar, a photo of a subject, etc.), an animation, a video segment, an audio segment, an incoming call tone, an electronic document (e.g., a document and / or presentation in a portable digital format (PDF)), etc. In some cases, by way of example only, the UI element library 166 can be a React UI library. In other cases, the UI element library 166 can be a custom library or a native library (e.g., a UI library of an operating system (O / S) of the computing device 110 such as iOS or Android).
[0028] To trigger the presentation of a view among a series of views, the coordination component 150 can execute a function call (operation Q) for a first function to obtain the view, for example, via the execution component 154. As mentioned, the view is defined in terms of a data structure formatted according to the CDL. Next, the execution component 154 can implement translation logic 156 for mapping the first data structure among the data structures to a prompt (e.g., a question in a questionnaire or a consent statement in a disclaimer). The translation logic 156 can be defined in a configuration file within the configuration package 116. The translation logic 156 is graphically represented in FIG. 1 as a block with the letter “+T”. The prompt can be defined in a desired natural language (e.g., English, Italian, or Spanish) for a series of views. Thus, the mapping that constitutes the translation logic 156 can be defined to convert the data structure in the CDL to the desired natural language. More specifically, to implement the translation logic 156, the execution component 154 can determine that the translation rules are satisfied for a particular view among a series of views. In response, the execution component 154 can translate a first natural language statement associated with the prompt and presented in the first natural language to a second natural language statement in the second natural language. The translation can be accomplished by identifying the first natural language statement and then applying the mapping to associate the first natural language statement with the second natural language statement.
[0029] Additionally, execution component 154 can also implement layout logic 158 for determining one or more UI elements to be presented in a UI corresponding to a view on display device 120. The layout logic 158 can be defined in a configuration file within configuration package 116. The layout logic 158 is graphically represented in FIG. 1 by the block having the letter "-L". In response to implementing the layout logic, execution component 154 can, via library interface 164, obtain one or more UI elements from presentation component 160 and instruct the presentation component 160 to draw the one or more UI elements in a defined layout of an area in the UI corresponding to the view.
[0030] Merely by way of example, FIG. 1 presents a UI 132 corresponding to a view among a series of views. The UI 132 can include a presentation element 134 representing a prompt related to the view. The presentation element 134 can include, for example, text or other indicia representing the prompt. The text can be formatted, for example, according to a specific font type and font size configured by the layout logic 158. In fact, the layout logic 158 can not only enable the formatting of the font, but the layout logic 158 can also enable the alignment of text on the UI 132 screen, including right-to-left display options. The prompt can be a natural language statement (such as a question) in a specific natural language. The UI 132 can also include a control element 136. The control element 136 can be selectable and can enable the reception of input data in response to the prompt. The UI 132 can further include a navigation element 138 (represented by an arrow mark).
[0031] As mentioned, the presented UI that corresponds to the view can include prompts and control elements that enable an end user to interact with the UI. Thus, the presentation component 160 can receive input data 118 in response to an interaction with the UI. The input data 118 flows in one direction towards the application 114, and it should be noted that the reception of the input data 118 at the presentation component 160 is represented as an arrow from the block labeled "118" towards the presentation component 160. In some cases, the input data 118 can include response data in response to a prompt. For example, the input data 118 can indicate an answer to a question that is part of an eCOA. Such response data can be referred to as prompt response data. The presentation component 160 can pass the input data 118, which includes the prompt response data, to the coordination component 150 via the library interface 164. The execution component 154 can receive the input data 118, which includes the prompt response data, and then execute a function call (operation R) to send (or pass) the input data 118 to the runtime component 140. As described herein, the input data 118, which includes the prompt response data, can be transmitted in JSON format.
[0032] In other cases, rather than including prompt response data within the input data 118, the input data 118 can include navigation response data that responds to the selection of a control element (e.g., a navigation control) within the UI corresponding to the view. As described herein, the input data 118 that includes navigation response data can be transmitted in JSON format. The presentation component 160 can receive the input data 118 that includes navigation response data. The presentation component 160 can then transmit (or pass) the navigation response data to the coordination component 150 via the library interface 164. The execution component 154 can receive the signaling and then perform a function call (operation N) to transmit the signaling to the runtime component 140.
[0033] The runtime component 140 has access to branching logic and / or verification conditions (s), and can operate on the input data 118. Such operations can result in errors. Therefore, the execution component 154 can execute another function call (operation V) to obtain any verification errors that may exist in response to the runtime component 140 operating on the input data 118. If a verification error exists, the execution component can receive a CDL data structure that identifies the error view. Next, the execution component 154 can instruct the presentation component 160 to draw one or more UI elements indicating the error. As illustrated in Figure 4A, in some cases, the presentation component 160 can redraw the UI132 to include a single UI element 410 corresponding to the error view. The UI element 410 can be presented as an overlay and can include text (represented by a line segment) indicating the verification error. In some cases, instead of presenting the overlay, the UI element 410 can be integrated into the UI132. Additionally, or in other cases, in addition to including the UI element 410, the presentation component 160 can change the appearance of the section of the redrawn UI132. For example, the UI132 can be redrawn to be translucent and to include a gray layer that covers at least a portion of the UI132 and the UI element 410 as an overlay. Figure 4B presents an example of another sequence of the user interface in which the error view is involved in the presentation of one of the user interfaces. More specifically, the UI450 can present a prompt 454 and a plurality of selectable UI elements 456 representing a group of possible answers. The UI450 also includes a first navigation control 458a and a second navigation control 458b. In response to the navigation control 458b being selected, the execution component 154 can instruct the presentation component 160 to redraw the UI450 using a gray pane that overlays the UI450, which can be translucent, and also to draw the UI element 460 as an overlay.The UI element 460 represents an error view.
[0034] Embodiments of the present disclosure are not limited to defining the navigation mode as a set of rules and relying on rule components such as rule component 240 (FIG. 2). As illustrated in FIG. 5, instead of obtaining the navigation mode rule 204a, the runtime component 140 can select program code that defines the navigation mode. For that purpose, the runtime component 140 can be functionally coupled to the navigation mode component 510. The navigation mode component 510 can execute navigation mode logic 504 corresponding to the navigation mode, which is the program code that defines the navigation mode. In fact, the navigation mode component 510 can execute various types of navigation mode logic 504 corresponding to each navigation mode. Therefore, the runtime component 140 can select the program code by selecting an implementation of the navigation model logic 504 that can be executed by the navigation mode component 510. The implementation of the navigation model logic 504 can be embodied in an instance of the navigation mode component 510.
[0035] The runtime component 140 can include an interpreter component 520 that can obtain (e.g., load) specific program code that defines a specific navigation mode used to traverse a questionnaire at runtime. The specific program code can be obtained (e.g., loaded) via the navigation mode component 510. Additionally, at runtime, the interpreter component 520 can obtain a plurality of logical structures 218. As described herein, at runtime, the capture component 210 can obtain the logical structure 218 from the view definition 204b and supply the logical structure 218 to the interpreter component 520. The interpreter component 520 can then directly execute both the specific program code that defines the navigation mode for a series of views and, for example, the logical structure 218 that defines the branching logic for a series of views. As mentioned, the logical structure 218 may not be limited to including logical statements that define branching logic. In fact, in some cases, the logical structure 218 can include logical statements that define one or more of validation logic, invalidation logic, scoring logic, or export logic.
[0036] For a defined series of views (e.g., questionnaires), computing device 110 can obtain view definitions (e.g., view definition 204b), translation logic (e.g., translation logic 156), and layout logic (e.g., layout logic 158) via configuration package 116. Computing device 110 can receive configuration package 116 from another computing device located remotely with respect to computing device 110. The configuration package can be received in response to the execution of application 114 or at the time application 114 is installed. For that purpose, in some cases, the execution of application 114 can cause the presentation of a selection prompt for selecting a particular natural language from a group of natural languages available in the configuration package that is uploaded or otherwise received. Another computing device located remotely with respect to computing device 110 can generate a configuration package in response to such a selection.
[0037] The configuration package can include three sets of configuration files, each set having at least one configuration file that defines an aspect of a series of views. Each configuration file can be defined in terms of CDL. The first aspect is directed to the definition of a series of views. The set of configuration files related to the definition aspect (also referred to as the “+D” aspect) includes a single configuration file that can describe each view, branching logic (and in some cases, scoring logic), and verification conditions. That single configuration file can be generated, for example, by individually configuring each view (or portion) within respective working files and then integrating the multiple views (or portions) into a single configuration file. That single configuration file can be referred to as a CDL+D configuration file and denoted as CDL+D. The CDL+D configuration file can also define a response format for responses to prompts (e.g., questions) within a view. The second aspect is directed to translating the views described in the CDL+D configuration file into a target natural language. The set of configuration files related to the translation aspect (also referred to as the “+T” aspect) can include multiple files, each corresponding to a desired natural language. The +T configuration files define a translation mapping. The +T configuration files can be referred to as CDL+T configuration files and denoted as CDL+T. The third aspect is directed to the layout of the UI corresponding to each view described in the +D configuration file. The set of configuration files related to the layout aspect (also referred to as the “+L” aspect) can include multiple files, each corresponding to a UI layout for a particular type of display device and a particular UI library associated with a computing device such as computing device 110. The particular UI library can be one of a plurality of UI libraries available for a computing device (e.g., a smartphone or tablet computer). The +L configuration files define layout logic. The +L configuration files can be referred to as CDL+L configuration files and denoted as CDL+L.
[0038] Figure 6A shows a class diagram 600 representing the model of the configuration package 610. The configuration package 610 includes one or more CDL+L configuration files, one or more CDL+T configuration files, and a single CDL+D configuration file. The CDL+L configuration files are dependent on the CDL+T configuration files, and the CDL+T configuration files are dependent on the CDL+D configuration file. The specific dependency structure of the CDL+D, CDL+T, and CDL+L configuration files can separate the implementation of the verification process in response to changes to one or more of those configuration files. In some embodiments, such changes can be implemented while the configuration files are in an operating state, as opposed to an immutable state. The operating state refers to the condition of the configuration files that is changeable and allows revisions to the file. The immutable state refers to the condition of the configuration files that is immutable and has a permanent version assigned to the file. The permanent version can be identified using a permanently unique identifier formatted according to a desired versioning schema. In the working state, changes to a CDL+L configuration file can trigger a verification process only for that file. Changes to a CDL+T configuration file trigger a verification process for each CDL+L configuration file that depends on the changed CDL+T file. Changes to a CDL+D configuration file trigger a verification process for the CDL+T configuration file(s) that depend on the CDL+D configuration file, and also trigger a verification process for the CDL+L configuration file(s) that depend on the CDL+T configuration file. The component structure is a modular data structure that defines various elements of a series of views from the perspectives of sections, views, and prompts. Multiple components can be individually configured, for example, in their respective working files, and then integrated into a single CDL+D configuration file as described above.
[0039] Figure 6B illustrates a diagram 670 representing a model of an instance of a configuration package 660 including a plurality of CDL+D, CDL+T, and CDL+L type configuration files 664 and a data repository 650 including a plurality of configuration packages 654. As shown in diagram 670, a single CDL+D configuration file 672 exists in the instance of configuration package 660, and for that single CLD+D configuration file 672, there are a plurality of CDL+T configuration files associated with the CDL+D configuration file 672, and note that there are also a plurality of CDL+L configuration files associated with the plurality of CDL+T configuration files in various ways. In fact, in some embodiments, each configuration package of configuration packages 654 can have a single CDL+D configuration file, one or more CDL+T configuration files, and one or more CDL+L configuration files, and such configuration files can be related in the manner shown in class diagram 600 in FIG. 6A.
[0040] Figure 7 illustrates an example of a process for supplying a configuration package according to one or more embodiments of the present disclosure. Supplying a configuration package can include generating the configuration package and transmitting the configuration package to a computing device. In the illustrated process flow, a configuration component 714 can receive input data 720. The configuration component 714 can be part of a package supply subsystem 710. In some cases, the configuration component 714 can be hosted by a computing device (not depicted in FIG. 7) included in the package supply subsystem 710. The input data 720 can include first data that defines the contents of a CDL+D configuration file 724. In response to receiving the first data, the configuration component 714 can generate the CDL+D configuration file 724 within a data repository 650. The CDL+D configuration file 724 can be generated in a file system that exists in the data repository 650. As part of generating the CDL+D configuration file 724, the configuration component 714 can generate a UI that is a unique identifier and can incorporate the unique identifier into a CDL+T configuration file 726. The unique identifier can be used to reference the CDL+D configuration file 724 from another configuration file. An example of a unique identifier is a Universally Unique Identifier (UUID).
[0041] Additionally, or in some cases, the input data 720 can also include second data that defines the contents of the CDL+T configuration file 726. In response to receiving the second data, the configuration component 714 can generate the CDL+T configuration file 726 within the data repository 650. The CDL+T configuration file 726 can be generated in the file system existing in the data repository 650. As part of generating the CDL+T configuration file 726, the configuration component 714 can generate a unique identifier and can incorporate the unique identifier into the CDL+T configuration file 726. Using that unique identifier (e.g., UUID), the CDL+D configuration file 724 can be referenced from another configuration file. In some cases, each text value included in the CDL+T configuration file can support Markdown (e.g., headings, paragraphs, line breaks, emphasis) so that the font and / or highlighting can be customized.
[0042] Moreover, or in yet other cases, the input data 720 can also include third data that defines the contents of the CDL+L configuration file 728. In response to receiving the third data, the configuration component 714 can generate the CDL+L configuration file 728 within the data repository 650. The CDL+L configuration file 728 can be generated in the file system that exists in the data repository 650. As part of generating the CDL+L configuration file 728, the configuration component 714 can generate a unique identifier and can incorporate the unique identifier into the CDL+L configuration file 728. Using that unique identifier (e.g., UUID), the CDL+D configuration file 724 can be referenced from another configuration file. As illustrated in FIG. 6A, the definition of the CDL+L configuration file can specify the version of the runtime bundle corresponding to the runtime component 140, the coordination component 150, and the presentation component 160, which is suitable for use with the configuration package that includes the CDL+L configuration file. The version can be identified, for example, via the UUID. Additionally, the CDL+L configuration file can include a reference or another type of link to that version of the runtime bundle. Thus, the configuration component 714 can apply one or more integrity tests to the CDL+L configuration file 728 against one or some versions of the UI element library 166. The version-managed runtime bundle can be held in an archive within the data repository 650. In this way, the configuration component 714 can determine that the CDL+L configuration file (and the configuration package that incorporates such a file) can be utilized with the version of the runtime component 140 for which the CDL+L configuration file is being tested. Thus, the verified behavior for the configuration package can be maintained for the desired runtime bundle.
[0043] As illustrated in FIG. 7, the package supply subsystem 710 also includes a packaging component 816. In some cases, a computing device (not depicted in FIG. 7) hosting the configuration component 714 can also host the packaging component 816. The packaging component 716 can obtain a CDL+L configuration file 728, a CDL+T configuration file 726, and a CDL+D configuration file 724, and can generate a configuration package 730 within the data repository 650. The packaging component 816 can hold the configuration package 730 in the file system existing in the data repository 650. The file system can also include various configuration files (CDL+D, CDL+T, and CDL+T files). The package 730 can be, for example, one of the packages 654 held in the data repository 650.
[0044] To obtain a configuration package, the computing device 110 can send a request 740 to the package supply subsystem 710 for an interactive electronic document, natural language, and a specific combination of device type and display resolution. Such a specific combination becomes a specific CDL+L configuration file. The interactive electronic document can include, for example, a questionnaire, a consent document, an evaluation, or a stand-alone task guide (such as an installation guide or a troubleshooting guide). In some cases, the computing device 110 can send the request 740 in response to starting the execution of an application 114 (not illustrated in FIG. 7). The request 740 can be sent by the communication system 750. The communication system 140 can include one or a combination of networks (wireless or wired) that enable two-way communication of data and / or signaling.
[0045] The delivery component 718 included in the package supply subsystem 710 can receive a request 740. In some cases, a computing device (not depicted in FIG. 7) that hosts the configuration component 714 and the packaging component 716 can also host the delivery component 718. In other cases, a second computing device (not depicted in FIG. 7) can host the delivery component 718. In response to receiving the request 740, the delivery component 718 can select a configuration package 760 that meets the requested specific combination of an interactive electronic document, natural language, and device type and display resolution. The configuration package 760 can be selected from a group of packages 654 within the data repository 650. The configuration package 760 can include several configuration files, and a specific set of configuration files, namely, CDL+D, CDL+T, and CDL+L configuration files, corresponds to the requested specific combination of an electronic interactive document, natural language, and device type and display resolution. Thus, the delivery component 718 can generate a deliverable configuration package 770 by extracting a specific set of configuration files and then assembling the deliverable configuration package 770. For that purpose, the delivery component 718 can analyze the language that defines the device type and display resolution for several CDL+L files. Such analysis can generate CDL+L files suitable for the device type and display resolution. Additionally, the delivery component 718 can determine the references to CDL+T files within the appropriate CDL+L files. The CDL+T files can be appropriate for natural language. Similarly, the delivery component 718 can determine the references to CDL+D files within CDL+T, and the CDL+D files define the electronic interactive documents.Configuration package 770 may be referred to as a "minimal package" in that the configuration package 770 includes a configuration file related to an applicable interactive electronic document, a desired natural language, and a specific type of computing device having specific UI characteristics / attributes. Delivery component 718 can transmit configuration package 770 to computing device 110 by communication system 770.
[0046] Merely by way of example, configuration package 760 may be the configuration package 660 depicted in FIG. 6B, which package includes the configuration file shown in tree structure 670. Delivery component 718 can determine that CDL+D configuration file 672, CDL+T configuration file 674, and CDL+L configuration file 676 form a set of files corresponding to a particular combination of an interactive electronic document, a natural language, and the type and display resolution requirements of the device. Accordingly, deliverable configuration package 770 includes CDL+D configuration file 672, CDL+T configuration file 674, and CDL+L configuration file 676.
[0047] By implementing the exemplary process flow shown in FIG. 7, embodiments of the present disclosure can deterministically deliver a portion of a configuration package, namely deliverable configuration package 770, to a device and for a desired natural language. The portion of the configuration package that is delivered is appropriate for the device and the natural language in that the interactive electronic package can be appropriately presented on the device in the desired natural language (e.g., without visual artifacts). Such determinism and soundness make such an exemplary process flow superior to existing techniques for providing interactive electronic documents.
[0048] An example of a component applicable to an interactive electronic document is shown in class diagram 800 shown in FIG. 8A. Here, the component enables a modular approach for creating an interactive electronic document from built-in sections, pages, and / or elements. An interactive electronic document is itself a component. The inheritance associated with ActionBase, PromptBase, and ElementBase in class diagram 800 is shown in inheritance diagram 850 in FIG. 8B. In one example, the interactive electronic document is a questionnaire. As described herein, in some cases, the parts that make up an interactive electronic document can be individually generated as described herein and held in their respective working files. The component is a modular component of an interactive electronic document corresponding to a section, a page, or a discrete element. Then, the various components forming the interactive electronic document can be integrated into a single CDL+D configuration file as also described herein.
[0049] As illustrated in FIG. 8A, the ElementBase can inherit from a component. Next, both the PromptBase and the PageElementBase can inherit from the ElementBase. Here, the PromptBase class defines a specific type of prompt from a group of types. Such a prompt can be presented in the UI as a selectable presentation element. Additionally, the PageElementBase class defines visual elements that can be presented in the UI as presentation elements that can be either selectable or non-selectable. Merely for illustration, Table 1 shows examples of question types that can be used in the definition of a questionnaire according to the aspects described herein.
Table 1
[0050] Merely as a further illustration, Table 2 illustrates an example of a data model for answered questions or other types of prompts. Such a data model is, for example, a definition of the format of data that is expected to be obtained in response to a questionnaire. Each question or prompt can hold data in a specific known pre-defined format (e.g., a question for a date-time entry will always save a date-time value, and a question for a free-text entry will always save a string value).
Table 2
[0051] In addition to the CDL+D, CDL+T, and CDL+L configuration files, embodiments of the present disclosure may also enable the generation and / or verification of a configuration file that defines a scoring logic for an interactive electronic document. Such a file may be referred to as a CDL+S configuration file. The CDL+S configuration file may define a new score that is determined automatically by the application 114, for example, for an interactive electronic document, via the runtime component 140, based on the data model. One or more scores that may be associated with the questionnaire data model may be determined based on the responses (if any) received by the application 114 during traversal of the questionnaire in response to the prompt(s) in the interactive electronic document (i.e., the prompt response data). This function of calculating the score should be applied to the latest version of the dataset. That is, the application 114 should obtain a score based on the data that is determined at the time the score is used and / or probed.
[0052] Additionally, or in some embodiments, a configuration file that defines the data export may also be generated and verified. Such a file may be referred to as a CDL+E configuration file. The CDL+E configuration file may enable the configuration of how the data export file can be formatted and how data can be arranged within the data export file. Information from this configuration artifact may be applied when executing the data export. The CDL+E configuration file may be embodied, for example, as a template for data mapping, data calculation, and / or data conversion between a questionnaire data model and the export file. The CDL+E configuration file may enable the export of responses collected during traversal of the questionnaire and the placement of such responses in a particular structure. Thus, the CDL+E configuration file may enable the configuration of the position of each data model item in the export file, combined with any fixed values associated with the item, the configuration of file separators, and / or the configuration of file names.
[0053] As illustrated in FIG. 9, embodiments of the present disclosure can include a computing system 900 that enables the generation of an interactive electronic document (e.g., a questionnaire or consent document) according to the aspects described herein. The computing system 900 can host various subsystems and components. The computing system 900 can be a distributed system. More specifically, the computing system 900 can include an assembly subsystem 910 that includes various components.
[0054] The assembly subsystem 910 includes one or more CDL editor components 912. The CDL editor component(s) 912 can, individually or in a particular combination, enable an end user to directly and interactively edit a CDL configuration file. Thus, the CDL editor component(s) 912 can enable any interactive customization of the CDL configuration. For that purpose, the editor component(s) can, individually or in a particular combination, cause the user interface 924 (UI 924) including selectable visual elements each configured to receive input data defining a CDL configuration file to be presented to a display device 922. By way of example only, the exemplary UI 1010 shown in FIG. 10A is one example of the UI 924. The UI 1010 includes a view pane 1020 that is selectable and can receive input data defining a CDL+D configuration file. More specifically, the input data can define at least text 1024, which can define a part of the CDL+D configuration file. As can be seen from FIG. 10A, the text 1024 is human-readable text. The text 1024 is also shown in FIG. 10B. The exemplary UI 1010 also includes a second view pane 1030 that can present a view associated with the input data entered into the view pane 1020. The view can, in some cases, be presented in a temporally coordinated manner along with the entries of the input data defining the CDL+D configuration file. That is, the view pane 1020 can present the view almost in real time when the input data is entered into the view pane 1020. Thus, the view can be referred to as a real-time preview. To present a real-time preview in the view pane 1020, at least one of the CDL editor component(s) 912 can pass or otherwise provide the current definition of the configuration file to a first previewer component among the previewer component(s) 914.The first previewer component can cause the display device 922 to present the current view within the second view pane 1030 based on its current definition of the configuration file.
[0055] FIG. 10C illustrates an exemplary UI 1050 having a first view pane 1060 and a second view pane 1070. Similar to the second view pane 1020 (FIG. 10A), the view pane 1060 is selectable and can receive input data that defines a CDL+L configuration file. More specifically, the input data can define at least text 1064, which can define a portion of the CDL+L configuration file. As can be seen from FIG. 10C, the text 1064 is human-readable text. By way of example only, the text 1064 is also shown in FIG. 10D. Similar to the view pane 1030 (FIG. 10A), the view pane 1070 can present a view associated with the input data entered into the view pane 1060. The view can also, in some cases, be presented in a manner that is temporally coordinated with the entry of the input data. That is, the view pane 1070 can present the view in almost real time when the input data is entered into the view pane 1020. The first previewer component can cause the display device 922 to present the current view within the second view pane 1070 based on the current definition of the CDL+L configuration file.
[0056] In some cases, the second previewer component is included in the previewer component(s) 914. After the CDL configuration file is generated, for example, using the CDL editor component(s) 912, the second previewer component may enable the acquisition (e.g., load) of the CDL configuration file. Then, the second previewer component can cause the display device 922 to present the results of its CDL configuration file and / or any errors in the processing of the CDL configuration file or configuration package that includes its CDL configuration file. The second previewer component can be capable of navigating between various questionnaire chapters and presenting, for each of the chapters applied by the runtime bundle, the layout, placeholder text for all elements within the screen, the number and type of responses collected from the end user, etc.
[0057] In addition, or in another aspect, the second previewer component may enable the execution (or run) of an interactive electronic document (e.g., a questionnaire) to verify that the collected data can conform to a defined data model (e.g., a test data model). For that purpose, the second previewer component can receive from the end user, for example, one or more responses to each of the viewed chapters. Then, the second previewer component can cause the display device 922 to present how the data can be mapped (e.g., how the response object can find its question).
[0058] The assembly subsystem 910 can also include one or more screen capture generation components 916. The screen capture component(s) 916 can provide various functionality related to generating, and in some cases presenting, screen capture images (also referred to as screenshots) for a given CDL configuration package. The screen capture images can include all possible views, including all possible verification messages and verification screens translated into a natural language that can be used by a consumer / final end user, of anything that an end user can observe during traversal of a questionnaire or another type of interactive electronic document. The screen capture component(s) 916 can generate image capture images for any combination of device, natural language, and interactive electronic document, either individually or in combination. In some cases, the screen capture images can be used for review of translation work products (created by human experts or autonomous machines). In other cases, the screen capture images can be used for submission for approval of clinical trials with a specific questionnaire.
[0059] The assembly subsystem 910 can also include one or more translation exchange components 920. The translation exchange component(s) 920 can enable the exchange of data related to the CDL+T configuration file with one or more translator devices 940. The translator device 940 can be located remotely from the assembly subsystem 910 (or, in some cases, a computing device (s) that can host the assembly subsystem 910). Such data can be exchanged in many ways. In some cases, the translation exchange component(s) 920 can provide (e.g., host) editing services, either individually or in combination, and can send data related to the CLD+T configuration file to one or more of the translator devices 940. The CDL+T configuration file corresponds to a specific natural language. The CDL+T configuration file can include human-readable text that defines the code corresponding to each prompt and includes English text as an explanation of the prompt for each prompt. The CDL+T configuration can also include placeholder strings (e.g., empty strings), which serve as placeholders that can receive text indicating the translation into the desired natural language. In addition, the translation exchange component(s) 920 can receive input data that defines at least a portion of the CDL+T configuration file via an editing service, and such input data is formatted according to CDL. In other cases, the translation exchange component(s) 920 can convert the CDL+T configuration into a specific format that can be used by at least one of the translator devices 940, and then can convert the data in that specific format to at least one of the translator devices 940. For example, such data can be sent in a file that is compatible with the specific format. Additionally, the translation exchange component(s) 920 can receive other data formatted according to a specific format (e.g., in a file), and then can convert that other data into a CDL+T configuration file.
[0060] The translation exchange component(s) 920 can obtain a screen capture image of an interactive electronic document according to the CDL+T configuration file defined by the translator device among the translator devices, using the screen capture component(s) 916. A CDL+T configuration file corresponding to a specific natural language. Next, the translation exchange component(s) 920 can send the screen capture image to the translator device. In response, the translator device can perform or facilitate a review of the screen capture image to evaluate the quality of the translation related to the CDL+T configuration file in a specific natural language.
[0061] The present disclosure is not limited to the generation of CDL configuration files via the editor component(s) 912. Although not shown in FIG. 9, in some embodiments, the computing system 900 can include a designer subsystem that can enable the generation of interactive electronic documents graphically and / or according to a pre-set form. Such a subsystem can be used in the repository management component(s) 918a to manage the configurations and supply those configurations to the workflow service for further use by the application 954 (e.g., a clinical in-application or a home application).
[0062] Furthermore, or in some cases, the computing system 900 can also include an administrator screen presentation component (not depicted in FIG. 9). Such a component can associate the management of the questionnaire library with the use of questionnaires in eCOA trials executed on a specific platform. In one aspect, an authenticated and authorized user can directly publish a questionnaire from the questionnaire library for a specific questionnaire ID from a specific survey for which the user is authorized to perform such an action.
[0063] The assembly subsystem 910 may also include one or more repository management components 918 that can enable scrutiny of the CDL configuration file 982 or the configuration package 654, or both, held in the data repository 650. For that purpose, the repository management component 918 can cause the display device 922 to present a user interface that can include a list of the interactive configuration packages (or respective interactive electronic documents) or component configuration files held in the data repository 650. Each item included in the list can be represented by a selectable visual element that, in response to being selected, causes presentation of one or more of the configuration files (CDL+D, CDL+T, CDL+L) that make up the selected item (or configuration package). The user interface can be one of the UIs 924. The UI 1110 shown in FIG. 11A is an example of such a user interface. The UI 1150 shown in FIG. 11B is an example of a user interface that can be presented in response to selection of an item in the list of interactive configuration packages. As described herein, the contents of the data repository 650 can be generated by a configuration component 714 that is part of the package supply subsystem 710 included in the computing system 900. Note that the display device 922 facilitates authorization and management of interactive electronic documents, as opposed to the display device 120 (FIG. 1) that enables traversing and thus completing interactive electronic documents.
[0064] The repository management component(s) 918 may also be able to manage, individually or in combination, a library of interactive electronic documents (or their respective configuration packages 654). Additionally, the repository management component(s) 918 may be able to enable an end user to save configuration files (e.g., CDL+D, CDL+T, CDL+L) as part of the CDL configuration file 982 in the data repository 650. The repository management component(s) 918 may also be able to manage, individually or in combination, the configuration file 982 and the configuration package 654 and store additional optional data regarding those configuration files and configuration packages.
[0065] Computing system 900 also includes one or more device synchronization components 970. At least one of the device synchronization component(s) 970 can be operatively coupled to a computing device 950, each of which includes an application 114 (FIG. 1) described herein. As represented by the dashed line, the computing device 950 can be external to the computing device 900. At least one network of the networks 928 can provide such an operative coupling. Since the computing device of the computing devices 950 can be a partially connected device, e.g., a device that lacks connectivity to at least one network for some periods, at least one of the device synchronization component(s) 970 can receive data from the computing device during a period when the computing device has connectivity to at least one network. Such data can define the current state of traversal of an interactive document in the computing device. Thus, the data can include prompt response data indicating one or more responses to each prompt presented to the computing device. In response to receiving such data, one or more of the device synchronization component(s) 970 can synchronize (i) the current state of traversal of an interactive electronic document in the computing device with (ii) the last recorded state of traversal of the interactive electronic document. In addition to or as part of synchronizing such states, the device synchronization component(s) 970 can hold the prompt response data as part of the response data 987 in the data repository 984. The device synchronization component(s) 970 can also transmit other data to the computing device of the computing devices 950 in response to the computing device becoming connected to at least one network of the networks 928.Such other data can include setting parameters that can control how an interactive electronic document is implemented in a computing device.
[0066] At least one of the device synchronization component(s) 970 can receive scoring data from one or more of the computing devices 950 and can hold the scoring data in the data repository 984 as part of the scoring data 986. At least one of the device synchronization component(s) 970 can also receive data exported from an interactive electronic document and can hold such exported data in the data repository 984 as part of the data export 988.
[0067] Computing system 900 further includes a device management subsystem 930 that can track computing devices 950 used to traverse interactive electronic documents (such as questionnaires or consent documents). For that purpose, the device management subsystem 930 can maintain a record corresponding to each computing device of the computing devices 950, and each record of the records includes data indicating the computing resources of the computing device. Computing resources include an operating system (O / S), visualization resources (such as display size, display resolution, type of UI toolkit, combinations thereof, or the like), and / or other resources. In some cases, the device management subsystem 930 can provision one or more of the computing devices 950. As part of the provisioning, the device management subsystem 930 can generate such a record for the provisioned computing device(s). Additionally, or in other cases, the device management subsystem 930 can generate such a record for each computing device that acquires (e.g., downloads and installs) the application 114. As part of provisioning the computing device, the device management subsystem 930 can also generate a record that includes data indicating the relationship between the computing device and the organization that uses the computing device to provide an interactive electronic document to the end user. Such a relationship can indicate that the computing device is supplied by or otherwise managed by the organization, or that the computing device is external to the organization. A computing device external to the organization can be classified as a bring-your-own-device (BYOD) type.
[0068] In some embodiments, as shown in FIG. 12A, computing system 900 can include a verification subsystem 1210 that is functionally coupled to at least an assembly subsystem 910. In some cases, verification subsystem 1210 can also be functionally coupled to a display device 922. Verification subsystem 1210 can verify a configuration package for a series of views. Verifying the configuration package can enable maintaining an accurate verification state of the configuration package. The configuration package can be one of configuration packages 654.
[0069] To verify a configuration file, verification subsystem 1210 can first update the verification status of the configuration file. For that purpose, verification subsystem 1210 can include a first component 1250 shown in FIG. 12B that can determine that a first configuration file has been changed. The configuration file can be held in a CDL configuration file 982 and can be one of a CDL+D configuration file, a CDL+T configuration file, or a CDL+L configuration file. Next, the first component 1250 can identify a configuration package that includes the first configuration file. As mentioned, the configuration package can be, for example, one of configuration packages 654.
[0070] Additionally, the first component 1250 can identify one or more second configuration files that depend on the first configuration file. The second configuration file(s) are included in the configuration package. To determine such dependencies, the first component 1250 can determine references that associate the first configuration file with another configuration file, and then identify such other configuration file(s) as one of the second configuration file(s). The first component 1250 can further determine whether a reference to yet another configuration file exists in the other configuration file. In the affirmative, the first component 1250 can identify such additional other configuration file as another second configuration file among the second configuration file(s). The first component 1250 can continue to analyze the references and associated configuration files until no other configuration file can be identified as one of the second configuration file(s).
[0071] The first component 1250 can classify each file of the second configuration file(s) as an unvalidated file. By classifying each second configuration file of the second configuration file(s), the first component 1250 updates the validation status of each second configuration file of the second configuration file(s). Additionally, in contrast to existing techniques, by classifying the configuration file(s) and unvalidated, the validation subsystem 1210 can separate the configuration file(s) for validation in response to a changed configuration file. Thus, in accordance with aspects of the present disclosure, computing resources can be used more efficiently when updating and / or maintaining an interactive electronic document.
[0072] The first component 1250 can also cause the display device 922 to present a UI that includes a list of the second configuration file(s). The first component 1250 can then receive input data indicating a selection of an unvalidated file. Such input data can be received via selection of an element of the list, where the element represents an unvalidated file.
[0073] In some cases, a second component 1260 of the validation subsystem 1210, shown in FIG. 12B, can provide an unvalidated file to the assembly subsystem 910. The second component 1260 can provide the selected unvalidated file in a number of ways. In one example, the second component 1260 can pass a reference to the selected unvalidated file, or another type of identifier for the selected unvalidated file, to the assembly subsystem 910. The assembly subsystem 910 can then use the reference or other identifier to obtain the unvalidated file from the data repository 650.
[0074] Thus, the unvalidated file can be updated via the assembly subsystem 910, or one or more components of the assembly subsystem 910, in a manner similar to the assembly of a new configuration file. After an update to the unvalidated file is complete, the updated unvalidated file can be made available to the validation subsystem 1210. The second component 1260 can obtain (e.g., receive or retrieve) the updated unvalidated file and make the updated unvalidated file available to a third component 1270 of the validation subsystem 1210, shown in FIG. 12B.
[0075] The third component 1270 can apply a verification test to the updated unverified file. The verification test can be specific to the type of the unverified file. That is, the verification test applied to a CDL+D configuration file can be different from the verification test applied to a CDL+T configuration file. Similarly, the verification test applied to a CDL+D configuration file or a CDL+T configuration file can be different from the verification test applied to a CDL+L configuration file. For example, applying a verification test for a CDL+D configuration file can include executing (or causing to execute) one or more NO-CODE scripts and / or one or more LOW-CODE scripts where each of the scripts emulates an end-user response to the prompt(s) defined in the CDL+D configuration file. In response to executing (or causing to execute) one such script (NO-CODE or LOW-CODE), the third component 1270 can automatically determine whether a logical statement or logical formula, or both, are properly implemented.
[0076] As another example, applying a validation test for a CDL+T configuration file can, in some embodiments, include applying a machine learning model (such as an adversarial generative neural network (GANN)) to determine the validity or invalidity of the configuration file. More specifically, the third component 1270 can implement a GANN to translate text corresponding to a natural language statement in a first natural language from the first natural language to a second natural language. Additionally, the third component 1270 can then reverse translate the previously translated text from the second natural language to the first natural language via the GANN and determine whether any characteristic errors or defects in the translation of the text can be detected by comparing such a reverse translation to the original natural language statement in the first natural language. Note that in some cases, when the third component 1270 applies such a validation test, the validation test can use a customized set of one or more dictionaries. In one example, the dictionary can be specifically applicable to the domain of clinical trial language. The customized dictionary can be held in a data repository within the storage subsystem 980.
[0077] As yet another example, applying a verification test for a CDL+L configuration file can, in some cases, include applying one or more groups of geometric conditions that define sufficient visualization output for the CDL+L configuration file. Since a rendering engine (such as presentation component 160) can draw UI elements in the UI on a display device, the rendering engine can access data indicating the placement of UI elements within the UI. As part of applying the verification test, a third component 1270 can determine whether the rendered (or drawn) UI elements meet one or more geometric conditions. Note that during application of the verification test, the UI can be rendered on the display device 922 by its rendering engine. The computing device hosting the assembly subsystem 910 can include a rendering engine.
[0078] Regardless of the type of configuration file and verification test, successful application of a verification test (or, in some cases, multiple verification tests) to a configuration file (e.g., CDL+D, CDL+T, or CDL+L) results in the configuration file being verified. A state variable can indicate the verification state of the configuration file.
[0079] After the verification test has been applied, the verification subsystem 1210 can determine (e.g., via the first component 1250) whether the updated un-verified file has been verified. A negative determination can result in another update of the updated un-verified file and subsequent application of additional verification test(s). A positive determination can result in the verification subsystem 1210 classifying the updated un-verified file as a verified configuration file (e.g., via the first component 1250). The verification subsystem 1210 can add the verified configuration to the configuration package that originally included the un-verified version of the verified configuration file (e.g., via the second component 1260).
[0080] FIG. 13 illustrates an example of a process flow for the exchange of translation information according to one or more embodiments of the present disclosure. The translator device 1320 can receive input data 1332 for accessing a login page for an editing service provided by the translation exchange component(s) 920. The editing service can enable the configuration or otherwise update the CDL+T configuration file. In response to receiving the input data 1332, the translator device 1320 can present a UI 1340 that presents the login page. The translator device 1320 can then receive input data 1334 that defines login credentials. As part of the login process 1342, the translator device 1320 can send the login credentials to the translation exchange component(s) 920, and in response, access to the editing service can be authenticated and authorized.
[0081] In response to accessing the editing service, the translator device 1320 can present a UI 1350 that includes UI elements that identify CDL+T configuration file(s) to be updated with translations for a particular natural language. The translator device can receive input data 1352 indicating a selection of a particular CDL+T configuration file 1356. The translator device can send a request 1354 for a particular CDL+T configuration file to the translation exchange component(s) 920. In response to the request, the translation exchange component(s) 920 can obtain the CDL+T configuration file 1356 from the data repository 1330, either individually or in combination, and can cause the translator device 1320 to present a UI 1360. As part of causing the translator device 1320 to present the UI 1360, the translation exchange component(s) 920 can send translation data 1358 to the translator device 1320. The translation data 1348 can define human-readable text that includes, for example, English text, and can include placeholder text for a desired natural language, where the placeholder text serves as a placeholder for text in the desired natural language. For example, the desired language can be Portuguese, and the human-readable language defined by the translation data 1348 and the format portion of the CDL+T configuration file can include the following: {"code": "Q12", "text": "How bad is your pain?", "translation": "Quao ruim e a sua dor?"}, {"code":...
[0082] UI1360 can include a review pane 1364 where human-readable text defined by translation data received from the translation exchange component(s) 920 can be viewed and edited. Editing such human-readable text can include, for example, editing placeholder text in a desired natural language. To edit the human-readable text defined by the translation data, the translator device 1320 can receive input data 1362 that defines a statement in a desired natural language. After a translation is considered sufficient, the translator device 1320 can receive first data within the input data 1362 that indicates acceptance of the edited translation data. The first input data can be received via selection of selectable visual elements 1366 present in the UI1360. In response, the translator device 1320 can send updated data 1356 to the translation exchange component(s) 920. The updated data 1356 can include at least a portion of the edited translation data. In response to receiving the updated data 1356, the translation exchange component(s) 920 can generate CDL+T configuration files 1358 in the data repository 1330, individually or in combination. The CDL+T configuration files 1358 correspond to updated versions of specific CDL+T translation files 1356.
[0083] In response to generating the CDL+T configuration file 1358, the translation exchange component(s) 920 can send an instruction 1358 (or in some cases, a request) to the screen capture component(s) 916 to generate one or more screen capture images 1362. The translation exchange component(s) 920 can receive the screen capture image(s) 1362 and can send the screen capture image(s) 1362 to the translator device 1320. The screen capture image(s) 1362 can be sent individually or can be contained within a single file. Receiving the screen capture image(s) 1362 can cause the translator device 1320 to present the UI 1370. The UI 1370 includes a review pane 1374 and control elements including a first control element (labeled "A") and a second control element (labeled "R"). Selection of the first control element via the input data 1372 can cause the translator device 1320 to send an indication 1378 to accept the translation included in the screen capture image(s) 1362. Selection of the second control element indicates rejection of the translation included in the screen capture image 1362, causing the translator device 1360 to present the UI 1360 for further editing with respect to the translation data 1348.
[0084] FIG. 14 illustrates another example of a process flow for the exchange of translation information according to one or more embodiments of the present disclosure. The translation exchange component(s) 920 can obtain a CDL+T configuration file 1410 for a particular natural language from the data repository 1330. The translation exchange component(s) 920 can implement a conversion process 1420 that can convert the CDL+T configuration file 1410, individually or in combination, into a translator+T file 1424. The translator+T file 1424 includes the translation data that exists within the CDL+T configuration file, but the translation data is formatted according to a particular format that can be manipulated by the translator device 1320. The translation exchange component(s) 920 can send the translator+T file 1424 to the translator device 1320.
[0085] The translator device 1320 can receive a translator+T file 1424 and, in response, can operate on the translated translator+T file 1424 by implementing an editing process 1430. The implementation of the editing process 1430 can result in a translator+T file 1434 that includes updated translation data corresponding to the CDL+T configuration file 1410 in a particular natural language. The translator device 1320 can send the translator+T file 1434 to the translation exchange component(s) 920. In response to receiving the translator+T file 1434, the translation exchange component(s) 920 can implement a conversion process 1420, individually or in combination, to convert the translator+T file 1434 into a CDL+T configuration file 1440 in a particular natural language. The translation exchange component(s) 920 can hold the CDL+T configuration file 1440 within the data repository 1330. In some cases, the translation exchange component(s) 920 can generate, individually or in combination, a CDL+L configuration file (not depicted in FIG. 14) for a particular computing device and UI toolkit. In other cases, the translation exchange component(s) 920 can cause the package supply subsystem 710 to generate such a CDL+L configuration file, individually or in combination.
[0086] In response to the generation of the CDL+T configuration file 1440, the translation exchange component(s) 920 can send an instruction 1444 (or in some cases, a request) to the screen capture component(s) 916 to generate one or more screen capture images 1448. The translation exchange component(s) 920 can receive the screen capture image(s) 1448 and can send the screen capture image(s) 1448 to the translator device 1320. The screen capture image(s) 1448 can be sent individually or can be contained within a single file. Receiving the screen capture image(s) 1448 can cause the translator device 1320 to present the UI 1450. The UI 1450 includes a review pane 1452 and control elements including a first control element (labeled "A") and a second control element (labeled "R"). Selection of the first control element via the input data 1454 can cause the translator device 1320 to send an indication 1458 to accept the translation included in the screen capture image(s) 1448. Selection of the second control element indicates rejection of the translation included in the screen capture image(s) 1448, resulting in the translator device 1320 re-executing the editing process 1430 for editing the translation data included in the translator+T file 1434.
[0087] Note that both process flows shown in FIGS. 13 and 14 rely on the separation of the translation mode from other aspects of the composition of the interactive electronic document. Further, by implementing either the process flow shown in FIG. 13 or the process flow shown in FIG. 14, embodiments of the present disclosure provide an efficient mechanism for exchanging the translator platform and the configuration file. Compared to existing technologies, this mechanism significantly reduces human intervention and efficiently uses computing resources when the translation of the interactive electronic document is performed.
[0088] Considering the aspects described herein, exemplary methods that may be performed in accordance with the present disclosure may be better understood, for example, with reference to the flowcharts in FIGS. 15-17. For simplicity of explanation, the exemplary methods disclosed herein are presented and described as a series of blocks (e.g., each block represents an action or operation in the method). However, the exemplary methods are not limited by the order of the blocks and the associated actions or operations, as some blocks may be performed in a different order than shown and described herein and / or concurrently with other blocks. Further, not all of the illustrated blocks and associated actions may be required to perform an exemplary method according to one or more aspects of the present disclosure. Two or more of the exemplary methods (and any other methods disclosed herein) may be performed in combination with each other. Note that the exemplary methods (and any other methods disclosed herein) may alternatively be represented as a series of interrelated states or events, such as in a state diagram.
[0089] The methods according to the present disclosure can be transported and transferred to a computing device, or a system of computing devices (such as a mobile smartphone, a tablet computer, a blade server, etc.) for implementation or storage in a computing device or one or more memory devices functionally coupled to the computing device, either held on a manufactured article or on a computer-readable non-transitory storage medium and executed by one or more processors of the computing device or computing devices. In one aspect, one or more processors, such as one or more processors that implement (e.g., execute) one or more of the disclosed methods, can be employed to implement program code (e.g., processor-executable instructions) held on a memory device or any computer or machine-readable medium to execute one or more of the disclosed methods. Such program code can provide a computer-executable or machine-executable framework for executing the methods described herein.
[0090] FIG. 15 illustrates an exemplary method 1500 for traversing an interactive electronic document according to one or more embodiments of the present disclosure. A computing device can execute the exemplary method 1500 in whole or in part. For that purpose, the computing device includes computing resources that can implement at least one of the blocks included in the exemplary method 1500. Computing resources include, for example, a central processing unit (CPU), a graphics processing unit (GPU), a tensor processing unit (TPU), memory, disk space, incoming bandwidth, and / or outgoing bandwidth, an interface(s) (such as an I / O interface or an API or both), a controller device(s), a power supply, combinations of the above, and / or similar resources. In one example, the computing device can include programming interface(s), an operating system, software for configuring and / or controlling a virtualized environment, firmware, and similar resources.
[0091] The computing device can embody the computing device 110 (FIG. 1) and thus host the application 114 (FIG. 1) and components within the application 114. The computing device can execute the exemplary method 1500 at runtime of the application 114 in response to at least one of the runtime component 140, the coordination component 150, or the presentation component 160 being executed.
[0092] In block 1510, during the execution of application 114 for traversing a series of views of an interactive electronic document, the computing device can present a user interface (UI) corresponding to a view among the series of views. The UI can be presented based on current state data. The current state data includes various types of information, namely, first data defining the current location and position within the interactive electronic document, second data indicating a set of existing responses, third data indicating verification errors, and various other states. The UI can be presented on a display device (e.g., display device 120) integrated with or functionally coupled to the computing device. The UI includes a presentation element representing a prompt and at least one navigation control element. In one example, the series of views forms a questionnaire, and the prompt corresponds to a question within the questionnaire.
[0093] In block 1520, the computing device can continue to execute application 114, and in response, the coordination component 150 can receive, from the presentation component 160, prompt response data that responds to a prompt or navigation response data associated with at least one control element. The prompt response data can be formatted according to JSON and can be received in that format. The navigation response data can also be formatted according to JSON and can be received in that format. As described herein, the coordination component 150 can be configured to cause the presentation of a page / view of an interactive electronic document. Additionally, the presentation component 150 can be configured to render each respective UI corresponding to the page / view on a display device. In one example, each respective UI can include UI130, and the display device can be display device 130. Thus, the exemplary method 1500 can proceed in two different paths: a response path and a navigation path. In FIG. 15, the response path is denoted as "Response" and the navigation path is denoted as "Navigation".
[0094] When proceeding along the response path, in block 1530, the computing device can continue to execute application 114, and in response, the coordination component 150 can send (or pass) the prompt response data to the runtime component 140. As described herein, the runtime component 140 can be configured to apply navigation logic to the current state data and can also be configured to apply branching logic and verification logic (collectively referred to as traversal logic) to the prompt response data. The navigation logic corresponds to a navigation mode for an interactive electronic document. For example, the navigation mode can be one of a linear mode, a hub and spoke mode, or a CAT mode.
[0095] Also, in the response path, in response to further executing application 114, at block 1540, runtime component 140 can apply at least one of branch logic or verification logic to the prompt response data and the current state data. As a result, runtime component 140 can generate the next state data. The branch logic and the verification logic can be formatted according to CDL. Although not shown, as part of exemplary method 1500, a computing device can also obtain branch logic and verification logic via runtime component 140. Obtaining branch logic and verification logic by runtime component 140 can include receiving first human-readable content that defines the branch logic and second human-readable content that defines the verification logic. The first human-readable content and the second human-readable content are formatted according to CDL. In some embodiments, as described herein, runtime component 140 includes an interpreter component, and as part of exemplary method 1500, runtime component 140 can apply branch logic or verification logic by directly applying branch logic or verification logic in CDL via the interpreter component.
[0096] As it progresses along the navigation path, at block 1550, the computing device can continue to execute application 114, and in response, coordination component 150 can send (or pass) navigation response data to runtime component 140.
[0097] Regardless of whether exemplary method 1500 progresses in the response path or in the navigation path, at block 1560, the computing device can optionally apply one or more other types of logic via runtime component 140. Those other types of logic can include, for example, one or more of invalidation logic, scoring logic, or export logic.
[0098] In block 1570, the computing device can continue to execute application 114, and in response, the runtime component 140 can apply navigation logic to the current state data. As part of exemplary method 1500, the computing device can obtain navigation logic by receiving, via the runtime component, a group of rules corresponding to a navigation mode that defines a traversal pattern of a series of views. The group of rules can be received in a native format for a rule library included in the runtime component.
[0099] As described herein, the runtime component 140 is not limited to a rule set, and thus, exemplary method 1500 is not limited either. In fact, in some embodiments, and as part of exemplary method 1500, the computing device can obtain navigation logic by selecting, via the runtime component, a navigation mode component that defines a navigation mode corresponding to a navigation mode that defines a traversal pattern of a series of views. In such embodiments, the runtime component 140 can apply navigation logic to the current state data by using an interpreter component that can be included in the runtime component 140 and at least executing the navigation mode component via the interpreter component.
[0100] In block 1580, the computing device can continue to execute application 114, and in response, runtime component 140 can configure the following state data as the current state data. Next, the flow of the exemplary method can continue to block 1510, and in response to the computing device applying navigation logic, based on the following state data, the computing device can present a second UI corresponding to a second view among a series of views. The second UI can include a presentation element representing a second prompt and at least one second navigation control element.
[0101] FIG. 16 illustrates an exemplary method 1600 for presenting a page / view of an interactive electronic document in accordance with one or more embodiments of the present disclosure. A computing device can implement the exemplary method 1600 in its entirety or in part. In some cases, a computing device implementing the exemplary method 1500 can also implement the exemplary method 1600. As mentioned, the exemplary method 1600 can be implemented as part of implementing block 1510 of the exemplary method 1500.
[0102] A computing device implementing the exemplary method 1600 can embody computing device 110 (FIG. 1) and thus host application 114 (FIG. 1) and components within application 114. The computing device can execute the exemplary method 1600 at runtime of application 114 in response to executing at least one of runtime component 140, coordination component 150, or presentation component 160.
[0103] In block 1610, the computing device can execute (or continue to execute) application 114, and in response, coordination component 150 can obtain (e.g., receive) data that defines a prompt from runtime component 140. As mentioned, a prompt can include a question or a call to an action.
[0104] In block 1620, the computing device can continue to execute application 114, and in response, the coordination component can instruct presentation component 160 to draw a UI that includes presentation elements representing the prompt. In some cases, the UI includes a plurality of presentation elements corresponding to each prompt.
[0105] In block 1630, the computing device can continue to execute application 114, and in response, presentation component 160 can draw the UI on the display device according to a desired or otherwise defined set of visualization resources. As mentioned, the UI can be one of a plurality of UIs 130 such as UI132, and the display device can be display device 130 (Figure 1).
[0106] Although not shown in FIG. 16, exemplary method 1600 can also include receiving, by coordination component 150, data that defines layout logic configured for a combination of an interactive electronic document, a particular natural language, and a particular visualization resource. Such data can be formatted according to a core definition language. Thus, in some embodiments, instructing presentation component 160 to render a UI can include passing, to the presentation component, data that defines layout logic for interpretation by a library of UI elements (e.g., UI element library 166 (FIG. 1)). The library of UI elements can include at least one presentation element and at least one control element. Next, rendering the UI in a display device by presentation component 160 can include, at runtime, obtaining UI elements from the library of UI elements and providing one or more UI elements for inclusion in a defined layout of areas within the UI. Such UI elements can be defined by the layout logic and configured according to one or more visualization resources of the display device, including graphic resolution and size of the visualization area.
[0107] FIG. 17 illustrates an example method 1700 for validating a configuration package for a set of views, according to one or more embodiments of the present disclosure. Validating the configuration package may enable maintaining an accurate validation state of the configuration package. A computing device may implement the example method 1700 in whole or in part. To that end, the computing device includes computing resources that may implement at least one of the blocks included in the example method 1700. The computing resources include, for example, a CPU, a GPU, a TPU, memory, disk space, incoming and / or outgoing bandwidth, interface(s) (such as an I / O interface or API or both), controller device(s), power supply, combinations of the above, and / or similar resources. In one example, the computing device may include programming interface(s), an operating system, software for configuration and / or control of the virtualization environment, firmware, and similar resources.
[0108] A computing device implementing the example method 1700 may host the validation subsystem 1210 ( FIG. 12A ) and the components within the validation subsystem 1210. The computing device may perform the example method 1700 in response to executing one or more of the first component 1250, the second component 1260, or the third component 1270, for example.
[0109] At block 1705, the computing device may determine (e.g., via the first component 1250) that a first configuration file has been modified. The configuration file may be one of a CDL+D configuration file, a CDL+T configuration file, or a CDL+L configuration file.
[0110] In block 1710, the computing device can identify a configuration package that includes a configuration file (e.g., via the first component 1250). The configuration package can be, for example, one of the configuration packages 654 (FIG. 6B).
[0111] In block 1715, the computing device can identify one or more second configuration files that depend on the first configuration file (e.g., via the first component 1250). The second configuration file(s) are included in the configuration package.
[0112] In block 1720, the computing device can classify each of the second configuration file(s) as an unvalidated file (e.g., via the first component 1250).
[0113] In block 1725, the computing device can cause a list of the second configuration file(s) to be presented (e.g., via the first component 1250). The list can be presented on a display device integrated with or functionally coupled to the computing device.
[0114] Collectively, blocks 1705 - 1725 can form a method for updating the validation status of the configuration file.
[0115] In block 1730, the computing device can receive input data indicating a selection of an unvalidated file (e.g., via the first component 1250).
[0116] In block 1735, the computing device can update or cause the update of an unverified file. The computing device can cause the update of an unverified file, for example, via a second component 1260. The computing device can cause an assembly subsystem 910 (FIG. 9) to update the unverified file. In some embodiments, the computing device can also host the assembly subsystem 910 and components within the assembly subsystem 910. Thus, the computing device can update the unverified file via its subsystem.
[0117] In block 1740, the computing device can apply a verification test to an unverified file (e.g., via a third component 1270). The verification test can be specific to the type of the unverified file. That is, the verification test applied to a CDL+D configuration file can be different from the verification test applied to a CDL+T configuration file. Similarly, the verification test applied to a CDL+D configuration file or a CDL+T configuration file can be different from the verification test applied to a CDL+L configuration file. For example, applying a verification test for a CDL+D configuration file can include executing one or more no-code scripts and / or one or more low-code scripts where each script emulates an end-user response to a prompt(s) defined in the CDL+D configuration file. In response to executing one such script (no-code script or low-code script), the computing device can automatically determine whether a logical statement or logical formula, or both, are properly implemented.
[0118] As another example, applying a validation test for a CDL+T configuration file can, in some embodiments, include applying a machine learning model (such as a GANN) to determine the validity or invalidity of the configuration file. More specifically, a computing device can implement a GANN to translate text corresponding to a natural language statement in a first natural language from the first natural language to a second natural language. Additionally, the GANN can reverse translate a previously translated text from the second natural language to the first natural language and determine whether any characteristic errors or defects in the translation of the text can be detected by comparing such a reverse translation with the original natural language statement in the first natural language. Note that in some cases, when a computing device applies such a validation test, the validation test can use a customized set of one or more dictionaries. As mentioned, in one example, the dictionary can be specifically applicable to the domain of clinical trial language.
[0119] As yet another example, applying a validation test for a CDL+L configuration file can, in some cases, include applying a group of one or more geometric conditions that define sufficient visualization output for the CDL+L configuration file. Since a rendering component (such as the presentation component 160) can draw UI elements in the UI on a display device, the rendering component can access data indicating the arrangement of UI elements within the UI. As part of applying the validation test, a computing device can determine whether the rendered (or drawn) UI elements satisfy one or more geometric conditions.
[0120] Regardless of the type of configuration file and validation test, a successful application of a validation test (or, in some cases, multiple validation tests) to a configuration file (e.g., CDL+D, CDL+T, or CDL+L) results in the configuration file being verified. A state variable can indicate the verification state of the configuration file.
[0121] In block 1742, the computing device can determine (e.g., via the first component 1250) whether an updated unverified file has been verified. A negative determination (the "no" branch) results in the flow of the exemplary method 1700 being directed to block 1745, and the computing device can classify the updated unverified file as unverified before the flow of the exemplary method 1700 continues to block 1735 for further updates. An affirmative determination (the "yes" branch) results in the flow of the exemplary method 1700 being directed to block 1750, and the computing device can classify the updated unverified file as a verified configuration file.
[0122] In block 1755, the computing device can add the verified configuration to the configuration package (e.g., via the second component 1260).
[0123] To provide additional context, the methods and systems executed on a computer of the present disclosure are illustrated in FIG. 18 and may be executed on a computing system 1800 described below. Similarly, the methods and systems executed on a computer disclosed herein can utilize one or more computing devices to perform one or more functions at one or more locations. FIG. 18 is a block diagram illustrating an example of a computing system 1800 for executing the disclosed methods and / or implementing the disclosed systems. The computing system 1800 shown in FIG. 18 is merely an example of a computing system and is not intended to suggest any limitation as to the use or functionality scope of the operating environment architecture. Also, the operating environment should not be construed as having any dependencies or requirements related to any one of the components illustrated in the exemplary operating environment or any combination of components.
[0124] The computer-executed methods and systems according to the present disclosure can operate in a number of other general-purpose or special-purpose computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations that may be suitable for use in the systems and methods include, but are not limited to, personal computers, server computers, laptop devices, and multiprocessor systems. Additional examples include set-top boxes, programmable household appliances, network PCs, minicomputers, mainframe computers, and distributed computing environments, such as those that include any of the above systems or devices.
[0125] The processing of the disclosed computer-executed methods and systems can be performed by software components. The disclosed systems and computer-executed methods can be described in a general context where computer-executable instructions are executed by one or more computers or other processing devices. Generally, program modules can include program code, routines, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types. The disclosed computer-executed methods can also be implemented in a grid-style distributed computing system where tasks are performed by remote computing devices linked through a communication network. In a distributed computing system, program modules can be located on both local computer storage media, including memory storage devices, and remote computer storage media.
[0126] Furthermore, the systems and computer-implemented methods disclosed herein may be implemented via a general-purpose computing device in the form of a computing device 1801. In some embodiments, the computing device 1801 may embody the computing device 110 (FIG. 1). The components of the computing device 1801 can include one or more processors 1803, a system memory 1812, and a system bus 1813 that functionally couples various system components including the one or more processors 1803 to the system memory 1812. The system can utilize parallel computing in some cases.
[0127] The system bus 1813 represents one or more of several possible types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, or a local bus, using any of a variety of bus architectures. The system bus 1813, and all buses specified herein, can be implemented via a wired or wireless network connection, and each of the subsystems including the one or more processors 1803, one or more mass storage devices 1804 (referred to as mass storage 1804), an operating system 1805, software 1806, data 1807, a network adapter 1808, a system memory 1812, an input / output interface 1810, a display adapter 1809, a display device 1811, and a human machine interface 1802 can be physically located remotely and connected through a bus of this form, and can be included within one or more remote computing devices 1814a, b, c that effectively implement a fully distributed system.
[0128] Computing device 1801 typically includes a variety of computer-readable media. Examples of readable media can be any available media accessible by computing device 1801, and can include, for example, both volatile and non-volatile media, removable and non-removable media. System memory 1812 includes computer-readable media in the form of volatile memory such as random access memory (RAM), and / or non-volatile memory such as read-only memory (ROM). System memory 1812 typically includes data such as data 1807 and / or program modules such as operating system 1805 and software 1806, which are immediately accessible by and / or currently being operated on by one or more processors 1803.
[0129] Computing device 1801 can also include other removable / non-removable, volatile / non-volatile computer storage media. As an example, FIG. 18 illustrates a mass storage 1804 that can provide non-volatile storage of computer code, computer-readable instructions, data structures, program modules, and other data for computing device 1801. For example, mass storage 1804 can be embodied as or include a hard disk, a removable magnetic disk, a removable optical disk, a magnetic cassette or other magnetic storage device, a flash memory card, a CD-ROM, a digital versatile disk (DVD) or other optical storage, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), etc.
[0130] Optionally, any number of program modules, including, by way of example, operating system 1805 and software 1806, can be stored in mass storage 1804. Each of operating system 1805 and software 1806 (or some combination thereof) can include elements of programming and software 1806. Data 1807 can also be stored in mass storage 1804. Data 1807 can be stored in any one or more databases. Examples of such databases include DB2®, Microsoft® Access, Microsoft® SQL Server, Oracle®, mySQL, PostgreSQL, and the like. The databases can be centralized or distributed across multiple systems. In some cases, computing device 1801 can host one or more of the various subsystems described herein. Execution of software 1806 by processor(s) 1803 can cause computing device 1801 to provide at least a portion of the functionality described herein related to the assembly and presentation of interactive electronic documents. In an exemplary scenario where computing device 1801 embodies computing device 110, software 1806 can include application 114 and components within application 114, such as runtime component 140, coordination component 150, and presentation component 160.
[0131] In some configurations, one or more of the subsystems described herein may be hosted in a distributed fashion. Thus, software 1806 may be replicated among such computing devices. In other configurations, some components of software 1806 can be localized to a particular one of the computing devices, and other components of software 1806 can be localized to a second particular one of the computing devices. In such embodiments, execution of software 1806 by at least one processor present in a combination of computing device 1801 and remote computing devices 1814a, b, c can cause such a computing system to provide at least some of the functionality described herein in connection with the assembly and presentation of interactive electronic documents. In some embodiments, at least one of remote computing devices 1814a, b, c can embody or host package delivery subsystem 710 (FIG. 7). Such a computing device can also include software, such as software 1806, that can embody or include delivery component 718, configuration component 714, and packaging component 716. Additionally, or in some embodiments, computing system 1800 can also embody or include a computing system that enables the generation and management of interactive electronic documents in accordance with the aspects described herein. In short, computing system 1800 can, in some cases, host computing system 900, which includes verification subsystem 1210 and components within verification subsystem 1210 (e.g., first component 1250, second component 1260, and third component 1270).Thus, in some embodiments, computing system 1800 can include an assembly subsystem 910, a device management subsystem 930, a package supply subsystem 710, device synchronization component(s) 970, a storage subsystem 980, and in some cases, a verification subsystem 1210 and components within verification subsystem 1210. In such embodiments, software 1806 can be replicated among remote computing devices 1814a, b, c and can embody or include various components and / or subsystems such as assembly subsystem 910, device management subsystem 930, package supply subsystem 710, device synchronization component(s) 970, and in some cases, verification subsystem 1210 and components within verification subsystem 1210. Execution of software 1806 by one or more processors included in remote computing devices 1814a, b, c can provide the functionality described herein in connection with those subsystems and components. Memory devices within remote computing devices 1814a, b, c can embody or include data included in storage subsystem 980 and storage subsystem 980.
[0132] The present disclosure is not limited to hosting the computing system 900, and in some cases, it should be noted that the verification subsystem 1210 and the components within the verification subsystem 1210 are included in a distributed manner. In some cases, a single computing device, for example, one of the computing devices 1801 or the remote computing devices 1814a, b, c, can host the computing system 900, which in some cases includes the verification subsystem 1210 and the components within the verification subsystem 1210. That single computing device includes software 1806 and can embody or include various components and / or subsystems such as the assembly subsystem 910, the device management subsystem 930, the package supply subsystem 710, the device synchronization component(s) 970, and in some cases, the verification subsystem 1210 and the components within the verification subsystem 1210. The execution of the software 1806 by one or more processors included in that single computing device can provide the functionality described herein in relation to those subsystems and components. The memory device within that single computing device can embody or include the storage subsystem 980 and the data included in the storage subsystem 980.
[0133] In another aspect, an end user can input commands and data into computing device 1801 via an input device (not shown). Examples of such input devices include, but are not limited to, a keyboard, a pointing device (e.g., a "mouse"), a microphone, a joystick, a scanner, a haptic input device such as gloves and other body covers, and the like. These and other input devices can be connected to one or more processors 1803 via a human machine interface 1802 coupled to system bus 1813, but can also be connected by other interfaces and bus structures such as a parallel port, a game port, an IEEE 1394 port (also known as a Firewire port), a serial port, or a universal serial bus (USB).
[0134] In another aspect, the display device 1811 can also be connected to the system bus 1813 via an interface such as the display adapter 1809. In some configurations, the computing device 1801 can have two or more display adapters 1809, and the computing device 1801 can have two or more display devices 1811. For example, the display device 1811 can be a monitor, an LCD (liquid crystal display), or a projector. In addition to the display device 1811, other output peripheral devices can include components such as speakers (not shown) and printers (not shown) that can be connected to the computing device 1801 via the input / output interface 1810. Any operation and / or result of the method can be output to the output device in any form. Such output can be any form of visual representation including, but not limited to, text, graphics, animation, audio, tactile, etc. Thus, the display device 1811 can present various user interfaces and other information (data, metadata, and / or configuration attributes) related to tenant-specific services. The display device 1811 and the computing device 1801 can be part of one device or separate devices. The display device 1811 can embody the display device 130 (FIG. 1).
[0135] Computing device 1801 can operate in a network environment using a logical connection to one or more remote computing devices 1814a, b, c and / or one or more storage server devices 1820. For example, the remote computing device can be a personal computer, a portable computer, a smartphone, a server, a router, a network computer, a peer device, or other common network nodes, etc. The logical connection between the computing device 1801, the remote computing devices 1814a, b, c, and the server storage device(s) 1820 among the server storage device(s) can be made via a network 1815 such as a local area network (LAN) and / or a general wide area network (WAN). Such network connections can be through a network adapter 1808. The network adapter 1808 can be implemented in both wired and wireless environments.
[0136] For illustrative purposes, application programs, and other executable program components such as operating system 1805 are illustrated herein as separate blocks, but it is recognized that such programs and components exist at various times in different storage components of the computing device 1801 and are executed by one or more processors 1803 of the computer. Implementations of software 1806 can be stored in or transmitted through some form of computer-readable medium. Any of the disclosed methods can be executed by computer-readable instructions embodied on a computer-readable medium. The computer-readable medium can be any available medium that can be accessed by a computer. As described herein, "computer storage medium" includes volatile and non-volatile, removable and non-removable media implemented by any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data.
[0137] Many other exemplary embodiments arise from the foregoing detailed description and the accompanying drawings. Example 1: A computing device comprising at least one processor that executes computer-executable components stored in at least one memory device, the computer-executable components including a runtime component configured to apply navigation logic corresponding to a navigation mode for a series of views, each view of the series of views including a respective prompt, and a coordination component configured to cause the presentation of at least one view of the series of views in response to the runtime component applying the navigation logic.
[0138] Example 2: The computing device of Example 1, wherein the computer-executable components further include a presentation component configured to render a respective user interface corresponding to at least one view.
[0139] Example 3: The computing device of Example 1, wherein the runtime component includes a runtime interface that functionally couples the runtime component to the coordination component.
[0140] Example 4: The computing device of Example 1, wherein the series of views represents interactive views and the navigation mode defines a manner of traversing an interactive electronic document.
[0141] Example 5: The computing device of Example 4, wherein the navigation mode corresponds to a linear mode, a hub-and-spoke mode, or a computerized adaptive testing (CAT) mode.
[0142] Example 6: The computing device according to Example 4, wherein the interactive electronic document includes a questionnaire corresponding to one of clinical outcome evaluation, triage evaluation, neuropsychological evaluation, college entrance suitability evaluation, vocational evaluation, expert certification qualification evaluation, survey, or an independent task guide.
[0143] Example 7: The computing device according to Example 1, wherein a series of views represent a consent document, a privacy practice document, or a waiver consent document.
[0144] Example 8: Causing the presentation of at least one view among a series of views further includes implementing layout logic in response to a runtime component applying navigation rules, the layout logic corresponding to a specific combination of two or more of a proprietary computing device, a natural language, or a user interface (UI) toolkit, the computing device according to Example 1.
[0145] Example 9: The computing device according to claim 8, further comprising a library of user interface (UI) elements including at least one presentation element and at least one control element, wherein implementing layout logic includes obtaining UI elements from the library of UI elements via a first interface and supplying one or more UI elements for inclusion in a defined layout of an area within a first user interface corresponding to a view among at least one view.
[0146] Example 10: The computing device according to Example 1, wherein the runtime component is further configured to apply at least one of branching logic or verification logic based on input data in response to a first prompt in a first view among at least one view.
[0147] Example 11: The computing device according to Example 1, wherein the coordination component is further configured to implement translation logic for a first view among at least one view.
[0148] Example 12: Implementing translation logic includes determining that a translation rule is satisfied for a specific view among at least one view, and translating a first natural language statement presented in a first natural language within the specific view into a second natural language statement in a second natural language, for the computing device according to Example 10.
[0149] Example 13: A method executed by a computer, including presenting a user interface (UI) corresponding to a view among a series of views during execution of an application that traverses the series of views of an interactive electronic document based on current state data, where the UI includes a presentation element representing a prompt and at least one navigation control element; receiving, by a coordination component of the application, prompt response data from a presentation component of the application in response to the prompt; sending, by the coordination component, the prompt response data to a runtime component of the application; applying, by the runtime component, at least one of branch logic or verification logic to the prompt response data and the current state data to yield next state data; applying, by the runtime component, navigation logic to the current state data; and presenting, in response to applying the navigation logic, a second UI corresponding to a second view among the series of views based on the next state data, where the second UI includes a second prompt and at least one second navigation control element.
[0150] Example 14: Receiving, by a coordination component, navigation response data corresponding to the selection of a specific navigation control among at least one second navigation control from a presentation component; transmitting, by the coordination component, the navigation response data to a runtime component; applying, by the runtime component, navigation logic to next state data; and presenting, in response to applying the navigation logic, a third UI corresponding to a third view among a series of views based on the next state data, the method executed by a computer according to Example 13.
[0151] Example 15: Presenting a UI includes obtaining, by a coordination component, data defining a prompt from a runtime component; instructing, by the coordination component, a presentation component to draw the UI; and drawing, by the presentation component, the UI on a display device, the method executed by a computer according to Example 13.
[0152] Example 16: Obtaining navigation logic by receiving, by a runtime component, a group of rules corresponding to a navigation mode defining a traversal manner of a series of views, the group of rules being received in a native format for a rule library included in the runtime component, the method executed by a computer according to Example 13.
[0153] Example 17: Obtaining navigation logic by a runtime component further includes holding the group of rules in a rule library, the method executed by a computer according to Example 13.
[0154] Example 18: A method executed by a computer according to Example 13, further including obtaining branch logic and verification logic by a runtime component.
[0155] Example 19: A method executed by a computer according to Example 18, wherein obtaining branch logic and verification logic by a runtime component is receiving first human-readable content defining the branch logic and second human-readable content defining the verification logic, the first human-readable content and the second human-readable content being formatted according to a core definition language, and converting the branch logic and the verification logic into a second group of rules formatted according to a native format.
[0156] Example 20: A method executed by a computer according to Example 15, wherein the runtime component includes a rule component, and applying navigation logic, branch logic, or verification logic by the runtime component includes applying one or more of a specific rule of a group of rules or a specific rule of a second group of rules by the rule component.
[0157] Example 21: A method executed by a computer according to Example 13, further including obtaining navigation logic by selecting a navigation mode component that defines a navigation mode corresponding to a traversal manner of a series of views by a runtime component.
[0158] Example 22: A method executed by a computer according to Example 21, further including obtaining branch logic and verification logic by a runtime component.
[0159] Example 23: A method executed by a computer according to Example 22, which includes obtaining branch logic and verification logic by a runtime component, where obtaining includes receiving first human-readable content defining the branch logic and second human-readable content defining the verification logic, and the first human-readable content and the second human-readable content are formatted according to a core definition language.
[0160] Example 24: A method executed by a computer according to Example 21, where the runtime component includes an interpreter component, and applying navigation logic by the runtime component includes executing a navigation mode component by the interpreter component.
[0161] Example 25: A method executed by a computer according to Example 23, where the runtime component includes an interpreter component, and applying branch logic or verification logic includes directly applying the branch logic or verification logic in a core definition language by the interpreter component.
[0162] Example 26: A method executed by a computer according to Example 13, where the prompt response data is formatted according to JavaScript Object Notation (JSON).
[0163] Example 27: A method executed by a computer according to Example 14, where the navigation response data is formatted according to JavaScript Object Notation (JSON).
[0164] Example 28: A method executed by a computer according to Example 14, which includes receiving data defining layout logic configured for a combination of an interactive electronic document, a specific natural language, and a specific visualization resource, and further includes receiving, where the data is formatted according to a code definition language.
[0165] Example 29: A method, executed by a computer as described in Example 21, further comprising a library of user interface (UI) elements including at least one presentation element and at least one control element, and passing data defining layout logic to a presentation component for interpretation by the library of UI elements, the data instructing the presentation component to draw the UI.
[0166] Example 30: A method, executed by a computer as described in Example 29, wherein drawing the UI on a display device by a presentation component includes, at runtime, retrieving UI elements from a library of UI elements and supplying one or more UI elements for inclusion in a defined layout of areas within the UI.
[0167] Example 31: A method, executed by a computer as described in Example 30, wherein the UI elements are configured according to one or more visualization resources of the display device, and the one or more visualization resources are defined by layout logic and include graphic resolution and size of the visualization area.
[0168] Example 32: A method, executed by a computer as described in claim 14, further comprising receiving data defining translation logic and applying the translation logic to data defining a prompt.
[0169] Example 33: At least one non-transitory computer-readable storage medium having processor-executable instructions encoded thereon, the processor-executable instructions, in response to execution, cause a computing device to present, during execution of an application that traverses a series of views of an interactive electronic document based on current state data, a user interface (UI) corresponding to a view among the series of views, the UI including a presentation element representing a prompt and at least one navigation control element, receive, by a coordination component of the application, prompt response data from a presentation component of the application in response to the prompt, transmit, by the coordination component, the prompt response data to a runtime component of the application, cause, by the runtime component, at least one of branching logic or verification logic to be applied to the prompt response data and the current state data to yield next state data, apply, by the runtime component, navigation logic to the current state data, and in response to applying the navigation logic, present a second UI corresponding to a second view among the series of views, the second UI including a second prompt and at least one second navigation control element, based on the next state data.
[0170] Example 34: In response to further execution, the processor-executable instructions cause a computing device to further receive, by a coordination component, navigation response data corresponding to a selection of a specific navigation control among at least one second navigation control from a presentation component, transmit the navigation response data to a runtime component by the coordination component, apply navigation logic to the next state data by the runtime component, and cause, in response to applying the navigation logic, a third UI corresponding to a third view among a series of views to be presented based on the next state data, the at least one non-transitory computer-readable storage medium according to Example 33.
[0171] Example 35: Presenting the UI includes, by a coordination component, obtaining data defining a prompt from a runtime component, instructing, by the coordination component, a presentation component to draw the UI, and drawing the UI on a display device by the presentation component, the at least one non-transitory computer-readable storage medium according to Example 33.
[0172] Example 36: In response to further execution, the processor-executable instructions cause a computing device to further obtain navigation logic by receiving, by the runtime component, a group of rules corresponding to a navigation mode that defines a manner of traversal of a series of views received in a native format for a rule library included in the runtime component, the at least one non-transitory computer-readable storage medium according to Example 33.
[0173] Example 37: Obtaining navigation logic by the runtime component further includes holding a group of rules in a rule library, the at least one non-transitory computer-readable storage medium according to Example 33.
[0174] Example 38: At least one non-transitory computer-readable storage medium according to Example 33, further comprising obtaining branch logic and verification logic by a runtime component.
[0175] Example 39: At least one non-transitory computer-readable storage medium according to Example 38, wherein obtaining branch logic and verification logic by a runtime component comprises receiving first human-readable content defining the branch logic and second human-readable content defining the verification logic, the first human-readable content and the second human-readable content being formatted according to a core definition language, and converting the branch logic and the verification logic into a second group of rules formatted according to a native format.
[0176] Example 40: At least one non-transitory computer-readable storage medium according to Example 35, wherein the runtime component includes a rule component, and applying navigation logic, branch logic, or verification logic by the runtime component comprises applying one or more of a specific rule of a group of rules or a specific rule of a second group of rules by the rule component.
[0177] Example 41: At least one non-transitory computer-readable storage medium according to claim 33, wherein processor-executable instructions further cause a computing device to obtain navigation logic by selecting, in response to further execution, a navigation mode component corresponding to a navigation mode that defines a manner of traversing a series of views by a runtime component.
[0178] Example 42: At least one non-transitory computer-readable storage medium according to Example 41, wherein processor-executable instructions cause a computing device to further obtain branching logic and verification logic by a runtime component in response to further execution.
[0179] Example 43: At least one non-transitory computer-readable storage medium according to Example 42, wherein obtaining branching logic and verification logic by a runtime component includes receiving first human-readable content defining the branching logic and second human-readable content defining the verification logic, and the first human-readable content and the second human-readable content are formatted according to a core definition language.
[0180] Example 44: At least one non-transitory computer-readable storage medium according to Example 41, wherein the runtime component includes an interpreter component, and applying navigation logic by the runtime component includes executing a navigation mode component by the interpreter component.
[0181] Example 45: At least one non-transitory computer-readable storage medium according to Example 43, wherein the runtime component includes an interpreter component, and applying the branching logic or the verification logic includes directly applying the branching logic or the verification logic in a core definition language by the interpreter component.
[0182] Example 46: At least one non-transitory computer-readable storage medium according to Example 33, wherein the prompt response data is formatted according to JavaScript Object Notation (JSON).
[0183] Example 47: At least one non-transitory computer-readable storage medium according to claim 44, wherein the navigation response data is formatted according to JavaScript Object Notation (JSON).
[0184] Example 48: The at least one non-transitory computer-readable storage medium according to claim 44, wherein processor-executable instructions cause a computing device to receive data that defines layout logic configured for a combination of an interactive electronic document, a particular natural language, and particular visualization resources, formatted according to a code definition language, in response to further execution.
[0185] Example 49: The at least one non-transitory computer-readable storage medium according to claim 41, wherein a computing device comprises a library of user interface (UI) elements including at least one presentation element and at least one control element, and passing data that defines layout logic to a presentation component for interpretation by the library of UI elements, including instructing the presentation component to draw the UI on the presentation component.
[0186] Example 50: The at least one non-transitory computer-readable storage medium according to Example 49, wherein drawing the UI on a display device by a presentation component includes obtaining UI elements from a library of UI elements at runtime and providing one or more UI elements for inclusion in a defined layout of areas within the UI.
[0187] Example 51: A computing device comprising one or more processors and one or more memory devices storing processor-executable instructions, wherein the processor-executable instructions, in response to execution by the one or more processors, cause the computing device to present, during execution of an application that traverses a series of views of an interactive electronic document based on current state data, a user interface (UI) corresponding to a view among the series of views, the UI including a presentation element representing a prompt and at least one navigation control element, receive, by a coordination component of the application, prompt response data in response to the prompt from a presentation component of the application, send, by the coordination component, the prompt response data to a runtime component of the application, apply, by the runtime component, at least one of branch logic or verification logic to the prompt response data and the current state data to yield next state data, apply, by the runtime component, navigation logic to the current state data, and in response to applying the navigation logic, cause to be presented a second UI corresponding to a second view among the series of views, the second UI including a second prompt and at least one second navigation control element based on the next state data.
[0188] Example 52: The computing device according to Example 51, wherein the processor-executable instructions, in further response to execution, cause the computing device to further receive, by the coordination component, navigation response data corresponding to a selection of a particular navigation control among at least one second navigation control from the presentation component, send, by the coordination component, the navigation response data to the runtime component, apply, by the runtime component, navigation logic to the next state data, and in response to applying the navigation logic, cause to be presented a third UI corresponding to a third view among the series of views based on the next state data.
[0189] Example 53: A computing device according to Example 51, wherein presenting a UI includes: obtaining, by a coordination component, data defining a prompt from a runtime component; instructing, by the coordination component, a presentation component to draw the UI; and drawing, by the presentation component, the UI on a display device.
[0190] Example 54: A computing device according to Example 51, wherein processor-executable instructions cause the computing device, in response to further execution, to further obtain navigation logic by receiving, by a runtime component, a group of rules corresponding to a navigation mode that defines a traversal manner of a series of views received in a native format for a rule library included in the runtime component.
[0191] Example 55: A computing device according to Example 51, wherein obtaining navigation logic by a runtime component further includes holding a group of rules in a rule library.
[0192] Example 56: A computing device according to Example 51, wherein processor-executable instructions cause the computing device, in response to further execution, to further obtain branching logic and verification logic by a runtime component.
[0193] Example 57: A computing device as described in Example 56, wherein a runtime component obtains branching logic and verification logic by receiving first human-readable content defining the branching logic and second human-readable content defining the verification logic, the first human-readable content and the second human-readable content being formatted according to a core definition language, and converting the branching logic and the verification logic into a second group of rules formatted according to a native format.
[0194] Example 58: A computing device as described in Example 53, wherein the runtime component includes a rule component, and applying navigation logic, branching logic, or verification logic by the runtime component includes applying one or more of a specific rule of a group of rules or a specific rule of a second group of rules by the rule component.
[0195] Example 59: A computing device as described in Example 51, wherein processor-executable instructions cause the computing device to further obtain navigation logic by selecting, in response to further execution, a navigation mode component corresponding to a navigation mode that defines a manner of traversing a series of views by a runtime component.
[0196] Example 60: A computing device as described in Example 59, wherein processor-executable instructions cause the computing device to further obtain branching logic and verification logic by a runtime component in response to further execution.
[0197] Example 61: A computing device according to Example 60, wherein obtaining branching logic and verification logic by a runtime component includes receiving first human-readable content defining the branching logic and second human-readable content defining the verification logic, the first human-readable content and the second human-readable content being formatted according to a core definition language.
[0198] Example 62: A computing device according to Example 59, wherein the runtime component includes an interpreter component, and applying navigation logic by the runtime component includes executing a navigation mode component by the interpreter component.
[0199] Example 63: A computing device according to Example 61, wherein the runtime component includes an interpreter component, and applying the branching logic or the verification logic includes directly applying the branching logic or the verification logic in the core definition language by the interpreter component.
[0200] Example 64: A computing device according to Example 51, wherein the prompt response data is formatted according to JavaScript Object Notation (JSON).
[0201] Example 65: A computing device according to Example 62, wherein the navigation response data is formatted according to JavaScript Object Notation (JSON).
[0202] Example 66: A computing device according to Example 62, wherein the processor-executable instructions cause the computing device to receive data defining layout logic configured for a combination of an interactive electronic document, a specific natural language, and specific visualization resources, the data being formatted according to a code definition language, in response to further execution.
[0203] Example 67: A computing device comprising a library of user interface (UI) elements including at least one presentation element and at least one control element, and passing data defining layout logic to a presentation component for interpretation by the library of UI elements, the data instructing the presentation component to draw the UI. A computing device according to Example 59.
[0204] Example 68: A computing device according to Example 67, wherein drawing the UI on a display device by a presentation component includes, at runtime, retrieving UI elements from a library of UI elements and supplying one or more UI elements for inclusion in a defined layout of areas within the UI.
[0205] It should be understood that the methods and systems described herein are not limited to the specific operations, processes, components, or structures described, nor to the order or particular combination of such operations or components. It should also be understood that the terms used herein are for the purpose of describing exemplary embodiments only and are not intended to be limiting or restrictive.
[0206] As used herein, the singular forms "a", "an", and "the" include both singular and plural referents unless the context clearly dictates otherwise. Values expressed as approximations by use of the antecedent "about" or "approximately" are to be construed as including reasonable variations from the reference value. When such approximations are included in a range, not only are the endpoints considered to be approximated, but the magnitude of the range is also considered to be approximated. Lists are to be considered exemplary, and unless the context explicitly dictates otherwise, there are no limitations or restrictions on the elements that make up the list or the order in which the elements are listed.
[0207] Throughout the specification and claims of the present disclosure, the following terms have the meanings as described: "comprise", and variations such as "comprising" and "comprises" mean, for example, including, but not limited to, other additives, components, elements, or operations, and are not intended to exclude these. Variations such as "include" and "including" do not mean being limited or restricted to what is shown to be included, nor are they intended to exclude what is not shown. "May" means permissive but not restrictive or limiting. "Optional" or "optionally" means that it may or may not be included without changing the result or what is described. Variations such as "prefer", "preferred" or "preferably" are exemplary and mean more ideal but not essential. "Such as" means serving merely as an example.
[0208] The operations and components described herein for use in performing the disclosed methods and constructing the disclosed systems are illustrative unless the context explicitly indicates otherwise. When combinations, subsets, interactions, groups, etc. of these operations and components are disclosed, specific references to each of their various individual and collective combinations and permutations may not be explicitly disclosed, but each is to be understood as being specifically contemplated and described herein for all methods and systems. This applies to all aspects of the present application, including, but not limited to, the operations in the disclosed methods and / or the components disclosed in the systems. Thus, if there are various additional operations that can be performed or components that can be added, each of these additional operations can be performed, and components can be added in any particular embodiment or combination of embodiments of the disclosed systems and methods.
[0209] Embodiments of the present disclosure may take the form of entirely hardware embodiments, entirely software embodiments, or embodiments combining software aspects and hardware aspects. Further, the method and system may take the form of a computer program product on a computer-readable storage medium having computer-readable program instructions (e.g., computer software) embodied in a memory medium. Any suitable computer-readable storage medium, including a hard disk, CD-ROM, optical storage device, or magnetic storage device, may be utilized, whether internal, network-connected, or cloud-based.
[0210] Embodiments of the present disclosure are described with reference to the figures, flowcharts, and other illustrative diagrams of methods, systems, devices, and computer program products executed by a computer. Each block of the block diagrams and flowchart illustrations, as well as combinations of blocks in the block diagrams and flowchart illustrations, can be implemented by processor-accessible instructions. Such instructions can include, for example, computer program instructions (e.g., processor-readable and / or processor-executable instructions). The processor-accessible instructions can be built (e.g., linked and compiled) and held in processor-executable form in one or more memory devices, or in one or many other processor-accessible non-transitory storage media. These computer program instructions (whether built or otherwise) can be loaded onto a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine. The loaded computer program instructions can be accessed and executed by one or more processors or other types of processing circuitry. In response to execution, the loaded computer program instructions provide the functionality described in connection with the flowchart blocks (individually or in a particular combination) or the blocks in the block diagrams (individually or in a particular combination). Accordingly, such instructions executed on a computer or other programmable data processing apparatus create means for implementing the functions specified in the flowchart blocks (individually or in a particular combination) or the blocks in the block diagrams (individually or in a particular combination).
[0211] These computer program instructions can also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, whereby the instructions stored in the computer-readable memory are processor-accessible instructions (e.g., processor-readable instructions and / or processor-executable instructions) for implementing the functions specified in the flowchart blocks (individually or in certain combinations) or in the blocks of the block diagram (individually or in certain combinations), thereby producing a manufacture including such instructions. The computer program instructions (whether built-in or otherwise) can also be loaded onto a computer or other programmable data processing apparatus to cause a series of operations to be performed on the computer or other programmable apparatus to produce a process that is executed on the computer. The series of operations can be executed in response to execution by one or more processors or other types of processing circuits. Accordingly, such instructions executed on a computer or other programmable apparatus provide operations for implementing the functions specified in the flowchart blocks (individually or in certain combinations) or in the blocks of the block diagram (individually or in certain combinations).
[0212] Accordingly, the blocks in the block diagrams and flowchart illustrations support a combination of means for performing the specified functions associated with such diagrams and / or flowchart illustrations, a combination of operations for performing the specified functions, and program instruction means for performing the specified functions. Each block in the block diagrams and flowchart illustrations, and combinations of blocks in the block diagrams and flowchart illustrations, can be implemented by dedicated hardware and a system based on dedicated hardware that performs the specified functions or operations, or combinations thereof, of the computer instructions.
[0213] As used in this specification and the accompanying drawings, terms such as "module", "component", "system", "platform", etc. can refer to a computer-related entity or an entity related to an operating machine that has one or more specific functions, and / or can include them. Such an entity can be either hardware, a combination of hardware and software, software (e.g., program code or executable program code), or software in execution. In one example, a component can be a processor, a processor, an object, an executable file (e.g., binary software), an execution thread, a computer program, and / or a process running on a computing device. By way of illustration only, a software application running on a server device can be a component, and the server device can also be a component. One or more modules can exist within a process and / or an execution thread. One or more components can also exist within a process and / or an execution thread. Each of a module and a component can be localized on one computing device and / or can be distributed among two or more computing devices. In another example, each component (or module) can be executed from various computer-readable storage media having various stored data structures. A component (or module) can communicate via local and / or remote processes, such as following a signal having one or more data packets (e.g., data from one component interacting with other systems within a local system, within a distributed system, and / or via a network such as the Internet). As another illustration, in some cases, a component can emulate electronic components via a virtual machine, e.g., within a cloud computing system. The terms "module" and "component" (and plural versions thereof) can be used interchangeably in some cases when clear from the context.
[0214] As used in this specification and the accompanying drawings, the term "processor" can refer to substantially any computing processing unit or computing device, including a single-core processor, a single processor with software multithreading capabilities, a multi-core processor, a multi-core processor with software multithreading capabilities, a multi-core processor with hardware multithreading technology, a parallel platform, and a parallel platform with distributed shared memory. Additionally, a processor can refer to an electronic circuit that is integrated and designed to execute code instructions and / or manipulate data and signaling. Such an electronic circuit can be integrated, for example, into a chipset. Thus, in some cases, a processor can be embodied or can include an application specific integrated circuit (ASIC), a digital signal processor (DSP), a field programmable gate array (FPGA), a complex programmable logic device (CPLD), discrete gates or transistor logic, discrete hardware components, or any combination thereof designed and integrated to perform the functionality described herein. Further, in some cases, a processor can utilize nanoscale architectures such as molecular and quantum dot-based transistors, switches, and gates to optimize space usage or enhance the performance of a computing device. A processor can also be implemented as a combination of computing processing units.
[0215] Furthermore, in this specification and the accompanying drawings, terms such as "storage", "data storage", "repository", and substantially any other information storage component related to the operation and functionality of systems, subsystems, modules, and components are used to refer to an entity embodied by a "memory component", "memory", or a component that includes a memory. As described herein, the memory and / or memory component of the present disclosure can be either volatile memory or non-volatile memory, or can include both volatile memory and non-volatile memory. By way of example only, non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), flash memory, or non-volatile random access memory (RAM) (e.g., ferroelectric RAM (FeRAM)). Volatile memory can include, for example, RAM that can act as an external cache memory. By way of illustration and not limitation, RAM is available in many forms such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), extended SDRAM (ESDRAM), synchlink DRAM (SLDRAM), direct Rambus (DRRAM), direct Rambus dynamic RAM (DRDRAM), and Rambus dynamic RAM (RDRAM). Embodiments of the present disclosure are not limited to these types of memory and can contemplate other types of memory devices.
[0216] Methods, apparatuses, devices, and systems can employ artificial intelligence techniques such as machine learning and iterative learning. Examples of such techniques include, but are not limited to, expert systems, case-based reasoning, Bayesian networks, behavior-based AI, neural networks, fuzzy systems, evolutionary computation (e.g., genetic algorithms), swarm intelligence (e.g., ant algorithms), and hybrid intelligent systems (e.g., expert inference rules generated through neural networks, or generation rules from statistical learning).
[0217] The computer-executed methods, apparatuses, devices, and systems are described in connection with preferred embodiments and specific examples, but the embodiments herein are intended in all respects to be illustrative rather than restrictive, and thus the scope is not intended to be limited to the specific embodiments described.
[0218] Unless otherwise expressly stated, no method described herein is ever intended to be construed as requiring that its operations be performed in a particular order. Accordingly, if a method claim does not actually recite the order in which its operations are to be performed, or if the specification or claims do not specifically state that the operations are to be limited to a particular order, then no inference of order is ever intended in any respect. This holds for any possible implicit basis for interpretation, including matters of logic arising from the arrangement of operations or operation flows, the plain meaning derived from grammatical construction or punctuation, or the number or type of embodiments described in the specification.
[0219] It will be apparent to those skilled in the art that various modifications and variations can be made without departing from the scope or spirit. Other embodiments will be apparent to those skilled in the art from consideration of the specification and practice disclosed herein. The specification and examples are considered illustrative only, and the true scope and spirit are intended to be indicated by the following claims.
Claims
1. A computing device comprising: at least one processor configured to execute computer-executable components stored in at least one memory device, the computer-executable components comprising: a runtime component configured to apply navigation logic corresponding to a navigation mode for a series of views, each view of the series of views including a respective prompt; and a coordination component configured to cause the presentation of at least one view of the series of views in response to the runtime component applying the navigation logic.
2. The computing device of claim 1, wherein the computer-executable components further comprise a presentation component configured to render a respective user interface corresponding to the at least one view.
3. The computing device of claim 1, wherein the runtime component comprises a runtime interface that functionally couples the runtime component to the coordination component.
4. The computing device of claim 1, wherein the series of views is interactive and the navigation mode defines a manner of traversing the interactive electronic document.
5. The computing device of claim 4, wherein the navigation mode corresponds to a linear mode, a hub and spoke mode, or a computerized adaptive test (CAT) mode.
6. The computing device of claim 4, wherein the interactive electronic document includes a questionnaire corresponding to one of a clinical outcome assessment, a triage assessment, a neuropsychological assessment, a college admissions suitability assessment, a vocational assessment, a professional certification qualification assessment, a survey, or a stand-alone task guide.
7. The computing device of claim 1, wherein the series of views represents a consent document, a privacy practice document, or a waiver of liability consent document.
8. Causing the presentation of the at least one view among the series of views is implementing layout logic in response to the runtime component applying the navigation rules, the implementing further including implementing the layout logic to correspond to a specific combination of two or more of a proprietary computing device, a natural language, or a user interface (UI) toolkit, the computing device according to claim 1.
9. Further comprising a library of user interface (UI) elements including at least one presentation element and at least one control element, the implementing the layout logic being obtaining a UI element from the library of UI elements via a first interface; and supplying one or more UI elements for inclusion in a defined layout of an area within a first user interface corresponding to a view among the at least one view, the computing device according to claim 8.
10. The runtime component is further configured to apply at least one of branching logic or verification logic based on input data responsive to a first prompt in a first view among the at least one view, the computing device according to claim 1.
11. The coordination component is further configured to implement translation logic for a first view among the at least one view, the computing device according to claim 1.
12. Implementing the translation logic is determining that translation rules are satisfied for a specific view among the at least one view; and translating a first natural language statement presented in a first natural language within the specific view into a second natural language statement in a second natural language, the computing device according to claim 10.
13. A method executable by a computer, comprising During the execution of an application that traverses a series of views of an interactive electronic document based on current state data, presenting a user interface (UI) corresponding to a view among the series of views, the UI including a presentation element representing a prompt and at least one navigation control element; Receiving, by a coordination component of the application, prompt response data for responding to the prompt from a presentation component of the application; Transmitting, by the coordination component, the prompt response data to a runtime component of the application; Applying, by the runtime component, at least one of branch logic or verification logic to the prompt response data and the current state data to yield next state data; Applying, by the runtime component, navigation logic to the current state data; In response to applying the navigation logic, presenting a second UI corresponding to a second view among the series of views based on the next state data, the second UI including a second prompt and at least one second navigation control element; including a method executed by a computer.
14. Receiving, by the coordination component, navigation response data corresponding to the selection of a specific navigation control among the at least one second navigation control from the presentation component; Transmitting, by the coordination component, the navigation response data to the runtime component; Applying, by the runtime component, navigation logic to the next state data; In response to applying the navigation logic, presenting a third UI corresponding to a third view among the series of views based on the next state data; further including the method executed by a computer according to claim 13.
15. Presenting the UI is The coordination component obtains data defining the prompt from the runtime component; The coordination component instructs the presentation component to render the UI; The method executed by a computer according to claim 13, further comprising: the presentation component renders the UI on a display device.
16. The method executed by a computer according to claim 13, further comprising: the runtime component obtains the navigation logic by receiving a group of rules corresponding to a navigation mode that defines a traversal manner of the series of views, wherein the group of rules is received in a native format for a rule library included in the runtime component.
17. The method executed by a computer according to claim 13, further comprising: the runtime component obtains the branching logic and the verification logic.
18. Obtaining, by the runtime component, the branching logic and the verification logic is Receiving first human-readable content defining the branching logic and second human-readable content defining the verification logic, wherein the first human-readable content and the second human-readable content are formatted according to a core definition language; and Converting the branching logic and the verification logic into a second group of rules formatted according to the native format. The method executed by a computer according to claim 17.
19. The method executed by a computer according to claim 15, wherein the runtime component includes a rule component, and applying, by the runtime component, the navigation logic, the branching logic, or the verification logic includes applying one or more of a specific rule of the group of rules or a specific rule of the second group of rules by the rule component.
20. The computer-implemented method according to claim 13, further comprising obtaining the navigation logic by selecting a navigation mode component that defines a navigation mode corresponding to a traversal mode of the series of views by the runtime component.
21. The computer-implemented method according to claim 20, further comprising obtaining the branching logic and the verification logic by the runtime component.
22. The computer-implemented method according to claim 21, wherein obtaining the branching logic and the verification logic by the runtime component comprises receiving first human-readable content that defines the branching logic and second human-readable content that defines the verification logic, and the first human-readable content and the second human-readable content are formatted according to a core definition language.
23. The computer-implemented method according to claim 20, wherein the runtime component comprises an interpreter component, and applying the navigation logic by the runtime component comprises executing the navigation mode component by the interpreter component.
24. The computer-implemented method according to claim 22, wherein the runtime component comprises an interpreter component, and applying the branching logic or the verification logic comprises directly applying the branching logic or the verification logic in the core definition language by the interpreter component.
25. The computer-implemented method according to claim 13, wherein the prompt response data is formatted according to JavaScript Object Notation (JSON).
26. The computer-implemented method according to claim 14, wherein the navigation response data is formatted according to JavaScript Object Notation (JSON).
27. Receiving data that defines layout logic configured for a combination of the interactive electronic document, a specific natural language, and a specific visualization resource, the data being formatted according to a core definition language, the method executed by a computer according to claim 14 further comprising receiving.
28. Further comprising a library of user interface (UI) elements including at least one presentation element and at least one control element, and passing the data defining the layout logic to the presentation component for interpretation by the library of UI elements, the method executed by a computer according to claim 20, wherein instructing to draw the UI on the presentation component includes this.
29. Drawing the UI on the display device by the presentation component, At runtime, obtaining UI elements from the library of UI elements; Supplying one or more UI elements for inclusion in a defined layout of areas within the UI, the method executed by a computer according to claim 28, including this.
30. The UI elements are configured according to one or more visualization resources of the display device, the one or more visualization resources being defined by the layout logic and including graphic resolution and size of the visualization area, the method executed by a computer according to claim 29.
31. Receiving data that defines translation logic; Applying the translation logic to the data that defines the prompt, the method executed by a computer according to claim 14 further including this.
32. At least one non-transitory computer-readable storage medium having processor-executable instructions encoded thereon, the processor-executable instructions causing a computing device to execute the method according to any one of claims 13 to 31 in response to execution, at least one non-transitory computer-readable storage medium.
33. A method executed by a computer, Providing access to an editing service that enables a translator device to configure a translation configuration file corresponding to a desired natural language; Receiving, from the translator device, a request for the translation configuration file; Obtaining the translation configuration file from a data repository; Causing, in the translator device, a user interface to be presented, the user interface enabling viewing and editing of human-readable text defined by translation data corresponding to the translation configuration file; Receiving, from the translator device, update data defining a sufficient translation of a portion of the human-readable text; Generating, within the data repository, a second translation configuration file corresponding to an updated version of the translation configuration file based on the update data, a computer-implemented method comprising.
34. Generating a screen capture image of an interactive electronic document associated with the updated version of the translation configuration file; Transmitting the screen capture image to the translator device, the computer-implemented method according to claim 33, further comprising.
35. The computer-implemented method according to claim 33, further comprising receiving an indication of acceptance of the translation included in the screen capture image.
36. In response to rejection of the translation included in the screen capture image, receiving, from the translator device, second update data defining a second sufficient translation of the portion of the human-readable text, the computer-implemented method according to claim 33, further comprising.
37. The computer-implemented method according to claim 33, wherein the human-readable text includes a unique code identifying a text entry within the translation configuration file, a first text in a first natural language corresponding to the text entry, and a second text in the desired natural language corresponding to the text entry, the second text serving as a placeholder for translation of the first text into the desired natural language.
38. Providing access is Receiving, from the translator device, login credentials; Authenticating and authorizing access by the translator device to the editing service based on the login credentials, the computer-implemented method according to claim 33, comprising.
39. A computing device, one or more processors; and one or more memory devices storing computer-executable instructions that, responsive to execution by the one or more processors, cause the computing device to execute the method of any one of claims 33-38. A computing device comprising. **Claim 40** A method executed by a computer, obtaining, from a data repository, a translation configuration file corresponding to a desired natural language; converting the translation configuration file into a translator file configured to be operated by a translator device, the translator file including translation data present in the translation configuration file; sending the translator file to the translator device; receiving, from the translator device, a second translator file including update data defining an update to the translation data; converting the second translator file into a second translation configuration file corresponding to the desired natural language. A method executed by a computer, comprising. **Claim 41** generating a screen capture image of an interactive electronic document associated with the second translation configuration file; sending the screen capture image to the translator device. The method executed by a computer according to claim 40, further comprising. **Claim 42** The method executed by a computer according to claim 40, further comprising receiving an indication of acceptance of a translation included in the screen capture image. **Claim 43** In response to rejection of a translation included in the screen capture image, receiving, from the translator device, a third translator file including update data defining a second update to the translation data. The method executed by a computer according to claim 40, further comprising. **Claim 44** The method 40 executed by a computer, wherein the translator file is formatted according to a defined format accessible by the translator device. **Claim 45** The method executed by a computer according to claim 40, further comprising generating a third translation configuration file configured for a defined computing device and a defined user interface (UI) toolkit. **Claim 46** A computing device, one or more processors; and One or more memory devices storing computer-executable instructions that, in response to execution by the one or more processors, cause the computing device to execute the method according to any one of claims 40 to 45, a computing device comprising.
47. A method executed by a computer, comprising: Receiving first input data defining a definition configuration file corresponding to an interactive electronic document; Using the first input data to generate the definition configuration file in a data repository; Receiving second input data defining one or more translation configuration files corresponding to the interactive electronic document; Using the second input data to generate the translation configuration file in the data repository; Receiving third input data defining one or more layout configuration files corresponding to the interactive electronic document; Using the third input data to generate the layout configuration file in the data repository; Generating, in the data repository, a configuration package including the definition configuration file, a specific translation configuration file among the one or more of the translation configuration files, and a specific layout configuration file among the one or more of the layout configuration files. A method executed by a computer, including.
48. Receiving, from a computing device, a request for a specific combination of the interactive electronic document, natural language, and device type and display resolution; Determining that a second configuration package in the data repository satisfies the request, the second configuration package including a specific definition configuration file corresponding to the interactive electronic document, one or more second translation configuration files, and one or more second layout configuration files. The method executed by a computer according to claim 47, further comprising determining.
49. Further comprising generating a deliverable configuration package by extracting, based on the requirements, the specific definition configuration file, a specific translation configuration file among the one or more second translation configuration files, and a specific layout configuration file among the one or more second layout configuration files from the second configuration package, wherein the specific configuration file corresponds to the natural language, The method executed by a computer according to claim 47, wherein the specific layout configuration file corresponds to the type of the device and the display resolution. **Claim 50** The method executed by a computer according to claim 47, further comprising transmitting the deliverable configuration package to the computing device. **Claim 51** wherein the extracting identifying the specific layout configuration file by analyzing a language indicating the type of the device and the display resolution in each of the one or more second layout configuration files, determining a reference to the specific translation configuration file in the specific layout configuration file, The method executed by a computer according to claim 47, comprising determining a reference to the specific definition configuration file in the specific translation configuration file. **Claim 52** wherein generating the definition configuration file generating a unique identifier, The method executed by a computer according to claim 47, comprising incorporating the unique identifier into the definition configuration file. **Claim 53** wherein generating the translation configuration file generating a unique identifier, The method executed by a computer according to claim 47, comprising incorporating the unique identifier into the translation configuration file. **Claim 54** wherein generating the layout configuration file generating a unique identifier, The method executed by a computer according to claim 47, comprising incorporating the unique identifier into the layout configuration file. **Claim 55** The method executed by a computer according to claim 47, wherein the third data further defines a version of a runtime bundle for use with a configuration package including the layout configuration file. **Claim 56** The computer-implemented method according to claim 47, further comprising applying one or more integrity tests to the layout configuration file for one or more versions of the user interface library corresponding to the version of the runtime bundle.
57. A computing device, one or more processors, and one or more memory devices storing computer-executable instructions that, in response to execution by the one or more processors, cause the computing device to execute the method according to any one of claims 47 to 56.
58. At least one non-transitory computer-readable storage medium having processor-executable instructions encoded thereon, the processor-executable instructions causing, in response to execution, a computing device to execute the method according to any one of claims 47 to 56.
59. A method implemented on a computer, updating the status of a configuration file to unvalidated, where the configuration file is related to a configuration package corresponding to an interactive electronic document; causing a listing of a second configuration file including the configuration file to be presented, where each configuration file of the second configuration file is classified as unvalidated and is related to the configuration package; receiving input data indicating a selection of the configuration file; causing an update of the configuration file, resulting in an updated configuration file; applying a validation test to the updated configuration file, where the validation test is specific to the type of the configuration file; determining, based on the application of the validation test, that the updated configuration file is validated; and adding the validated updated configuration file to the configuration package.
60. The computer-implemented method according to claim 59, further comprising classifying the validated updated configuration file as a validated configuration file.
61. wherein the updating comprises determining that the configuration file has been changed, Identifying the configuration package that includes the configuration file; Determining that the second configuration file depends on the configuration file; Classifying the second configuration file as an unvalidated configuration file, the method executed by a computer according to claim 59.
62. The configuration file constitutes a definition mode of the interactive electronic document, and applying the verification test is Executing at least one of a no-code script or a low-code script; Automatically determining a sufficient implementation of one or more of logical statements or logical formulas in response to the executing, the method executed by a computer according to claim 59.
63. Each of the no-code script and the low-code script emulates an end-user response to one or more prompts defined in the configuration file, the method executed by a computer according to claim 62.
64. The configuration file constitutes a translation mode of the interactive electronic document, and applying the verification test includes applying a machine learning model for determining the validity or invalidity of the configuration file, the method executed by a computer according to claim 59.
65. The machine learning model is an adversarial generative neural network (GAAN), and applying the machine learning model is Using the GANN to determine a translation of text from a first natural language to a second natural language, wherein the text corresponds to a natural language statement in the first natural language, and the natural language statement is a part of a prompt in the interactive electronic document; Using the GANN to determine a reverse translation of the determined translation of the text from the second natural language to the first natural language, and comparing the reverse translation with the natural language statement to determine that there is an error in the translation of the text, the method executed by a computer according to claim 64.
66. The configuration file constitutes a layout mode of the interactive electronic document, and applying the verification test is Applying one or more geometric conditions that define sufficient visualization output for the configuration file; Determining that one or more user interface elements rendered in a display device satisfy at least one of the one or more geometric conditions, the computer-implemented method according to claim 59.
67. A computing device, One or more processors, One or more memory devices storing computer-executable instructions that, in response to execution by the one or more processors, cause the computing device to execute the method according to any one of claims 59 to 66, a computing device.
68. At least one non-transitory computer-readable storage medium having processor-executable instructions encoded thereon, the processor-executable instructions causing, in response to execution, a computing device to execute the method according to any one of claims 59 to 66, at least one non-transitory computer-readable storage medium.
Citation Information
Patent Citations
Methods and apparatus for implementing multilingual software applications
US20090132232A1
Depth camera light leakage avoidance
US20190222819A1
Interactive user interfaces for electronic textbook implementations
US20200174630A1