Mini-Sentinel Search Modules:

Thin client web service demo, focused on medical records analysis.
    JS/JQ/JSModules/JSON/AJAX/Node/CommonJS/express

Vanilla JavaScript analytics tool:

Demonstrating some existing metrics as examples of query complexity as a proof-of-concept.
Exposing a database's schema. and eveloping a flexible interface module that can adapt to the analytics.
Supports cross-sectional studies over the Rx, Hx, and Dx domains.
Populates a dynamically constructed hierarchical table with query results.
This page exposes all relevant source files, routines, and data, for review.

JSON encoding at multiple levels of query construction and exchange:

• specify arrangement of predefined complex widget components suited for a given query type
• implement auto-completion search boxes for predefined Dx and Rx key words
• submit query parameters and constraints as selected in widget interface
• receive table data supporting Hierarchical Multiplex Projection

Hierarchical Tables

Basic table with m x n entries:

Hierarchical multiplex projection of M╳N discrete search categories: (2,2,3)╳(2,2,3)

RPC: Remote Procedure Calls

Resolving the binding problem between ESModules and CommonJS

Client:

globalThis.rpc_array_sum = function rpc_array_sum( arr ) {
  var sum = 0;
  for( var i in arr ) sum += arr[ i ];
  return( sum );
}

ajax_rpc(
  rpc_array_sum.name, // remote procedure
  [ 1, 2, 3, 4 ],     // input arguments
  inspect_object      // callback
);

Server:

import {} from './rpc_src.js';

server.post(
  "/RPC",
  function( req, res ) {
    var output = globalThis[ req.body.rpc ]( req.body.input );
    res.send(
      {
        setting: req.body,
        output: output
      }
    );
    res.end();
  }
);

Output:

Object : {
  setting : {
    url : /RPC,
    rpc : rpc_array_sum,
    input : [ 1, 2, 3, 4 ]
  },
  output : 10
}

query files:

query_page.html
config/sentinel_1.json
config/sentinel_2.json
config/sentinel_3.json
config/sentinel_4.json
search_data/Dx_search.json
search_data/Rx_search.json

utilities:

js/node_server.js
js/ajax_util.js
js/object_inspect.js
js/container_text.js
js/search_dialog.js
js/widget_builder.js
js/widget_export.js
js/table_query.js
js/table_render.js
default.css

external libs:

ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js
ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css
rawgit.com/jakerella/jquery-mockjax/master/dist/jquery.mockjax.js

-- thiebaux (v. 2.2)