HDS JavaScript Library
Generic toolkit for server and web applications built for the Health Data Safe ecosystem.
Source: github.com/healthdatasafe/hds-lib-js
What it does
- Global settings — Configure service endpoints and localization preferences
- Pryv extensions — Extends the Pryv JS library with Socket.io and Monitor support
- HDS Data Model — Load and query the HDS data model as a singleton: item definitions, streams, authorizations, event types, datasources
- App Templates — Framework for building consent-based data collection and sharing applications (Manager, Collector, Invite, Client flows)
- Toolkit — Helpers for stream auto-creation, reminders, duration parsing, and more
Library exports
const HDSLib = require('hds-lib');
HDSLib.settings // Global configuration
HDSLib.pryv // Patched Pryv library
HDSLib.HDSService // Extended Pryv Service class
HDSLib.HDSModel // Data model class
HDSLib.initHDSModel() // Initialize model singleton (async)
HDSLib.getHDSModel() // Retrieve model singleton
HDSLib.appTemplates // Application template classes
HDSLib.localizeText(text) // Localization function
HDSLib.l(text) // Alias for localizeText
HDSLib.toolkit // Stream helpers
HDSLib.logger // Logging utilities
HDSLib.durationToSeconds() // ISO 8601 duration parser
HDSLib.durationToLabel() // Seconds to human-readable label
HDSLib.computeReminders() // Reminder status computation
Documentation sections
| Section | Description |
|---|---|
| Getting Started | Installation, setup, browser and Node.js usage |
| Settings | Service URL, locales configuration |
| HDS Model | Data model singleton, items, streams, authorizations, event types, datasources |
| App Templates | Consent workflows: Manager, Collector, Invite, Client |
| Localization | Multi-language text handling |
| Toolkit | Stream auto-creation, stream utilities |
| Utilities | Duration parsing, reminders, error handling, logging |
Browser
- Browser Test Suite (requires
backloop.dev)
Architecture overview
Library modules
graph TB
subgraph "hds-lib-js"
Settings[Settings]
AppTemplates[App Templates]
Pryv[Patched Pryv]
Model[HDSModel Singleton]
Toolkit[Toolkit]
Utils[Utilities]
end
Settings --> Pryv
Settings --> Model
AppTemplates --> Model
AppTemplates --> Pryv
subgraph "HDSModel"
ItemsDefs[Items Definitions]
Streams[Streams]
Auths[Authorizations]
EventTypes[Event Types]
Datasources[Datasources]
end
Model --> ItemsDefs
Model --> Streams
Model --> Auths
Model --> EventTypes
Model --> Datasources
App Templates classes
graph LR
subgraph "Manager side"
AppManaging[AppManagingAccount] --> Collector
Collector --> CollectorRequest
Collector --> CollectorInvite
end
subgraph "Client side"
AppClient[AppClientAccount] --> CollectorClient
CollectorClient --> CollectorRequest2[CollectorRequest]
end