Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@smals-belgium-shared/vidis-diarynote

Package Overview
Dependencies
Maintainers
1
Versions
134
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@smals-belgium-shared/vidis-diarynote

Diary notes web component

latest
npmnpm
Version
4.0.1
Version published
Weekly downloads
222
29.82%
Maintainers
1
Weekly downloads
 
Created
Source

Vidis diary notes web component

Context

VIDIS (Virtual Integrated Drug Information System) integrates several sources and systems:

  • Recip-e prescriptions
  • Vitalink / RSW / RSB medication scheme
  • Vitalink / RSW / RSB diary notes
  • Farmaflux delivered medications

In order to be reused by other software vendors, the VIDIS front-end is now split into web components. The container application will have to provide the input parameters to provision the web component with a working context.

Prerequisites

⚠️ IE (internet explorer) is not supported. You can include polyfill scripts ("polyfills") for the browsers that you must support.

Features

The diary notes web component allows patients and caregivers to keep detailed, organized records of health-related events, changes, or observations, which can be crucial for ongoing treatment or communication with healthcare providers.

List of diary notes

The main view displays a list of all diary notes that have been created by the patient or caregiver. For each entry, the following key information is shown:

  • Author: The person who wrote the note (e.g., patient, caregiver, or healthcare provider).
  • Creation Date: The date and time when the note was created.
  • Summary of the Note: A brief preview or summary of the note’s content, allowing users to quickly assess the subject matter of each entry without opening the full note.

Note management

  • Delete Notes: Users can delete notes that are no longer needed or relevant, helping to keep the diary organized and clutter-free.
  • Filtering: The component allows users to filter notes based on specific criteria, such as:
    • Period: Filter notes by date range, helping users review notes from a particular timeframe (e.g., last week, last month).
    • Author: Users can filter notes by the author, enabling them to view entries made by a specific person (e.g., only the patient’s notes or caregiver’s notes).
    • Roles: Filter by roles (e.g., caregiver, patient, healthcare provider) to distinguish the perspective of different authors.
  • Sorting: Notes can be sorted by different parameters, such as creation date or author, giving users more control over how they view the list.
  • Adding a Note:
    • Text-only Notes: Users can add new diary notes by simply typing in text.
    • Notes with Attachments: Users can also add attachments to their notes, allowing for richer documentation (e.g., photos, reports, or scanned documents).

⚠️ Attachment Restrictions: Attachments have size limitations (e.g., maximum file size) and format restrictions (e.g., PDF, JPG, PNG) as explained by safes cookbook document.

Inputs

NameMandatoryPossible valuesDescription
userLanguagetrueen, de, fr, nlThe language holds the current language as a value, which means it can change over time if the user changes his/her preferred language. The web component adapts the translations based on the value set. The values of the language property are defined in the Language enum.
configNametrueacc, prodName of the configuration the application and the components are being deployed to.
authenticationStatustrueunauthenticated, online-authenticated, offline-authenticatedIndicates the authentication state of the current user. When online-authenticated, the component can access all backend services. When offline-authenticated, the component uses cached data. When unauthenticated, no token is fetched from the host application.
professionalfalsetrue, falseIndicates whether the component is being used in a professional context. If set to true, the ssin input must be provided and will be used to identify the patient. If false, the SSIN will be retrieved automatically from the authentication token. Defaults to false.
ssinfalseN/AThe patient's SSIN. Required when professional is true. When professional is false, this value is ignored and the SSIN is extracted from the authentication token.
offlineDataStorageEnabledfalsetrue, falseA boolean flag indicating whether offline data storage has been enabled by the user. When true, the web component can store and retrieve data locally for offline access.
isOfflineAuthenticatedfalsetrue, falseDeprecated since v5.0.2 — use authenticationStatus instead. A boolean flag indicating whether the web component is being accessed from an offline state.
exchangeClientIdtrueN/AThe client ID used for the token exchange.

Outputs

NameTypeDescription
getTotalItemsnumberEmitted with the total number of diary notes.
onDownload{fileName: string, content: Blob, mimeType: string}Emitted when a diary note attachment download is triggered.
refresh{status: 'request' | 'success' | 'fail'}Emitted during data refresh cycles to indicate the current refresh status.
onError{reported: boolean}Emitted after the error dialog closes. reported is true if the user confirmed reporting the error; otherwise false.

Usage

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>Vidis diary notes web component</title>
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<script type="module" src="vidis-diarynote/diarynote.js"></script>
	<link rel="stylesheet" href="vidis-diarynote/diarynote.css">
</head>
<body>
<script>
	const wc = document.createElement("vidis-diarynote");

	// Common inputs for all VIDIS web components
	// Refer to https://www.npmjs.com/package/@smals-belgium/myhealth-wc-integration for more details
	wc.language = 'en'
	wc.configName = 'acc';
	wc.services = {
		cache: {
			get: (key) => (undefined),
			set: (key, value) => {
			},
			remove: (key) => {
			}
		},
		getAccessToken: async (audience) => "TODO : the eHealth OAuth2 JWT token.",
		registerRefreshCallback: () => {
		}
	}

	// Example on how to provide extra input parameter(s), if needed / requested by the component
	// wc["attributeName"] = "myValue" 

	// Example on how to listen to output parameter(s)
	wc.addEventListener("eventName", (event) => {
		console.log(`event:`, event)
		const params = event.detail;
		console.log('param:', params);
	})

	// Example on how to listen to output parameter(s), for printing
	wc.addEventListener("onPrint", (event) => {
		console.log(`event:`, event)
		const params = event.detail;
		console.log('param:', params);

		const byteArray = new Uint8Array(atob(params.content).split('').map(char => char.charCodeAt(0)))
		const blob = new Blob([byteArray], {type: 'application/pdf'})
		const url = window.URL.createObjectURL(blob)
		window.open(url, '_blank').print()
	})

	document.body.append(wc);
</script>
</body>
</html>

Versioning

This project follows Semantic Versioning. Each release is categorized by major, minor, and patch updates. Significant changes that may break existing integrations will be introduced with major versions. Please check CHANGELOG.md file for more info.

Accessibility

We are committed to making our web components accessible to all users. Our components are:

  • Screen reader friendly : Designed to work well with popular screen readers (Talkback / VoiceOver / ...)
  • Responsive : Adapt to various screen sizes (desktop / mobile).
  • Compliant: Meet accessibility criteria, including ARIA labels and keyboard navigation

Customizations

The web components are build with Angular Material. The styling of it is overwritten by the “My Health” portal, by there design kit.

Troubleshoots

If you encounter issues while using the web components :

  • Ensure that your token is valid and hasn't expired. For assistance, contact eHealth.
  • Ensure you are using the latest version of the web components
  • Ensure you are using a supported browser and that you have cleared your cache if issues persist.
  • Ensure your organization, browser or device don't block calls to VIDIS API by any way.
  • If none of the above, please contact mijngeneesmiddelen@riziv-inami.fgov.be / mesmedicaments@riziv-inami.fgov.be

License

GNU Lesser General Public License v3.0 or later

Keywords

vidis

FAQs

Package last updated on 27 May 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts