DSS

Decision Support Service

Overview

The Decision Support Service (DSS) contains one-or-more instances of OpenCDS, an open-source clinical decision support application modified by HLN for the purpose of RCKMS.

DSS utilizes authored Knowledge Modules, populated in container memory, to perform deterministic operations, such as constructing the reportability response.

Service Mesh

Interactions

  • Cloud Storage Buckets, which the DSS Preflight Container downloads all Knowledge Module binaries from as part of it's startup routine.

  • Communications with OUS to register DSS instances, and perform a webhook operation with each invocation to determine if the populated Knowledge Module is the latest authored version available.

  • SS invokes DSS to perform deterministic operations for a valid eCR.

Placement

Workload should be deployed to both the authoring and reportability environments.

In the authoring environment, DSS is populated with both TEST and PRODUCTION Knowledge Modules, and runs both a testing-mode and production-mode OpenCDS instance. DSS is invoked by means of the Shared Service Submission Tool (SST) in CAT-RCKMS.

In the reportability environment, DSS is only populated with PRODUCTION Knowledge Modules, and only runs the production-mode OpenCDS instance. DSS is invoked by the Shared Service (SS) once it has a valid payload and identified the jurisdictions (and by extension, the Knowledge Modules) necessary for determining a reportability response.

For details on replica counts and resource configurations on a per-environment basis, see the Workload Definition section below.

Pod Specification

Attributes

Parameter
Value

Name

decision-support-service

Restart Policy

Always

Termination Grace Period (seconds)

90

Tolerations (optional for AIMS environments)

N/A

Containers

DSS ContainerDSS Preflight Container🚮GC Logging for Java

When the DSS Container Startup Probe is enabled, logging events from the startup script execution can be captured by replicating the configuration of the GC Logging for Java sidecar, changing both the container name (e.g. probe-logger) and second command argument to "tail -F -v /hln/diagnostics/rckms-dss-startup-probe.log".

Volumes

This pod requires two volumes:

  • A volume named dss-pf, of type empty_dir with the medium parameter left blank or set to an empty string (""). This is used by the DSS Preflight init container, which pulls all necessary Knowledge Modules from the designated cloud storage bucket to optimize first-run performance of DSS.

  • A volume named java-diag, of type empty_dir with the medium parameter left blank or set to an empty string (""). This is used by the Java GC Logging common sidecar container.

Workload Definition

Reportability Environment

Provision workload as a Kubernetes Deployment resource, with RollingUpdate strategy and the following attributes for nominal operation state:

Parameter
Value

Replicas

35

Minimum Ready Seconds

45

Maximum Surge

10

Maximum Unavailable

0

Authoring Environment

Provision workload as a Kubernetes Deployment resource, with RollingUpdate strategy and the following attributes for nominal operation state:

Parameter
Value

Replicas

1

Minimum Ready Seconds

45

Maximum Surge

1

Maximum Unavailable

0

Workload Identity

A Kubernetes Service Account named decision-support-service should be associated with this workload, for bindings specified in containers.

Last updated