Eduard Lebedyuk · Dec 6, 2016 go to post

Deploy?

I think packed with the rest of the solution would be okay, and during installation you can automatically check GitHub for latest release and download it, if is's newer.

Eduard Lebedyuk · Dec 5, 2016 go to post

Why not use SFTP for that?

The following method shows how you can get a list of the files on a server, via SFTP:

Method SFTPDir(ftpserver, username, password) As %Status
{
    set ssh = ##class(%Net.SSH.Session).%New()
    do ssh.Connect(ftpserver)
    do ssh.AuthenticateWithUsername(username,password)
    do ssh.OpenSFTP(.sftp)
    do sftp.Dir(".",.files)
    set i=0
    while $data(files(i))
    {
        write $listget(files(i),1),!
        set i=i+1
        // set st = sftp.Get(files(i), "C:\Temp\myfile.ext")
    }
    quit $$$OK
}

To download file(s) uncomment the line. Documentation.

Eduard Lebedyuk · Nov 30, 2016 go to post
SELECT
NON EMPTY %KPI("PluginDemo","HighScoreCount",,"%CONTEXT")
ON 1
FROM [PATIENTS]
%FILTER ([HOMED].[H1].[ZIP].&[32006],[HOMED].[H1].[ZIP].&[32006])

Or, with %OR:

SELECT
NON EMPTY %KPI("PluginDemo","HighScoreCount",,"%CONTEXT")
ON 1
FROM [PATIENTS]
%FILTER %OR({[HOMED].[H1].[ZIP].&[32006],[HOMED].[H1].[ZIP].&[32006]})
Eduard Lebedyuk · Nov 27, 2016 go to post

You'll need need to provide more information about your setup.

TCIP

Do you mean TCP? If so you can open TCP listener and parse incoming data from your GPS device. Documentation.

Eduard Lebedyuk · Nov 23, 2016 go to post

Not the best solution, but DeepSee filters by default have a search input, you can enter part of the filter value and only filter values that have it would be shown (after pressing enter).

Eduard Lebedyuk · Nov 22, 2016 go to post

If you want to propagate mappings across all namespaces you can create %All namespace and map there. All mappings into %All namespace are visible everywhere (except for samples and docbook) .

Eduard Lebedyuk · Nov 22, 2016 go to post

Yes,  %DeepSee.UI.Architect:GetTimeLevelClasses accepts only classes from %DeepSee.Time package.

Eduard Lebedyuk · Nov 17, 2016 go to post

You'll also need to modify %GetName method to return "HourNumber24".

Also must this new class be in %DeepSee package or can I write new class in user-space?

Eduard Lebedyuk · Nov 16, 2016 go to post

I think you need a persistent email message class, which you can customize as you need.

Eduard Lebedyuk · Nov 13, 2016 go to post

1. Get list of all items in production (via Ens.Director:getProductionItems)

2. Iterate over items local array and for each item:

  • Get list of settings for an item (via Ens.Director:GetItemSettings)
  • Check if ReplyCodeActions is a setting for current item, if it is get it's value.
  • Write into any structure the pairs Item:ReplyCodeActionsValue

 

Structure can be anything you want:

  • Custom class
  • Dynamic object
  • %List
  • %ListOfDataTypes

That mainly depends on what do you want to do with this information later.

Eduard Lebedyuk · Nov 13, 2016 go to post

You can't just concatenate to a %Status:

set ^sghp1($i(ind))=st_"**"_Hospital_"**"_OrganizationInitials_"**"_Organization_"**"_obj.SourceConfigName_"!!!"_obj.AlertText_"!!!"_obj.AlertDestination_"!!!"_obj.AlertTime_"!!!"_obj.SessionId

You need to append a %Status to another %Status:

if $$$ISERR(st) {
   set msg = "**"_Hospital_"**"_OrganizationInitials_"**"_Organization_"**"_obj.SourceConfigName_"!!!"_obj.AlertText_"!!!"_obj.AlertDestination_"!!!"_obj.AlertTime_"!!!"_obj.SessionId
   set infost = $$$ERROR($$$GeneralError, msg)
   set st = $$$ADDSC(st, infost)
} 
set ^sghp1($i(ind)) = st

In this snippet first I check if the save was successful, if it was not I build additional error message, then convert it from %String to %Status and concatenate old and new statuses into one.

Eduard Lebedyuk · Nov 12, 2016 go to post

Via SQL:

SELECT Settings
FROM Ens_Config.Item
WHERE Settings [ 'ReplyCodeActions'

Documentation on [.

You can also get it without SQL:

To get production setting use one of:

Set Value = ##class(Ens.Director).GetCurrProductionSettingValue("SettingName", .sc)
Set Value = ##class(Ens.Director).GetProductionSettingValue("Production", "SettingName", .sc)

To get setting of production item use:

Set Value = ##class(Ens.Director).GetItemSettingValue("ItemName", Type, "SettingName", sc)

Where Type can be Host or Adaptor.

The ItemName argument may contain the following elements:

ProductionName||ConfigName|CommentOrClassname

Notes on ItemName:

  • Only the ConfigName portion is required.
  • If ProductionName is not given, then the currently running or last run Production will be used.
  • CommentOrClassname is the name shown in the Config page's dropdown list for multiple items having the same ConfigName. If it is not given, then if more than one item of the given ConfigName exists, all will match.
  • None of the names of the items in your production should contain the '|' character.

Documentation.

Eduard Lebedyuk · Nov 8, 2016 go to post

Go to web applications and set identical "Group By ID" identifiers for web applications that serve file1.CSP and file2.CSP.

Eduard Lebedyuk · Nov 8, 2016 go to post

Are there any callbacks on save methods defined?

Can you post class, instance of which you are saving?

Eduard Lebedyuk · Nov 4, 2016 go to post

Ceiling, floor, $NORMALIZE. Examples:

>Write $SYSTEM.SQL.CEILING(.1)
1
>Write $SYSTEM.SQL.CEILING(1.2)
2
>Write $SYSTEM.SQL.CEILING(1.7)
2
>Write $SYSTEM.SQL.FLOOR(.1)
0
>Write $SYSTEM.SQL.FLOOR(1.2)
1
>Write $SYSTEM.SQL.FLOOR(1.7)
1
>Write $NORMALIZE(.1, 0)
0
>Write $NORMALIZE(1.2, 0)
1
>Write $NORMALIZE(1.7, 0)
2
Eduard Lebedyuk · Nov 4, 2016 go to post

Docs on Ens.BusinessOperation class, QueueCountAlert property state:

Number of messages on this item's queue needed to trigger an Alert message to be sent. Note that no further alerts will be sent unless the number of messages on the queue drops below 80% of this number and then rises again to this number. Note that this alert will be sent even if AlertOnError is False. Zero means no alerts of this type will be sent.

Eduard Lebedyuk · Nov 4, 2016 go to post

Try to call it like this:

do ..ReportHttpStatusCode(..#HTTP400BADREQUEST, sc)

Where sc is an optional %Status. Parameters are defined in %CSP.REST class.

Eduard Lebedyuk · Nov 4, 2016 go to post

You can use %File class to create directories:

Write ##class(%File).CreateDeirectory(dir)
Write ##class(%File).CreateDeirectoryChain(dir)
Eduard Lebedyuk · Nov 2, 2016 go to post

Can you post code sample?

Going by the error message, have you tried providing googleapis.com  certificate?