Glossary =============== .. glossary:: :sorted: MEG QMS QMS Quality Management System MAT Meg eAudit Tool; A deprecated name for :term:`MEG QMS` Institution Represents a hospital or another institution. Institution can be a part of an :term:`Institution group` or standalone. Institutions are further divided into departments, wards and (optionally) rooms:: [Institution Group] -> Institution -> Department -> Ward -> [Room] Labelling of Ward and Department can be customized on per-institution basis. Department Represents a group of locations within :term:`institution`. Department have multiple wards grouped to it. Ward Represents a location within :term:`institution`. Wards are grouped by department. Institution group Groups :term:`institutions` into a single higher-level entity whose users can access the same set of :term:`forms
`. .. note:: The term "group" can often mean :term:`user group` depending on the context. Auditor User profile Links user account to an :term:`institution` giving it additional context of which :term:`forms` and wards user can access. Auditors can have various access levels: institution level can access only the institution they are assigned to group level can access the institution they are assigned to, but also other institutions within the same :term:`institution group` (if any) global level has access to all :term:`institutions ` within :term:`region`. This is a special level above group level that does not appear in any clients' settings page as it is commonly used by MEG staff to assist clients. restricted institutions overrides what institutions the user has access to. Provides a way to limit the institutions a global user can have access to. Can also be used to restrict an institution group user to only have access to certain institutions inside their group. This functionality cannot be applied to institution level users. .. note:: User profile was formerly labelled "Auditor" but due to the nature of the product expanding and no longer limited to auditing, a more generic "User profile" label is now used. line manager A line manager is a person in an organization who has direct responsibility for managing employees and their day-to-day work. A :term:`user ` can have a line manager in MEG. This attribute can be synchronized from a SAML integration. direct reports Employees who report into a line manager. An employee can only have a single line manager. Team A collection of :term:`users `, can be used to grant access to :term:`forms ` or :term:`eGuides ` in bulk. Issue handler A :term:`user ` with the :term:`permission` to view and edit :term:`issues `. Ward Manager A :term:`user ` identified as the manager of a given :term:`Ward`. A :term:`Report Rule` can be configured to send notifications to ward managers only. Demo account An account used by :term:`staff` for product demo purposes. Access to this type of account can be shared between staff, and it's features may be limited. It is not possible to log in to this account using password. Access is only granted using dedicated interface implemented in :task:`26669`. Audit Form Form Represents a set of :term:`fields ` along with other metadata and can be either divided into :term:`subforms`, or be a :term:`Flat form`. Answers to :term:`questions ` in a form are stored as :term:`Observation` while subform questions are stored in :term:`Sub-observations`. A form that has subforms should not have any questions that don't belong to any subform. .. note:: The term "Audit Form" is not longer used as many more form types are now supported besides "audit". .. figure:: img/schema.svg Diagram showing relation between the various form components and its submitted counterparts containing data Form Config Contains client-facing configuration and preferences related to :term:`form`. Flat form A :term:`form` that does not have any :term:`subforms` and therefore its :term:`observations` do not divide into :term:`sub-observations`. Web Form A link to a :term:`form` that can be accessed in the web browser to input data without launching the :term:`client app`. A web-form link requires login by default, but can be set-up to allow anonymous users to fill out the form by designating a public :term:`User profile` where collected data is attributed to. .. note:: A Web Form can only be added to a :term:`flat form` Subform A set of :term:`fields ` within :term:`form` that groups questions. Questions answered in a subform are stored in a :term:`sub-observation`. Typical subform will have 1 or 0 sub-observations within :term:`observation`, but when "many" option is enabled for a subform, it can be filled-in multiple times per-observation. Audit Session Contains a set of :term:`observations` made during a single session and submitted together. Includes information about when the session started/ended, by :term:`whom`, and in which :term:`ward`. Observation Represents a filled-in :term:`form` instance. It will contain or more :term:`sub-observation` if the form has :term:`subforms`. Also known as "Entry". Sub-observation Subcomponent of :term:`observation` that contains answers to :term:`subform` questions. A typical observation will have at most one sub-observation per subform, except for subforms that are setup to be filled out multiple times. .. warning:: Some references in the codebase incorrectly refer to :term:`subforms` as sub-observations. This is being slowly worked on and some references may still remain. Submission report Public report a single-page :term:`dashboard` showing data for a single :term:`audit session`. Its url is unique per audit submission, but report can also be built from multiple submissions by selecting multiple sessions in "Reports" tab and licking "generate report". Formerly known as "public" report, it has been renamed to "submission" report as it is no longer publicly available by default. Dashboard An overview with a grid of widgets presenting data submitted to :term:`form`, :term:`institution`, or entire :term:`institution group`. .. note:: Sometimes "dashboard" can refer to the :term:`back-end ` in general, not just the page of widgets. .. figure:: img/dashboard.png Form dashboard view Dashboard widget Widget A building block of :term:`dashboard`, can be configured to represent data. .. seealso:: Various widget classes are documented in :ref:`dashboard widgets`. Client app A web-app separate to the dashboard used for data entry into the system. It can be accessed by `web browser `_, or by installing the app from Google Play, Apple App Store, or Windows Store. QIP Quality Improvement Plan; a module in in the system for logging and resolving :term:`issues`. This module is tied to a :term:`form`, so it can be enabled and customized in form configuration. Issue Represents an item raised during :term:`audit` that can be assigned and resolved. Issue can be associated with a :term:`ward`, room and :term:`observation` / :term:`sub-observation`. Common Issue Represents a commonly occurring :term:`issue`. List of common issues can be compiled per form or form type and the client app uses such list to provide suggestions to the users while filling out the form and reporting new issues. Sub-issue An :term:`issue` can be divided into sub-issues if enabled in form's config. There is only two level of issues allowed: parent and sub-issue. Staff A user account who has access to the :term:`django admin` panel. User will have access to a subset of :term:`models ` and actions in the admin panel as defined by their :term:`permissions `. If staff user is also an :term:`auditor`, their access is limited to the their :term:`institution` or :term:`group ` depending on access level. Superuser A staff user that has implicit access to all items in the system and all :term:`permissions `. HPSC Health Protection Surveillance Centre; Irish body where environmental audits are submited to. HIQA Health Information and Quality Authority. A :term:`hardcoded` environment audit within :term:`MEG QMS`. IPC Infection Prevention Control Ireland. A :term:`hardcoded` audit within :term:`MEG QMS`. two factor authentication an additional level of security where user is required to enter a token received by sms or using an authenticator app in addition to their password. This feature can be enforced enabled in Security Policy. Users can enroll into two factor authentication individually in :url:`Account Security` page. API Application Programming Interface; an interface for computer programs and other services to interact with the system. In :term:`MEG QMS ` API urls start with ``/api`` (such as :url:`/api/v2/`) and outputs data in :term:`JSON` format by default. Latest API documentation can be found in :ref:`documentation` section. JSON JavaScript Object Notation; a format used to communicate data between services, but also storing configuration objects. JSON format is typically wrapped in curly braces and can contain strings, numbers, booleans, arrays, or objects (mapping of strings to a valid JSON value). .. code-block:: json :caption: An example of JSON object showcasing various possible data types { "string": "a string", "numeric": 67, "boolean": true, "empty": null, "object": { "name": "Meg", "number": 7 }, "array": [1, 2, 3, 4] } CSRF `Cross Site Request Forgery `_; A Cross-site request forgery hole is when a malicious site can cause a visitor's browser to make a request to your server that causes a change on the server. The server thinks that because the request comes with the user's cookies, the user wanted to submit that form. `Django `_ provides protection against CSRF by default, but this can sometimes lead to errors when the same web form is submitted twice. Django A `Python framework `_ used to build web apps such as :term:`MEG QMS `. Django admin Admin interface provided by :term:`Django`. Only :term:`staff` users and by extension :term:`superusers ` can access this interface. It can be accessed at :url:`/meg-admin/`. Staff users can only access items they have :term:`permission` to view or change. .. figure:: img/django-admin.png Main page of django admin viewed by a :term:`superuser` showing a list of :term:`models ` they can access. Model Base building block for data model. Models describe (type of) objects in the database, what fields do they have, their relation to other objects and other meta properties, such as name, default ordering etc. An example of model is :term:`institution`, :term:`auditor`, or :term:`ward`. Permission A pair of :term:`model` and action that describe what action is allowed to be carried out on particular model. By default :term:`django` provides view, change, delete, create permission for every model. Additional permissions can be defined by developers on per-model basis. .. note:: :term:`Superusers ` implicitly have all permissions, so there is no need to any permissions or groups to those users. .. seealso:: :ref:`permissions` documentation Group User group Permission group Groups :term:`users ` and :term:`permissions ` to easier manage and grant permissions in bulk. User can be assigned a group of permission by adding the user account to the group. Each group can have accompanying Group description object that provides a translatable name and a help text explaining the purpose of the group. .. figure:: img/perm-groups.png Example list of permission groups with description and permission names showing in some of them Group level Group-level in the context of :term:`institution group`, group-level means that the item is a part of the group rather than individual :term:`institution`. .. seealso:: Read more about levels in :ref:`levels` RegEx Regular Expression; a sequence of characters that specifies a search pattern in text. Usually such patterns are used by string-searching algorithms for "find" or "find and replace" operations on strings, or for input validation. .. code-block:: :caption: A sample regex used to validate an e-mail address ([a-zA-Z0-9\_\-\.]+)@([a-zA-Z]+).(.+) Use a site like `RegExr `_ to write and test a regular expression. .. figure:: img/regex-cheatsheet.png RegEx cheatsheet with some commonly used symbols Report Rule Report CC A rule that defines which users should receive e-mails for which events and locations. Please refer to :ref:`report rules` for more information. Per form permissions A :term:`user ` can have per-:term:`form` :term:`permissions `, including :term:`group` membership (in addition to user's own permissions and groups), and :term:`ward` access. This is defined using :url:`form permission sets`. This was originally implemented in :task:`25847` .. warning:: While adding permissions and groups to the set expands user's permissions in context of the form, adding wards overrides wards visible to the user and can result in user having access to less wards than in other forms. Custom field A question within :term:`form` (flat form), or one of its :term:`sub-forms `. A question can be hidden from initial submission, or its answer made editable in the review page. A "Custom" field relates to the fact that form is :term:`customized `, and its questions are build and set-up in admin interface rather than hardcoded. Question A field within a :term:`form`. It can be a :term:`custom field`, or a :term:`model` field in a :term:`Hardcoded form`. Hardcoded form a legacy form whose questions are pre-defined based on selected observation model (Hand Hygiene, IPC, etc.). Hardcoded forms have a limited customization options. Custom form a form whose questions can be customized in admin interface. It's "observation model" is "custom observation" which represents a blank form, and questions are added either in :url:`/dashboard/settings/audit-forms/ ` or :url:`/meg-admin/audit_builder/customfield/ `. A custom form consists of custom questions, but can include custom :term:`subforms `, validators and other features not available in :term:`hardcoded forms `. Form schema A set of :term:`fields ` in the :term:`form`, including :term:`subforms `, validators and other related items. Schema is generally self-contained such that it can be represented in a single :term:`json` feed and used by the :term:`client app` to reproduce the form and display it to the user in its full form. .. seealso:: :term:`Compliance schema` Compliance schema A subset of :term:`Form schema` that only includes fields and settings that affect :term:`compliance`. Auto cycle A feature that allows automatic cycling through the field's options, while enabled for a specific field, client app will require the user to create an observation for each option in the selected field, and won't allow the session to be submitted unless all observations are filled. To configure the auto cycle field, you need to fill the "Auto cycle field" in :term:`form config `. .. note:: Auto cycle feature can only be enabled on flat forms MEG Docs Document management system component of :term:`MEG QMS `. Allows :term:`users ` to upload documents, :term:`version ` them and organize into :term:`folders`. Document An item in :term:`MEG Docs` containing a PDF file (other formats also supported) and its associated metadata (tags, description, comments, review schedule, etc), may have multiple :term:`versions `, but only one of them can be considered "current" and served to the users viewing the document. A document can be organized by adding tags, or placing it in a :term:`folder` Folder Document folder Groups multiple documents; Folders can be nested, and define :class:`access rules` to its sub-folders and :term:`documents `. MEG Academy MEG Academy is the latest module from MEG, our own learning management system :term:`MEG QMS`. MEG Workflows :term:`MEG Workflows` is a module within the :term:`MEG QMS` that automates and streamlines processes. It enables to define, manage sequences of tasks. This flexible framework supports configurable stages and operations. Draft Document draft An editable version of the :term:`document` that can be modified in :term:`MEG Docs` and published when ready. Draft contents is stored in :class:`~megdocs.models.DocumentDraft` model. When its submitted, its contents is rendered to PDF and it becomes a :class:`~megdocs.models.Version` ready for review. diff Short for "differences"; a view that highlight changes between two :term:`versions `: parts removed (typically in red, crossed out) and added (in green) between the versions of the text. Track Changes Suggest Changes A mode in a :Term:`document draft` editor that allows the user to suggest changes to the document rather than make changes directly. Suggested changes can be later accepted or rejected. .. seealso:: :ref:`track changes` feature documentation Template Document template A predefined body of a document that can be applied when creating a new :term:`document draft`. Once applied, the document is not associated with the template and any subsequent changes are not reflected in documents created from the template. Templates are stored in :class:`~megdocs.models.DocumentTemplate` model and associated with an :term:`institution`. Version Document version A named iteration of a :term:`document` in :term:`MEG Docs`. Represents a document at a point in time. A new version can be submitted for review, accepted or rejected. A published document can have only one "current version". which is updated whenever a new version is published. Region A production deployment; The main region is the EU. Users from other parts of the world use their local region. Usernames are unique across all regions, so user can log into the EU server and be redirected to their correct region. The client app is also pointed at hte EU region and redirects user at login to the correct site. .. figure:: img/regions.svg Diagram shows interaction between regions and data locality. eGuide A MEG product offering medical guidelines. This used to be hosted at `eguides.megsupporttools.com `_, but is being merged into :term:`MEG QMS` as a module. The eGuides currently have a separate mobile apps for Android and iOS. Push notification Push message A system notification sent (pushed) by back-end as opposed to a local system notification. A push notification often notifies user about incoming e-mail or other message. At MEG we use `Urban Airship `_ to send notifications from the back-end to user devices running the :term:`client app`. Migrations Scripts responsible for updating the database with any new fields added to :term:`models ` (schema migration) and manipulating existing data match the new table/field structure (data migration). Migration is a necessary step whenever deploying an update to the server. .. important:: when rolling back to a previous version, it is important to un-apply all migrations applied during the upgrade. Failure to do so will lead to crashes and errors. An alternative to rolling back migration can be restoring database from backup. .. seealso:: `Django migrations documentation `_ Static files images, java scripts, stylesheets and other supporting files that are bundled with the product and are served directly as opposed to generated using python script. Media files user-uploaded files such as images, documents etc. Business Intelligence The strategies and technologies used for the data analysis and management of business information. This process may use client data in MEG, or data from other platforms such as Redmine. Mongodb A document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas. Un-publishing Unpublishing a :term:`model`, or marking it as not "published" is a mechanism used to mark items as no longer visible to the user. It is done by un-ticking "publish" checkbox in a model's :term:`admin ` page, or by end user when they remove an item in dashboards or settings page. .. seealso:: More detailed documentation in :ref:`Removing/un-publishing data ` Compliance a measure of adherence to policies. In the context of forms and auditing, compliance if effectively a score in the range between 0% and 100% based on answers given in an :term:`observation`, or :term:`sub-observation`. .. seealso:: :ref:`Compliance documentation ` Compliance Weight Allows biasing average compliance by calculating `weighted average `_. .. seealso:: :ref:`compliance weight` documentation Incompliant Compliance of 0%, or less than "pass second" value defined in the :term:`form config`, depending on context. For questions with calculation logic of "required", compliance of anything less than 100% is considered incompliant. .. seealso:: :ref:`Compliance documentation ` reCAPTCHA CAPTCHA A “CAPTCHA” is a turing test to tell human and bots apart. reCAPTCHA is a free service from Google that helps protect websites from spam and abuse. SPF Sender Policy Framework (SPF) is used to authenticate the sender of an email. With an SPF record in place, Internet Service Providers can verify that a mail server is authorized to send email for a specific domain. DKIM DomainKeys Identified Mail (DKIM) is an email authentication method designed to detect forged sender addresses in email (email spoofing), a technique often used in phishing and email spam. DMARC Domain-based Message Authentication, Reporting and Conformance (DMARC) is an email authentication protocol. It is designed to give email domain owners the ability to protect their domain from unauthorized use, commonly known as email spoofing. .. seealso:: :term:`SPF` and :term:`DKIM` are used by DMARC to determine sender authentication. NPS Net Promoter Score A metric used in customer experience programmes. NPS measures the loyalty of customers to a company. NPS scores are measured with a single question survey and reported with a number from -100 to +100. A higher score is desirable. Responders are grouped into 3 groups: Promoters, Detractors, Passives. To calculate NPS score, subtract number of detractors from number of promoters:: % Promoters = (Number of Promoters / Total Number of Respondents) * 100 % Detractors = (Number of Detractors / Total Number of Respondents) * 100 NPS = % Promoters - % Detractors .. seealso:: `How to measure & calculate Net Promoter Score (NPS) `_