Nouvelle publication

検索

Article
· Fév 12, 2024 3m de lecture

Application Metrics for HealthShare

One of the great features in InterSystems IRIS is Monitoring InterSystems IRIS using REST API.  This enables every InterSystems HealthShare instance with the ability to use a REST interface to provide statistics about the InterSystems HealthShare instance.  This feature includes information about the InterSystems IRIS instance with many out of the box statistics and metrics.

You also have the ability to create application level statistics and metrics.

User Story:  As a large organization, we want to know how many people (patients or members) and how many documents we are managing in our HealthShare solution to help us understand our population being served.

Note: This example was done in InterSystems HealthShare 2023.1.

First, in the InterSystems HealthShare HSREGISTRY namespace, we are going to create a class (HS.Local.HSREGISTRY.HSMetrics.cls) to capture the information for the new application metric.

Code for the class:

Class HS.Local.HSREGISTRY.HSMetrics Extends %SYS.Monitor.SAM.Abstract
{
Parameter PRODUCT = "myHS";

/// Collect counts for Patients and Documents
Method GetSensors() As %Status
    {
                &sql(SELECT COUNT(*) INTO :tPatCount FROM HS_Registry.Patient)
                do ..SetSensor("HSPatientCount",tPatCount,"HSREGISTRY")
                &sql(SELECT COUNT(*) INTO :tDocCount FROM HS_Registry.Document)
                do ..SetSensor("HSDocumentCount",tDocCount,"HSREGISTRY")
               
                return $$$OK
      }
}

The important features of this class include:

  • The name of the class begins with “HS.Local”, which is mapped to the HSCUSTOM namespace and contains custom code.  This code will not get overwritten during upgrades.
  • The name of the class includes “HSREGISTRY”, this let’s us identify which namespace we are gathering these statistics. In the future, we can gather statistics in other namespaces and this naming convention allows us to differentiate and know where this is collection is run.
  • This class inherits from “%SYS.Montior.SAM.Abstract”, which it needs to work with the existing REST API.
  • There is a product name defined as “myHS”, this could be your company name or a line of business or anything you would like to differentiate these statistics.  This product name will appear as a prefix in the REST API output of this new metric.
  • The method “GetSensors()” is used to collect the statistics.
  • We use SQL to get the counts of the data.  It is important to understand how long particular SQL statements takes to run as it will affect performance of the returned API.
  • When we call “SetSensor()” we are calling with the parameters:
    • Name of the metric
    • The value of the metric
    • An identifier (in this case, the namespace so we know where we got the data) of this metric.

 

After we have saved and compiled this class, we need to include our new class into the /metrics configuration.

From a terminal session on the InterSystems HealthShare instance with HSREGISTRY namespace:

  • USER> zn “%SYS”
  • %SYS> write ##class(SYS.Monitor.SAM.Config).AddApplicationClass("HS.Local.HSREGISTRY.HSMetrics", "HSREGISTRY")

These commands tell us to run the class we created in the HSREGISTRY namespace when we call the REST API.

Next, we must ensure that web application /api/monitor will have access to both the code and the data.

We need to add the following application roles to the web application:

  • %DB_HSCUSTOM (to read the class)
  • %DB_HSREGISTRY (to read the data)

Screen Shot from System Management Portal:

Now, when you call the REST API (http://<baseURL>/api/monitor/metrics), you will see your metrics:

I hope this helps inspire you to create your own application metrics within InterSystems HealthShare using this exciting InterSystems IRIS feature.

2 Comments
Discussion (2)2
Connectez-vous ou inscrivez-vous pour continuer
Article
· Fév 9, 2024 6m de lecture

Continuous Delivery of your InterSystems solution using GitLab - Part XII: Dynamic Inactivity Timeouts

Welcome to the next chapter of my CI/CD series, where we discuss possible approaches toward software development with InterSystems technologies and GitLab.
Today, we continue talking about Interoperability, specifically monitoring your Interoperability deployments. If you haven't yet, set up Alerting for all your Interoperability productions to get alerts about errors and production state in general.

Inactivity Timeout is a setting common to all Interoperability Business Hosts. A business host has an Inactive status after it has not received any messages within the number of seconds specified by the Inactivity Timeout field. The production Monitor Service periodically reviews the status of business services and business operations within the production and marks the item as Inactive if it has not done anything within the Inactivity Timeout period.
The default value is 0 (zero). If this setting is 0, the business host will never be marked Inactive, no matter how long it stands idle.

1 Comment
Discussion (1)1
Connectez-vous ou inscrivez-vous pour continuer
Question
· Fév 8, 2024

help with TLS on 2016 version

Hi,

I am trying to connect to another server using  %Net.HttpRequest.

I keep getting this error  : SSL23_GET_SERVER_HELLO:unsupported protocol.

My guess is that the site I am reaching for uses TLS1.3 which is not supported in 2016, But I cant right now ask my client to upgrade.

Is it possible to override this ? install some kind of a patch or a more recent version of openssl on the server ?

Thanks

Amiram

2 Comments
Discussion (2)3
Connectez-vous ou inscrivez-vous pour continuer
Annonce
· Fév 8, 2024

Seeking Exam Design Feedback for InterSystems IRIS Developer Professional Exam

Hello Everyone,

The Certification Team of InterSystems Learning Services is developing an InterSystems IRIS Developer Professional certification exam, and we are reaching out to our community for feedback that will help us evaluate and establish the contents of this exam.

Note: This exam will replace the current InterSystems IRIS Core Solutions Developer Specialist exam when it is released. Please note from the target role description below that the focus of the new exam will be more on developer best practices and a lot less on the ObjectScript programming language.

How do I provide my input? Complete our Job Task Analysis survey (JTA)! We will present you with a list of job tasks, and you will rate them on their importance as well as other factors.

How much effort is involved? It takes about 20-30 minutes to fill out the survey. You can be anonymous or identify yourself and ask us to get back to you.

How can I access the survey? You can access it here

  • Survey does not work well on mobile devices - you can access it, but it will involve a lot of scrolling
  • Survey can be resumable if you return to it on the same device in the same browser - answers save with the Save/Next button
  • Survey will close on March 8, 2024

 

What’s in it for me? You get to weigh-in on the exam topics for our new developer exam AND you will be entered in a raffle where 15 lucky winners will be given a $50 Tango* card (Available for US-based participants. InterSystems and VA employees are not eligible).

  • Tango cards are a popular digital reward platform that provides a wide selection of e-gift cards from various retailers.  

Here are the exam title and the definition of the target role:

InterSystems IRIS Developer Professional

back-end software developer who:

  • writes and executes efficient, scalable, maintainable, and secure code on (or adjacent to) InterSystems IRIS using best practices for the development lifecycle,
  • effectively communicates development needs to systems and operations teams (e.g., database architecture strategy),
  • integrates InterSystems IRIS with modern development practices and patterns, and
  • is familiar with the different data models and modes of access for InterSystems IRIS (ObjectScript, Python, SQL, JDBC/ODBC, REST, language gateways, etc.).

At least 2 years of experience developing with InterSystems IRIS is recommended. Any code samples that include InterSystems IRIS classes will have methods displayed in both ObjectScript and Python (or SQL). 

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Annonce
· Fév 7, 2024

InterSystems Certification is looking for question writers for our upcoming InterSystems TrakCare Reports exam

The InterSystems Certification Team is building an InterSystems TrakCare Reports certification exam and is looking for Subject Matter Experts (SMEs) from our community to help write and review questions. You, as a valued InterSystems community member, know the challenges of working with our technology and what it takes to be successful at your job. A work assignment will typically involve writing 15 assigned questions and reviewing 15 assigned directly to you.

Proposed Project Work Dates: The work assignments will be assigned by the Certification Team through September 15, 2024.

Here are the details:

Action Item

Details

Contact InterSystems Certification

Write to certification@intersystems.com to express your interest in the Certification Subject Matter Expert Program. Tell us that you are interested in being an InterSystems TrakCare Reports SME (an individual with at least one year of experience with InterSystems TrakCare Reports tasks).

Complete project profile - External Participants

If you are an external volunteer looking to participate, a team member will send you a profile form to determine if your areas of expertise align with open project. 

Accept

If you are selected for an exam development opportunity, a team member will email you a Non-Disclosure Agreement requiring your signature.

Train

After receiving your signed document, and before beginning to write questions, you will be asked to watch a short training video on question-item writing.

Participate

Once onboarded, the Certification Team will send you information regarding your first assignment. This will include:

  • an invitation to join Certiverse, our new test delivery platform, as an item writer and reviewer
  • an item writing assignment, which usually consists of the submission of 15 scenario-based questions
  • an alpha testing assignment, which usually consists of reviewing 15 items written by your peers

You will typically be given one month to complete the assignment.

Subject Matter Experts are eligible for a SME badge based on successful completion of their exam development participation. SMEs are also awarded the InterSystems TrakCare Reports certification if they write questions for all KSA Groups and their questions are accepted.

Interested in participating? Email certification@intersystems.com now!

KSA Group KSA Target Item
1. Creates InterSystems Reports using Logi Designer within TrakCare 1. Describes what the specification is saying

1. Recalls what data sources and procedures are, and how to access the sources of data

2. Identifies what parameters are used from the specification

3. Distinguishes between different page report component types (eg. cross tabs, banded objects, normal tables)

2. Identifies the components of InterSystems Reports

1. Distinguishes between catalogues and reports

2. Recalls the features of a catalogue

3. Catalogues connections and terms

4. Accesses the catalogue manager in the designer

5. Identifies which data source types are used in reporting

6. Identifies the data source connection and how to modify it

7. Identify what is required to use a JDBC connection

8. Recalls what a stored procedure is

9. Recalls when and why to update a stored procedure

10. Distinguishes between different data sources and their use cases

11. Recalls the importance of binding parameters

12. Manages catalogues using reference entities

13. Recalls how to change the SQL type of a database field (eg. dates)

14. Identifies how to reuse sub-reports

15. Recalls the different use cases for sub-reports

16. Describe how to use parameter within a sub-report

17. Recalls how to configure the parameters that the sub-report requires

18. Recalls how to link a field on a row to filter sub-reports

19. Recalls the potential impact of updating stored procedures on the settings

3. Uses Logi Designer to design and present data

1. Distinguishes between the different formats of reports

2. Determines when and how to use different kinds of page report component types

3. Recalls the meaning of each band and where they appear (eg. page header vs banded page header)

4. Recalls how to add groups and work with single vs multiple groups

5. Differentiates between the types of summaries

6. Uses tools to manage, organize and group data and pages including effectively using page breaks

7. Identifies when to use formulas

8. Uses formulas to format data and tables

9. Determines how to best work with images including using dynamic images

10. Uses sub-reports effectively

11. Inserts standard page headers and footers into report

12. Recalls how to embed fonts into report

13. Applies correct formatting, localization, and languages

2. Integrates InterSystems reporting within TrakCare 1. Understands TrakCare report Architecture

1. Applies correct formatting, localization, and languages

2. Recalls how many user-inputted parameters can be used in TrakCare 

3. Recalls how to setup menu for a report and how to add menu to a header

4. Recalls what a security group is and adds menus to security group access

5. Configure TrakCare layout webcommon.report

6. Differentiates between different types of layout fields

3. Supports InterSytems Reports 1. Verifies printing setup

1. Debug using menu or preview button

2. Tests the report by making sure it runs as expected

3. Demonstrates how to run reports with different combinations of parameters

4. Tests report performance with a big data set

5. Identifies error types

2. Uses print history

1. Identifies use cases for the print history feature

2. Recalls the steps to retry printing after a failed print

3. Uses print to history to verify parameters are correctly passed to the parameters in the stored procedure

4. Recalls how to identify a report was successfully previewed or if it encountered errors

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer