Question Stephen De Gabrielle · Oct 19, 2020

Hi 

Has anyone used Health Connect/Ensemble to receive results directly from POCT devices (Glucose monitors etc)?

I've been looking for information on the POCT01-A  protocol, and as far as I can tell it is a HL7v3 XML schema, I should be able to get results from these devices, though I expect I need a webserver endpoint. (though I can't find any reference in the Health Connect documentation)

Does anyone have any knowledge of this?

KR

 

Stephen

EDIT:  from the silence I'm wondering if this in normally handed off to specialist middleware?

2
0 318
Question Stephen De Gabrielle · Jun 29, 2020

Been cleaning up our production 2017.1 instance of Health Connect in preparation to a move to Health Connect 2020.1 (on IRIS!)

One thing I have found I we have built up a number of old classes and other configuration files.

It would be nice to start on the new server with a clean slate.

Is there any way to identify classes that haven't been used for a long time so they can be reviewed and removed?

Kind regards, 

Stephen

4
1 492
Article Stephen De Gabrielle · Nov 8, 2019 2m read

Hi, 

It turns out that on windows if you run a command with a windows command file you need to escape the % character as %%

In my case I could test freeze and thaw calls at the command line successfully as

..\bin\cache -s. -U%SYS ##Class(Backup.General).ExternalFreeze()

...but when my freeze script ran it would fail.

it turns out that a single '%' is striped when run in a windows command file, and it must be escaped as '%%' windows gets:

..\bin\cache -s. -USYS ##Class(Backup.General).ExternalFreeze()

So make sure your freeze and thaw scripts and include a double %%; 

..\bin\cach

3
0 1006
Question Stephen De Gabrielle · Oct 10, 2019

Hi, 

What is a Foundation Production and what does it do?

We are currently on HealthShare Health Connect  15.03 and we are starting the process of moving to HealthShare Health Connect 2019.1.

The 2019.1 Installation Guide is pretty clear that it is essential, but I'm having trouble working out exactly what it does?

Leading on from this is what should I call it?

From the installation guide: 

5. For Local Name, enter the name that will identify the Foundation production.

12
0 1119
Question Stephen De Gabrielle · Jul 17, 2019

Hi,

While HL7 Errors ACKs come back in the soap response, the HL7v2 Error ACK message is not processed. 

I used the SOAP Wizard to construct my classes, but the generated code doesn't handle the HL7v2 ACK.
Does health Connect have a class that handles this?

Failing an official solution should I go ahead and make make my own classes based on EnsLib.HL7.Operation.TCPOperation, but wrapping it with the generated SOAP handling code.

How have others dealt with this?

e.g.
<?xml version="1.0" ?>
<!-- type: LNW.WebService.PKB.Response.

2
0 475
Question Stephen De Gabrielle · Jul 1, 2019

Hi, 

Alert emails are pretty terse - they are fine for me but I'd like something a bit more friendly when sending alerts to end users. 

Instead of this

QueueWaitAlert: Message Header Id '522408569' queued for config item 'alerttoXXXsystemmanager' with priority 'Async' has been queued for more than 600 seconds

I'd like to send something like this:

Hi Bill, 

Messages to system XXX are taking over 10 minutes to send. 

The receiving system/service may need to be reset.

2
1 491
Article Stephen De Gabrielle · Jun 28, 2019 1m read

Slowness of the 'Source' and 'Target' parameters in the (portal) Message Viewer is caused by the Bitmap indices of Ens.MessageHeader.

Running the 'bitmap index clean up' routine for Ens.MessageHeader will fix the issue.

I checked with WRC and they advised:

“Yes it is safe to run this tool on a live system. It will eat up 1 CPU and load a lot of data from disk into global buffers so I would suggest running it at a slower time of day.”

To compress the Bitmap indices of Ens.MessageHeader use the terminal to call OneClass():

zn "PRODUCTION"

do ##class(%SYS.Maint.Bitmap).OneClass("Ens.

0
0 429
Article Stephen De Gabrielle · Jun 26, 2019 1m read

This is more for my memory that anything else but I thought I'd share it because it often comes up in comments, but is not in the InterSystems documentation. 

There is a wonderful utility called ^REDEBUG that increases the level of logging going into mgr\cconsole.log. 

You activate it by

a) start terminal/login

b) zn "%SYS"

c) do ^REDEBUG

d) change logging level to FFFFFFFF

if you are on you production system (with lots of traffic) I suggest you quickly reproduce the error, rename the cconsole.log file, and repeat the steps above to set the logging level to FF.

1
2 1575
Question Stephen De Gabrielle · Jun 26, 2019

This is embarrassing. I should know how to do this but I have forgotten.

I know the slowness of the 'Source' and 'Target' parameters in Message message viewer being slow to load is caused by the Bitmap indices of Ens.MessageHeader.

I know I need to run the 'bitmap index clean up' routine for Ens.MessageHeader to fixed the issue.

 What I forget is how to do this? 

https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KE…

Any advice or suggestions appreciated.

Kind regards, 

Stephen

9
1 411
Question Stephen De Gabrielle · May 22, 2019

Hi, 

The app of the week is the 'ObjectScript Visual Editor'. 

It looks interesting but the GitHub ownload link[1] given on the InterSystems ObjectScript Visual Editor Open Exchange page[2] fails. 

[1] https://github.com/intersystems-ru/objectscript-visual-editor/releases 

[2] https://openexchange.intersystems.com/package/ObjectScript-Visual-Editor

Does anyone know the github url for download?

 

@Nikita Savchenko 

4
0 410
Question Stephen De Gabrielle · May 21, 2019

Hi, 

Most of my development experience is with HL7v2 interfaces and I don't have a background in web development and I'm very weak with javascript.

I'm looking for suggestions of learning resources to learn FHIR  and 'SMART on FHIR' (JavaScript, OpenID connect, OAuth2) for developers like myself who mostly do HL7v2 integrations - but see FHIR as the future - and want to develop their skills!

I've found these 

1
1 1759
Question Stephen De Gabrielle · Apr 29, 2019

Hi, 

It is sometimes undesirable to send a full demographic or results feed to departmental clinical systems, that only see a subset of the patients.

While some systems (paediatrics, maternity, geriatrics) can filter on patient demographics, a number of systems are for cohorts of patients that don't fit a particular criteria.

One of our system vendors has a patient index filter service that keeps a local index of relevant patient identifiers, and only forwards matching messages.

3
0 389
Question Stephen De Gabrielle · Feb 4, 2019

Hi,

I have a custom classes that that I use with  EnsLib.SQL.OutboundAdapter to convert HL7v2 messages to SQL INSERT statements to write results to an SQL database.

Weirdly the management portal is not drawing the the lines between my process and operation when viewing my production on the ' Ensemble > Production Configuration' screen.  Clicking the green dot flashes the 'computing connections' message, and highlights my operation, but no lines get rendered: 

I am using custom classes, but they extend Ens.Request,  Ens.BusinessProcess and Ens.

7
0 570
Question Stephen De Gabrielle · Feb 1, 2019

Hi,

I'm writing to an ODBC connection to a SQLserver database, and I seem to be sending the wrong data type to a date colum?

set tSC = ..Adapter.ExecuteUpdate(.intRows,sqlInsert,$ZDATETIME($NOW(),3,2), pRequest.ComposerName, [...])

I think  `$ZDATETIME($NOW(),3,2)` is ODBC datetime format: 

https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_fzdatetime#RCOS_fzdatetime_tformat

Do I have it wrong?

Stephen

3
0 622
Question Stephen De Gabrielle · Dec 27, 2018

Is there any good documentation/tutorials on creating gateways in both directions between FHIR and Hl7v2 (for Health Connect)?

the scenarios I'm most interested in

1. Client application sends a FHIR demographic query to Health Connect - and the interface has to convert this to Hl7v2 QBP^Q11 message to the PAS.

2. Health connect sends a PDF document (from a file or HL7v2 interface) to an EPR over FHIR.

Thanks

Stephen

UPDATE

We are using Health Connect  15.03 - Cache for Windows (x86-64) 2017.2.1 (Build 801U) Wed Dec 6 2017 09:07:51 EST [HealthShare Modules:Core:15.03.9901 + Linkage Engine:15.03.

5
1 1227
Question Stephen De Gabrielle · Dec 20, 2018

Hi, 

I'm working on my first SQL service using the SQL inbound adaptor, and I'm having trouble. 

I've been following the documentation but it errors on  set req=##class(ESQL.request).%New()

Would anyone be kind enough to share a working example?

Kind regards, 

Stephen

Class ESQL.NewService1 Extends Ens.BusinessService 
{

Parameter ADAPTER = "EnsLib.SQL.InboundAdapter";

Method OnProcessInput(pInput As EnsLib.SQL.Snapshot,
   pOutput As %RegisteredObject) As %Status
{

 set req=##class(ESQL.request).%New()
 set req.CustomerID=pInput.Get("CustomerID")
 set req.SSN=pInput.
1
0 542
Question Stephen De Gabrielle · Oct 29, 2018

 

Hi,

 

Any idea how to reference Header and Body properties of a message in a Routing rule?

 

I know how to address HL7 and AlertText – but I don’t know how to reference Header and Body properties directly!

(I want to do this because addressing properties directly is quicker than searching the text of the message.)

 

 

 

 

 

 

KR

 

Stephen

1
2 1567
Question Stephen De Gabrielle · Sep 6, 2018

Hi,

I have a routing rule that calls some utility classmethods, but for some reason the compiled version insists on linking to a utility function in a different package.

The call to 'SendToEaling(HL7)' in  isn't compiling to a call to the LNWTIEPackage as expected:

##class(LNWTIEPackage.RoutingRules.Utility).SendToEaling((pContext.HL7))

but is instead becoming a call to the LNWDeploy package

##class(LNWDeployRoutingRules.Utility).SendToEaling((pContext.

5
1 480
Question Stephen De Gabrielle · Jun 11, 2018

Hi, 

I want to splice a PID segement returned from a query, so I can use it in a DTL:

I need to set the value of 'context.pidSegment' to something I can use in the DTL objectscript expression

but I'm not sure what method (or property) to use to get the class EnsLib.HL7.Segment segment into a datatype that can be used in the DTL?

I've tried the following to no avail;

  • context.K21response.GetSegmentAt("PIDgrp.PID")
  • context.K21response.FindSegment("PIDgrp.PID")
  • context.K21response.GetSegmentAt("PIDgrp.PID").
1
0 536
Question Stephen De Gabrielle · May 11, 2018

Hi, 

We have a system that gives an AE 'Error' response for warnings, that we want to transform to AA codes when returning the Application ACK.

MSH|^~\&|iCS|EHT|EPRO|R1K|20180511113136||ACK^A02|fbwZaoKW/USAdFI3IGLU|P|2.3|||AL|NE|
MSA|AE|fbwZaoKW/USAdFI3IGLU||||0^Nothing To Update^^W
ERR|||0^Nothing To Update|W|

Fortunately they include a warning code in MSA:6.4 and ERR:4

Does HealthShare have inbuilt functionality to transform Application ACK's, or do we need to build a custom BPL or class to handle this?

Kind regards, 

Stephen

1
0 619
Question Stephen De Gabrielle · Mar 27, 2018

Hi, 

We have a PAS that accepts HL7v2 QBP^Q21 requests, and returns patient details in an RSP^K21.

We have a clinical system that wants to sent an http GET request of the form http://server/getpatientbyid?pid=M1234567

So I think I need to convert the query url into a QBP^Q21 (HL7) message, then take the response in HL7v2, convert to SDA, convert to FHIR, and put that in the response to the  original GET.

Does anyone have any experience doing this? is there an approach you would recomend?

7
0 2284
Question Stephen De Gabrielle · Feb 9, 2018

Hi, 

Does HealthShare include functionality to inspect packets to and from the system?

If not, what tools do you use to do this when debugging interface issues?

A colleague suggested 'Wireshark', but I've not used it.

Kind regards, 

Stephen

3
0 500
Question Stephen De Gabrielle · Jan 17, 2018

Does anyone use EnsLib.ITK.DTS.Framework.Operation.DTSTransferFile ? and how id you manage the transition to MESH?

I just noticed this PR from 2011

https://www.intersystems.com/news-events/news/news-item/itk-2-0-0-compliance-for-intersystems-ensemble-makes-it-easier-and-cheaper-for-nhs-trusts-to-exchange-information/

which led me to this class EnsLib.ITK.DTS.Framework.Operation.DTSTransferFile 

Given this was 2011, and DTS (now called MESH) is widely used by GP practices , I'm hoping someone in the community used this class?

If so - how did you manage the transition to MESH in Jan-2017?

10
0 632
Question Stephen De Gabrielle · Jan 4, 2018

Hi,

Our ensemble instance has grown significantly since it was first implemented in 2014, and the old interfaces diagram is no longer useful. We started with a few HL7v2 ADT and demographic interfaces, but our use of Ensemble* has grown to include document interfaces, orders and results, ITK and inbound and outbound interfaces from other organisations.

2
0 472