SanteSuite Help Portal
  • SanteSuite Help Portal
    • Disclaimer
  • Product Overview
    • SanteSuite Products
      • Introducing SanteDB CDR
        • SanteDB Solutions
      • Master Patient Index - SanteMPI
      • Immunization Management System - SanteIMS
      • Privacy & Security - SanteGuard
    • SanteDB Versions
  • Architecture
    • SanteDB Architecture
      • SanteDB History
    • Solution Architecture
    • Software Architecture
      • Publish / Subscribe Architecture
      • New ADO (nuado)
      • Roadmap
    • Data & Information Architecture
      • Conceptual Information Model
        • Concept Dictionary
          • Data Dictionary
        • Acts
          • State Machine
          • Act Relationships
          • Mood Concepts
          • Class Concepts
          • Data Dictionary
        • Entities
          • State Machine
          • Entity Relationships
          • Determiner Codes
          • Class Codes
          • Data Dictionary
        • Null Reasons
        • Extended Data
      • Physical Model
        • Act Data Dictionary
        • Entity Data Dictionary
        • Concept Dictionary Data Dictionary
      • Data Storage Patterns
        • Master Data Storage
      • SanteDB Object Identifiers (OIDs)
    • Security Architecture
    • Privacy Architecture
    • Matching Engine
    • HIE & Interoperability
  • Installation
    • Installation
    • Releases
      • 3.0 Releases
      • Queenston Release
    • Quick Start Guide
      • Seeding ONC Patient Matching Data
    • Operationalizing SanteDB
      • Information Gathering & Analysis
      • Planning & Preparation Work
        • Pre-flight Checklist
        • Develop a Business Architecture
        • Develop an Information Architecture
          • Establishing Minimum Datasets
          • Identity Environment
        • Develop Operational Technology Architecture
        • Developing Privacy Impact Assessments
        • Develop Threat / Risk Assessments
      • Deployment
        • Pre-Flight Checklist
        • Installing Software
          • SanteDB iCDR Server
            • Installation on Virtual or Physical Environments
              • Installation on Microsoft Windows
              • Installation on Linux and Unix
            • Installation using Appliances
              • Using Docker Containers
                • Adding Sample Data
                • Feature Configuration
                • SanteDB within Instant OpenHIE
              • Using Virtual Appliances
            • Installation Qualification
              • Master Patient Index / Client Registry Qualification
                • MPI/CR Test Cases for HL7v2
                  • TEST: OHIE-CR-02-HL7v2
                  • TEST: OHIE-CR-03-HL7v2
                  • TEST: OHIE-CR-04-HL7v2
                  • TEST: OHIE-CR-05-HL7v2
                  • TEST: OHIE-CR-06-HL7v2
                  • TEST: OHIE-CR-07-HL7v2
                  • TEST: OHIE-CR-08-HL7v2
                  • TEST: OHIE-CR-09-HL7v2
                  • TEST: OHIE-CR-10-HL7v2
                  • TEST: OHIE-CR-11-HL7v2
                  • TEST: OHIE-CR-12-HL7v2
                  • TEST: OHIE-CR-13-HL7v2
                  • TEST: OHIE-CR-14-HL7v2
                  • TEST: OHIE-CR-15-HL7v2
                  • TEST: OHIE-CR-16-HL7v2
                  • TEST: OHIE-CR-17-HL7v2
                  • TEST: OHIE-CR-18-HL7v2
                  • TEST: OHIE-CR-01-HL7v2
                  • HL7v2 Test Cases Instructions
                • MPI/CR Test Cases for FHIR
                  • TEST: OHIE-CR-01-FHIR
                  • TEST: OHIE-CR-02-FHIR
                  • TEST: OHIE-CR-03-FHIR
                  • TEST: OHIE-CR-04-FHIR
                  • TEST: OHIE-CR-05-FHIR
                  • TEST: OHIE-CR-06-FHIR
                  • TEST: OHIE-CR-07-FHIR
                  • TEST: OHIE-CR-08-FHIR
                  • TEST: OHIE-CR-09-FHIR
                  • FHIR Test Cases Instructions
              • Security Administration Testing
                • Administrative Panel Validation
                  • User Management Tests
                    • TEST: SECURITY-UM-01
                    • TEST: SECURITY-UM-02
                    • TEST: SECURITY-UM-03
                    • TEST: SECURITY-UM-04
                    • TEST: SECURITY-UM-05
                    • TEST: SECURITY-UM-06
                    • TEST: SECURITY-UM-07
                    • TEST: SECURITY-UM-08
                    • TEST: SECURITY-UM-09
                    • TEST: SECURITY-UM-10
                    • TEST: SECURITY-UM-11
                    • TEST: SECURITY-UM-12
                    • TEST: SECURITY-UM-13
                    • TEST: SECURITY-UM-14
                    • TEST: SECURITY-UM-15
                    • TEST: SECURITY-UM-16
                    • TEST: SECURITY-UM-17
                    • TEST: SECURITY-UM-18
                    • TEST: SECURITY-UM-19
                    • TEST: SECURITY-UM-20
                    • TEST: SECURITY-UM-21
                    • TEST: SECURITY-UM-22
                    • TEST: SECURITY-UM-23
                    • TEST: SECURITY-UM-24
                    • TEST: SECURITY-UM-25
                    • TEST: SECURITY-UM-26
                    • TEST: SECURITY-UM-27
                    • TEST: SECURITY-UM-28
                    • TEST: SECURITY-UM-29
                    • TEST: SECURITY-UM-30
                    • TEST: SECURITY-UM-31
                    • TEST: SECURITY-UM-32
                    • TEST: SECURITY-UM-33
                    • TEST: SECURITY-UM-34
                    • TEST: SECURITY-UM-35
                    • TEST: SECURITY-UM-36
                    • TEST: SECURITY-UM-37
                  • Group/Role Management Tests
                    • TEST: SECURITY-GRM-01
                    • TEST: SECURITY-GRM-02
                    • TEST: SECURITY-GRM-03
                    • TEST: SECURITY-GRM-04
                    • TEST: SECURITY-GRM-05
                    • TEST: SECURITY-GRM-06
                    • TEST: SECURITY-GRM-07
                    • TEST: SECURITY-GRM-08
                    • TEST: SECURITY-GRM-09
                    • TEST: SECURITY-GRM-10
                    • TEST: SECURITY-GRM-11
                    • TEST: SECURITY-GRM-12
                    • TEST: SECURITY-GRM-13
                    • TEST: SECURITY-GRM-14
                    • TEST: SECURITY-GRM-15
                  • Security Policy Management Tests
                    • TEST: SECURITY-PM-01
                    • TEST: SECURITY-PM-02
                    • TEST: SECURITY-PM-03
                    • TEST: SECURITY-PM-04
                  • Device Management Tests
                    • TEST: SECURITY-DM-01
                    • TEST: SECURITY-DM-02
                    • TEST: SECURITY-DM-03
                    • TEST: SECURITY-DM-04
                    • TEST: SECURITY-DM-05
                    • TEST: SECURITY-DM-06
                    • TEST: SECURITY-DM-07
                    • TEST: SECURITY-DM-08
                    • TEST: SECURITY-DM-09
                  • Application Management Tests
                    • TEST: SECURITY-AM-01
                    • TEST: SECURITY-AM-02
                    • TEST: SECURITY-AM-03
                    • TEST: SECURITY-AM-04
                    • TEST: SECURITY-AM-05
                    • TEST: SECURITY-AM-06
                    • TEST: SECURITY-AM-07
                    • TEST: SECURITY-AM-08
          • SanteDB dCDR Instances
            • Installing Web Access Gateway
            • Installing Disconnected Gateway
            • Installing Disconnected Windows Application
            • Installing the dCDR SDK
            • User Interface App Settings
        • Configuring Privacy Controls
        • Post Deployment Tuning
        • Securing SanteDB Configuration
        • Securing SanteDB Databases
        • Securing SanteDB APIs
      • Rollout
    • Demonstration Environments
  • Operations
    • SanteDB Operations
    • Server Administration
      • Configuration Tool
        • Messaging Settings
          • HL7 Version 2 Service
          • FHIR R4 Service
          • GS1 BMS XML Service
          • Health Data Services Interface
          • Administrative Management Interface
        • Diagnostics Settings
        • Persistence Settings
          • Retention Policies
          • Resource Manager Settings
          • Database Connections
        • System Settings
        • Performance Settings
        • Security Settings
          • Data Privacy Filtering
          • Auditing Configuration
        • Operating System Settings
      • Server Configuration File
        • Service API Configuration
          • REST Service Configuration
        • Connection Strings
        • Application Service Context Configuration
        • Applet Configuration
        • Diagnostics Configuration
        • Data Quality Services
      • SanteDB iCDR Host Command
      • Backup Procedures
      • Log File Management
    • CDR Administration
      • SanteDB Administration Portal
        • Logging In
        • Managing Your Profile
        • System Administration
          • Jobs
          • Logs
          • Pub/Sub Manager
          • Server Status
          • Dispatcher Queue
          • Probes
        • Reference Data Administration
          • Place Administration
          • Facility Administration
          • Materials
          • Identity Domain Management
        • Concept Dictionary Administration
          • Concept Sets
          • Concepts
          • Code Systems
        • CDR Administration
          • Importing Data
          • Data Quality Rules
          • Extensions
          • Decision Support Library
            • View CDSS Library
            • Edit CDSS Library
          • Matching Configuration
            • Creating / Viewing Configurations
            • General Configuration
            • Blocking Configuration
            • Scoring Configuration
            • Classification Configuration
            • Testing Match Configuration
            • Match Configuration XML Definition
        • Data Warehouse
        • Reports Centre
        • Security Administration
          • Managing User Accounts
          • Managing Groups
          • Managing Policies
          • Managing Devices
          • Managing Applications
          • Reviewing Audits
      • SanteDB Administration Console
        • User Administration
        • Group / Role Administration
        • Policy Administration
        • Device Administration
        • Application Administration
    • Standard Operating Procedures
      • User Management SOPs
        • SOP: Onboarding Users
        • SOP: User Lockout
        • SOP: Deactivating Users
      • Role Management SOPs
        • SOP: Role Policy Assignment
        • SOP: Assigning Users to Roles
        • SOP: Creating New Roles
      • Device Management SOPs
        • SOP: Onboarding new HL7v2 Device
        • SOP: Onboarding new dCDR Device
      • Application Management SOPs
      • Standard Operating Procedure Template
  • User Guides & Training
    • SanteDB User Guides
    • Common User Interface Elements
    • SanteMPI
      • Getting Started with the MPI
      • SanteMPI Matches
      • SanteMPI Searching
      • SanteMPI Power Search
      • SanteMPI Patient Detail
        • Demographics Tab
          • Demographic Information Panel
          • Identifiers Panel
          • Related Persons Panel
          • Entity Relationships Panel
        • Master Data Management Tab
          • Records of Truth
        • Data Quality Tab
      • SanteMPI Dashboard
    • SanteEMR
      • EMR Administration
        • Care Pathways
        • Visit Types & Flows
        • Clinical Templates
    • SanteGuard
  • Developers
    • Extending & Customizing SanteDB
    • Getting Started
    • SanteDB XML Schemas
    • Applets
      • Applet Use and Lifecycle
      • Applet SDK Components
        • Applet Development Environment
        • SanteDB Brain Bug
        • Package Manager
        • BRE Debugger
      • Applet Structure
      • JavaScript API
      • Business Intelligence Assets
        • BI Asset Definitions
          • Data Sources
          • Parameters
          • Queries
          • Reference Data
          • Views
          • Data Marts
          • Reports
          • Indicators
        • BI Render Controls
      • Localization
      • Customization & Branding
      • Assets
        • HTML Assets
        • HTML Widgets
        • Virtual Assets
      • AngularJS
      • Clinical Decision-Support
        • CDSS Definitions
        • Legacy CDSS
      • Business Rules
      • Dataset Files
      • External Data Maps
      • Applet Solution Packages
      • JavaScript API Reference
      • Recipes
        • Adding Security Policy based on Occupation
        • Assigning a Home Facility
        • Codified Address
        • Generating ID on Registration
    • .NET Plugins
      • Plugin Libraries
      • Host Context & Lifecycle
      • Business Model Objects
      • Services & Configuration
        • Configuration
          • Configuration Panels
          • Custom Docker Feature Configuration
        • Passive Services
        • Daemon Services
        • Service Definitions
          • Ad-Hoc Cache Provider
          • Application Identity Provider
          • Audit Dispatch Service
          • Barcode Generator Provider
          • Business Rules Service
          • Care Plan Generation Service
          • CDSS Clinical Protocol Repository
          • Concept/Terminology Provider
          • Configuration Manager Service
          • Daemon Service
          • Data Archiving Service
          • Data Privacy Enforcement Provider
          • Data Signing Service
          • dCDR Subscription Definition Provider
          • dCDR Subscription Execution Provider
          • Device Identity Provider
          • Exec-Once Message Persistence
          • Freetext Search Provider
          • IDataPersistenceService{TData}
          • IDataPersistenceServiceEx{TModel}
          • IDataQualityConfigurationProviderService
          • Identity Domain Provider
          • IDispatcherQueueManagerService
          • IElevatableIdentityProviderService
          • IExtensionTypeRepository
          • IFastQueryDataPersistenceService{TEntity}
          • IFastQueryRepositoryService{TEntity}
          • IPersistableQueryRepositoryService{TEntity}
          • IPubSubManagerService
          • IRecordMergingService{T}
          • IRepositoryService
          • ISecurityRepositoryService
          • ISqlDataPersistenceService
          • IStoredQueryDataPersistenceService{TEntity}
          • ITagPersistenceService
          • ITemplateDefinitionRepositoryService
          • IThreadPoolService
          • IUnionQueryDataPersistenceService{TEntity}
          • IValidatingRepositoryService{TModel}
          • Job Management Service
          • Localization Provider
          • Mail Repository Provider
          • Name Alias Provider
          • Network Metadata Provider
          • Password Hashing Service
          • Password Validation Service
          • Policy Decision Provider (PDP)
          • Policy Enforcement Provider (PEP)
          • Policy Information Provider (PIP)
          • Primary Data Caching Provider
          • Query Result Scoring Provider
          • Record Matching Configuration Provider
          • Record Matching Provider
          • Record Merging Provider
          • Repository Service
          • Repository Service with Cancellation Support
          • Repository Service with Extended Functions
          • Repository Service with Notification Support
          • Resource Checkout/Locking Provider
          • Resource Patching Provider
          • Resource Pointer Service
          • Role Provider
          • Security Challenge Authentication Provider
          • Security Challenge Storage Provider
          • Session Authentication Provider
          • Session Storage Provider
          • Stateful Query Provider
          • Stock Management Provider
          • Symmetric Encryption Provider
          • TFA/MFA Secret Generator
          • User Identity Provider
          • User Notification Relay Provider
          • User Notification Template Filler
          • User Notification Template Repository
      • Plugin Metadata
      • Database Patching
      • Custom Match Algorithms
      • Unit Testing Framework
      • Digital Signing Requirements
      • .NET API Reference
    • Service APIs
      • OpenID Connect
        • Consent & Privacy
      • Business Intelligence Service (BIS)
      • Administration Management Interface (AMI)
      • Health Data Service Interface (HDSI)
        • HTTP Request Verbs
        • HDSI Query Syntax
          • Filter Functions
        • API Responses
        • Patching
        • MDM Extensions for HDSI
        • Synchronization API
        • Visual Resource Pointer API
      • HL7v2
        • Enabling HL7v2 Interfaces
        • HL7 Authentication
        • SanteDB HL7v2 Implementation
      • HL7 FHIR
        • Enabling FHIR Interfaces
        • SanteDB FHIR Implementation
          • FHIR Subscriptions
          • Related Persons
        • Extending FHIR Functionality
      • GS1 BMS XML
      • Examples
        • Connecting to the FHIR API
        • Obtaining A Session
    • SanteDB Software Publishers
  • Knowledgebase
    • Knowledgebase
      • SanteDB 2.1.161+ on PostgreSQL 10 returns "websearch_to_tsquery" error
      • Upgrading SanteDB iCDR with large databases
      • Upgrading Gateway to SanteDB Langley (v2.0.30+) from SanteDB Kelowna and earlier
      • When sending a National Scoped ID in PID-19 (SSN) you receive "AuthorityUuid" missing error
      • After Installing dCDR you receive an error on SecurityUser
      • When logging into the dCDR you are immediately logged back out
      • PostgreSQL connections fail with block message
      • Backing up HDSI server database
      • You receive an "out of disk space" error on the IMS server
      • Setting up the "sherlock" service
      • Diagnosing service port issues
      • You receive a certificate expired or certificate not found error on startup
      • After updating a database field the values are not reflected in the application layer
      • Diagnosing Submission Errors From Mobile Device
      • Migrating A SanteDB Server
      • Pruning and Cleaning the Database
      • Improving Download Speeds on Slow Connections
      • You receive a client already running error message
      • Resetting the configuration of the Windows & Linux Applications
      • After setting up the application data appears to be missing
      • Disconnected Client Window is Scaled Improperly
      • Fatal Error on Startup
      • Synchronization Issues on Mobile
      • Installation on Mono 4.x does not permit joining of realm
      • Creating A Public Backup
      • Installing the SanteDB Disconnected Server
    • Fixes & Patches
      • 20170721-01
      • 20170725-01
      • 20170803-01
      • 20170804-01
      • 20170913-01
      • 20171003-01
      • 20171011-01
      • 20171016-01
      • 20171023-01
      • 20171030-01
      • 20171108-01
      • 20171124-01
      • 20180126-01
      • 20180131-01
      • 20180211-01
      • 20181112-01
      • 20181113-01
      • 20190322-01
      • 20190522-01
      • 20190625-01
      • 20200105-01
  • OpenIZ
    • About OpenIZ
      • Upgrading from OpenIZ to SanteDB
    • FAQ
    • OpenIZ Demonstration Servers
Powered by GitBook
On this page
  • Directives
  • Entity Search (entity-search)
  • Address Edit (address-edit)
  • Geographic Edit (geo-edit)
  • Name Edit (name-edit)
  • Telecom Edit (telecom-edit)
  • Identifier List Editor (identifier-list-edit)
  • Identifier Edit (identifier-edit)
  • Relationship Edit (admin-relation-edit)
  • Schedule Editor (schedule-edit)
  • Entity History (entity-history)
  • Entity Policy Assignment (entity-policy-admin)
  • Demand (demand)
  • Entity Table (entity-table)
  • Authority Select (authority-select)
  • Concept Select (concept-select)
  • Security Provenance (provenance)
  • Entity List
  • Filters
  • Localize (i18n)
  • Identifier (identifier)
  • Concept (concept)
  • Entity Name (name)
  • Entity Address (address)
  • Extended Date (ext-date)

Was this helpful?

  1. Developers
  2. Applets

AngularJS

This page provides information specifically related to AngularJS in SanteDB applets.

SanteDB applets are written using the AngularJS framework. SanteDB's uicore (org.santedb.uicore) applet provides a series of useful Angular filters, directives and factories which can be used to write and compose user interfaces.

Directives

There are a series of directives in the SanteDB AngularJS library which are used to render components.

Entity Search (entity-search)

The entity-search directive is used to render a search box which can be used to search any SanteDB resource on the SanteDB API. This directive is used when you wish to provide simple searches to users. The structure of this directive is:

<entity-search
    type="[Patient|Person|Place|Organization|Act|AssigningAuthority|SecurityUser|..]"
    display="'property.to.display'"
    search-field="'field-to-search-resources-on'"
    default-results="{ results to show by default }"
    filter="'hdsi expression'"
    group-display="'Group Display Selector'"
    group-by="[Group Selector]"
    key="'property path in ng-model to use as value'"
    selector="'property path to use as <option value='"
    value-property="path on scope to set selected value"
    value-selector="path on returned objects to set as selected value"
    multi-select="true|false"
    auto-tab-next="true|false"
    copy-nulls="true|false"
    min-render="10"
    change-clear="other object to watch - if its value changes then clear this"
    is-required="true|false"
    filter="[Filter Expression]"
  />  

For example, if you were to provide a search for all Places which are of type ServiceDeliveryLocation and grouped by their State the following entity-search could be used:

<entity-search
    type="Place"
    group-by="address.Direct.component.State"
    filter="{ &quot;classConcept.mnemonic&quot;:ServiceDeliveryLocation }"
/>

Address Edit (address-edit)

The address editing control provides a common input control for EntityAddress types.

<address-edit address="address-to-update"
    no-add="true|false"
    no-type="true|false"
    simple-entry="true|false"
    is-required="true|false"
    owner-form="name-of-form"
    control-prefix="'some-prefix'"/>
Attribute
Type
Description

address

The entity.address field to bind to. Note that ng-scope is not used on this directive.

no-add

Boolean

When true, the user will not be permitted to add new types of this address to the entity.

no-type

Boolean

When true, no type address (Home, Vacation, Work, etc.) will be shown.

simple-entry

Boolean

When true, a simplified version of the data entry form will be shown.

is-required

Boolean

When true, the address is required.

owner-form

Form

The name of the AngularJS form to which the address entry belongs.

control-prefix

String

When using multiple address entry forms on a single page, the prefix to add to each input id.

Example of Use

<div role="tabpanel" class="tab-pane fade" id="demoAddress">
    <address-edit owner-form="panel.editForm" address="editObject.address" is-required="true" />
</div>

Geographic Edit (geo-edit)

Allows for the editing of a geo-tag on an object.

<geo-edit geo="entity.geo"
     is-required="true|false"
     owner-form="nameOfForm"
     control-prefix="'some-prefix'" />
Attribute
Type
Description

geo

The geographic tag which should be edited on this object (note that ng-scope is not used)

is-required

Boolean

True if the information for the GEO tag must be entered.

owner-form

Form

The angular form which owns this input collection.

control-prefix

String

The prefix to append to all inputs (for multiple geo-tag inputs)

Name Edit (name-edit)

The name edit input control allows for the common reuse of a name entry component.

<name-edit
    name="name-to-bind-to"
    simple-entry="true|false"
    no-add="true|false"
    no-type="true|false"
    is-required="true|false"
    owner-form="'name-of-form'"
    input-style="tag|simple"
    allowed-components="prefix,given,family,suffix"
    control-prefix="'prefix-to-add'" />
Attribute
Type
Description

name

The entity.name field to bind to

no-add

Boolean

When true, the user will not be permitted to add new types of this name to the entity.

no-type

Boolean

When true, no type name (legal, official, license, etc.) will be shown.

simple-entry

Boolean

When true, a simplified version of the data entry form will be shown.

is-required

Boolean

When true, the address is required.

owner-form

Form

The name of the AngularJS form to which the address entry belongs.

control-prefix

String

When using multiple address entry forms on a single page, the prefix to add to each input id.

input-style

simple or tag

When tag is specified, each component of the name is a tag to split the name component values.

allowed-components

prefix, suffix, given, family

A comma separated list of parts of the name which are permitted for entry.

Telecom Edit (telecom-edit)

The telecom editing control allows the UI to capture telecommunications addresses for an entity.

<telecom-edit telecom="entity.telecom"
    single-edit="true|false"
    owner-form="true|false"
    no-label="true|false" />

Identifier List Editor (identifier-list-edit)

The identifier list editing control allows the UI to capture identiifers on a key/value pair entry.

<identifier-list-edit identifier="entity.identifier"
    owner-form="form that owns this control"
    container-class="entity.classConcept" />

Identifier Edit (identifier-edit)

The identifier edit allows for the easy capture of a single identifier.

<identifier-edit identifier="entity.identifier['SSN']"
    owner-form="name of owner form"
    container-class="entity.classConcept"
    no-domain="true|false"
    is-required="true|false"
    no-scan="true|false"
    no-label="true|false" />

Relationship Edit (admin-relation-edit)

The relationship editor provides a generic entry for relationships to/from entities with one another.

<admin-relation-edit 
    relationship="entity.relationship"
    container-class="entity.classConcept" />

Schedule Editor (schedule-edit)

<schedule-edit
    json-schedule="json object | PlaceService.schedule" />

Entity History (entity-history)

The entity history control allow for the display of a table outlining the history of an object.

<entity-history target="object_to_display_history" />

Entity Policy Assignment (entity-policy-admin)

<entity-policy-admin securable="object-to-apply-policy-to"
    policy="collection of policy objects" />

Demand (demand)

The demand directive is an attribute that can be attached to any button or link and is used to easily disable the link whenever the currently authenticated user does not have adequate permission to access the function.

<[button|a]
    demand="[Policy OID]"
>[text]</[button|a]>

For example, if you want to place a button on the page that will delete something important and wish to ensure that the user has been granted the "Unrestricted Administrative Function" policy (1.3.6.1.4.1.33349.3.1.5.9.2.0) you would use this syntax:

<button
    ng-click="deleteSomethingImportant()"
    demand="1.3.6.1.4.1.33349.3.1.5.9.2.0"
>{{ 'ui.myapp.deleteImportantThings' | i18n }}</button>

Entity Table (entity-table)

The entity table is used to render a dynamic client side table which allows for filtering, sorting, and performing actions on lists (tables) of Entities. The entity table directive is used as follows:

<entity-table
    id="[id of table]"
    type="SecurityUser|SecurityRole|Patient|Place|..."
    search-field="'field-to-search-on'"
    properties="[ 'list', 'of', 'properties', 'as', 'columns' ]"
    upstream="true|false"
    default-query="{ 'filter':value, 'filter': value }"
    item-actions="[{ name: 'button_name', 
        sref: 'nav-to-state', 
        action: 'callback',
        demand: 'required policy',
        className: 'button css class',
        icon: 'button icon',
        when: 'expression-when-to-show' 
    }]"
    actions="see item-actions"
    render="{ 'columnName' : 'renderingFunction' }",
    i18n-prefix="prefix-for-columns-in-translation"
    sort="true|false"
    default-filter="default search filter value"
    can-filter="true|false"
    can-size="true|false"
    no-buttons="true|false"
    button-bar="#refToButtonBarDiv"
    item-class="css class for items"
    stateless="true|false"
    sub-resource-holder="id-of-parent-resource"
    key-property="property of table key"
/>

The properties are described in more detail below:

Attribute
Description

id

Uniquely identifies the entity table

type

Identifies the type name (resource name) which the table should be used to display

search-field

The field within the @type that is to be filtered when the user uses the search function of the table

default-query

The default HDSI query specification to use on the table (used to filter obsolete data)

property-path

If the data you wish to display in the table is not at the root of the object, this is the path to select the display data.

i18n-prefix

The localization prefix to be used when rendering buttons, column titles, etc. If you have a prefix of "org.myapp" then a column "userName" would be rendered with "org.myapp.userName"

render

Provides a series of rendering functions for the named columns. For example, to render "userName" using a function "renderUserName" the following value would be used:

{ userName: 'renderUserName' }

properties

A JavaScript array of properties from the object (root properties only) which are to be rendered.

can-filter

When true, indicates the user can search the results in the entity table.

upstream

When true, binds the entity table to an upstream datasource.

can-sort

When true, sorting is enabled.

stateless

When true, a _queryId parameter is not appended to queries that the entity-table does. This slows down pagination, however allows for dynamic refreshes of the data.

sub-resource

If querying from a sub-resource (example: Patient/{id}/some-property then the property to use.

sub-resource-holder

The UUID of the object which holds the sub-resource.

item-actions

An array of objects which dictate which buttons to place on each column.

actions

An array of objects which dictate which buttons to place at the top of the table.

Rendering Buttons

Buttons are rendered on the entity-table using a series of control objects. Each control object is placed into an Array on either the item-actions or actions attributes in this format:

{
    name: 'displayName',
    sref: 'ng-route state reference to use on button',
    action: 'javascript function to call on click',
    className: 'btn-* class to use on the button',
    icon: 'fa-* icon to use on button',
    demand: 'policy OID required to use button'
}

Authority Select (authority-select)

The authority select directive creates a drop-down selection which allows a user to select an assigning authority based on a particular scope.

<authority-select identity-scope="'bacd9c6f-3fa9-481e-9636-37457962804d'"
   key="[ property to extract key from ]" 
   ng-scope="[value]" />
Attribute
Description

ng-scope

The property/attribute where the value of the authority selection should be placed

key

The path on the objects returned from the server API where the "value" (what gets put into ng-scope) should be extracted.

identity-scope

The scope of the authorities to show in the selector (i.e. the types of authorities to show)

Concept Select (concept-select)

The concept select shows a searchable input which is bound to a concept set.

<concept-select 
    ng-scope="[value]"
    concept-set="'name-of-concept-set'"
    exclude-concepts="[ 'uuid-of-concept-to-exclude' ]"
    add-concept="[ 'uuid-of-extra-concepts' ]"
    key="'path-to-key'"
/>

Parameters

Attribute
Type
Description

ng-scope

*

The property/attribute where the value of the selected concept selection should be placed

key

String

The path on the objects returned from the server API where the "value" (what gets put into ng-scope) should be extracted.

concept-set

String

The name of the concept set to use to populate the searchable drop-down.

exclude-concepts

UUID[]

The concepts to exclude from the selection box

add-concept

UUID[]

Concepts which are to be added to the concept select (this is useful for adding null-flavor options)

Example Use

<concept-select class="form-control" required="required" concept-set="'PlaceClass'" ng-model="target.classConceptModel"/>

Security Provenance (provenance)

The provenance filter is used to render the provenance data related to the object (create, update, or delete). Provenance is covered in more detail in architecture documentation. This filter renders in HTML so it should be bound as follows (the example shows the provenance for the user's creation data):

<div>
    <strong>Created:</strong>
    <provenance provenance-id="user.createdBy" provenance-time="user.creationTime"></provenance>
</div>

The output of this is a control which allows examination of the event including user, application, device, timestamp and session id.

Entity List

This feature is new to SanteDB 3.0

The entity-list directive behaves much like the entity-table only it presents a more mobile friendly view of results to the user. The entity-list can operate as a list, or as a grid of paged search results.

<entity-list
    id="[id of list]"
    type="Person|SubstanceAdministration|Patient|Place|..."
    display="'list'|'grid'"
    search-field="'field-to-search-on'"
    upstream="true|false"
    default-query="{ 'filter':value, 'filter': value }"
    item-actions="[{ name: 'button_name', 
        sref: 'nav-to-state', 
        action: 'callback',
        demand: 'required policy',
        className: 'button css class',
        icon: 'button icon',
        when: 'expression-when-to-show' 
    }]"
    actions="see item-actions"
    item-supplement="function_to_call_for_each_record"
    order-by="sorting-order"
    can-filter="true|false"
    can-size="true|false"
    item-class="css class for items"
    stateless="true|false"
    sub-resource-scope="id-of-parent-resource"
    sub-resource="name_of_sub_resource"
    operation="name_of_operation"
    operation-scope="id-of-parent-resource"
    key-property="property of item key"
    >
    <!-- Template for each result card here -->
</entity-list>

Property
Dynamic/Bind
Description

id

No

The unique identifier for the DOM element representing the root of the item list.

type

No

The name of the resource which is used to populate the table.

display

Yes

The display of the list either grid for a grid of results or list for a simple list.

search-field

Yes

The field which is used to search for objects in @type

upstream

Yes

True if the search should be executed against the upstream server or false for a local search.

default-query

Yes

The query which is used to filter the initial set of results.

item-actions

Yes

The actions which should be placed in the footer of each result.

actions

Yes

The actions which should be placed in the header of the the result.

item-supplement

Yes

The function which should be called for each result. These functions can fetch additional data or make computations for the view model for each result.

order-by

No

The default sorting expression for results in the format : field_name:[asc|desc]

can-filter

No

When explicitly set to false the filtering option will not appear

can-size

No

When set to true, allow the user to select the number of results.

item-class

No

The CSS class which should be applied to every result.

stateless

No

When set to true, indicates that each pagination of search of the resource should not include _queryId

sub-resource-scope

Yes

The id in which the @sub-resource path is applied.

sub-resource

No

The name of the sub-property/resource on the API to query

operation-scope

Yes

The id in which the @operation path is applied

operation

No

The name of the operation to invoke to query for results

key-property

No

The name of the property which serves as the KEY for the result

For example, to display all Place in a grid of results:

<entity-list type="Place" display="'grid'" search-field="'name.component.value'" 
   item-actions="[
      {
         name: 'view',
         sref: 'santedb-admin.data.place.view',
         className: 'btn-primary',
         icon: 'fa-eye'
   ]">
   <div class="card-header">
       <h5 class="card-title">{{ item.name | name }}</h5>
    </div>
 </entity-list>

Filters

SanteDB also provides a series of filters which are useful for rendering common objects. The filters are explained below.

Localize (i18n)

The localize or i18n filter is used to automatically find the specified translation string in the global list of translations for the current locale. For example, to render string ui.action.save in the current locale:

{{ 'ui.action.save' | i18n }}

Note: One of the benefits of using SanteSuite's i18n filter rather than other AngularJS localization filters is that the server side will pre-process these tags and save the result of localization when deployed in production mode. This saves lower powered clients from re-running the filter on repeat views.

Identifier (identifier)

The identifier filter is used to render the the specified identifier value from the specified domain (given a series of identifiers or a single identifier). For example, to render a patient's national health identifier:

{{ patient.identifier | identifier: 'NHID' }}

Concept (concept)

The concept filter is used to render the preferred display name for a concept in the current locale. For example, to render the preferred display name of gender in the current locale:

{{ patient.genderConcept | concept }}

Entity Name (name)

The name filter is used to render the specified type of name from the provided patient name collection. For example, to render a patient's legal name:

{{ patient.name | name: 'Legal' }}

Entity Address (address)

The address filter, like the name filter, is used to render an entity's name. For example, to render the direct address of a place:

{{ place.address | address: 'Direct' }}

Extended Date (ext-date)

The extended date (ext-date) filter is used to render dates according to the current user locale. This allows the developer to specify custom formats and custom precision. For example, the below code will show a patient's date of birth to the precision it was captured:

{{ patient.dateOfBirth | extDate: patient.dateOfBirthPrecision }}

PreviousVirtual AssetsNextClinical Decision-Support

Last updated 1 year ago

Was this helpful?

The schedule editor allows for editing of a entry.

The policy assignment directive allows the UI to assign policies to any of the securable objects in SanteDB such as , , , , and .

PlaceService
SecurityDevice
SecurityRole
SecurityApplication
Entity
Act
EntityAddress
GeoTag
EntityName
Rendering of the Provenance Filter