Sebastian Thiele · Mar 14, 2016 go to post

Hi,

sry for the late response. I´ve managed to setup the application, roles and priveliges as suggested. My application does use a set of (currently) 20 stored procedures to fetch data from the server. The problem now is that the webapp-admin and webapp-user have no permission to run this stored procedures. I thought it would be sufficient to add the db ressource to the roles to access this stored procedures. Does this mean, that I need to add every single stored procedure to the sql procedure tab in the role definition?

best regards,

sebastian

Sebastian Thiele · Mar 15, 2016 go to post

Hi,
i did uses

GRANT EXECUTE ON SCHEMA MySchema ON WebApp-User,WebApp-Admin

unfortunatly this doesn´t work. Tells me that reserved word SCHEMA was found. Does the hypen (-) in the role names could also be a problem?

best regards,

sebastian

Sebastian Thiele · Mar 16, 2016 go to post

Hi,

well my dev system runs 2014.1 - so I guess I have to add the procedures manually to the role. Thanks for the help.

Best regards,

Sebastian

Sebastian Thiele · Nov 17, 2016 go to post

Hi Timothy,

in fact I stumbled upon an old ZEN google groups post addressing this point just this morning. %AddComponent works for me as well. Anyway I was not able to post this fact yet :) Thank you for the response, maybe someone looking for this problem in the future.

Best regards,

Sebastian

Sebastian Thiele · Dec 14, 2016 go to post

Hi Fabian,

not exactly. The setting is the following. Some application (no ensemble, no cache) within a domain shall access (via http link) ensemble (only my webapplication) and display some pages in there. Therefore it need to log in to ensemble. 

The way to go is... provide the remote application with the link to invoke to enter my webapplication. This is a migration project. In the past the remote app accessed another application using encrypted username/pw tokens. Anyway the project knowledge of how this was done/mechanisms used is lost :(. Anyway the link to invoke to get the application can be changed in the remote application.

Now after writing this post, I think that OAuth would be one aproach but the customer runs ens 2015.2.

best regards,

sebastian

Sebastian Thiele · Dec 19, 2016 go to post

hi,

just to bring it back up. I tried different ways to solve my problem but couldn´t figure out a way to have the property 'Messages' be filled with objects of type Message once the client side component invoke it´s refreshContents(). The server method invoked still indicate that 'Messages' has zero elements.

Does anyone have an idea on how to tackle that issue?

best regards,

Sebastian

Sebastian Thiele · Dec 20, 2016 go to post

Hi John,

this is exactly what I want to do. But I call the GetMessageList(...) a little later once the user completed a search form. GetMessageList(...) get the data requested and Insert the Objects of type MyPckg.Message into the page property Messages. ´Server gets back to the client tells "i am finished" and the client invokes the DrawMessages(...) method. But this method tells that the list of messages in page property Message has count 0 - so no messages to display. I am not able to figure out why cause the GetMessages(...) report that n message objects have been inserted to page property Messages.

best regards,

sebastian

Sebastian Thiele · Oct 23, 2017 go to post

Hi Jamie,

thank you for the given hints.

1) Use Job per Connection was one of my first ideas as seen from local testing with some emulators. It is realy a question if there are points to consider when reconfiguring the service. Anyway we might see this in testing against real devices.

2) Uhm, yes missed that. Sry for this. We work on a solution to do this programmaticaly using a temporary file and the method ImportFromFile given by the framework. Endusers may get confused with doing this on the ensemble configuration pages and in our application so we´ve provided them with a single commandline statement to add everything required. Having just the transfer syntaxes and sop classes defined which are required for our application might get us a little performance boost when receiving dicom documents via the service.

3) Yes this is the point. But in my example, what is the correct member for the PatientPrimaryLanguageCodeSequence? I wasn´t able to figure that out from the dicom dictionary in ensemble. In other words, how to find SQ related fields from the dicom dictionary?

best regards,

Sebastian

Sebastian Thiele · Oct 24, 2017 go to post

Hi Jamie,

thank you for the hint given. Unfortunately I was not able to find any sub tags for the given field PatientPrimaryLanguageCodeSequence. The NEMA DICOM docs only state this field as SQ (a structured type) which sub-tags are need to be used is not clear. Anyway as from my tests. Ensemble try to evaluate the path set when constructing an entry for the dicom document - and in my case for that specific field fails with

<EnsDICOM>InvalidPropertyReference: The property reference 'PatientPrimaryLanguageCodeSequence[1].someTag'
is invalid: Tag name not found in dictionary: 1 at offset 40 - parsing property reference

best regards,

Sebastian

Sebastian Thiele · Dec 4, 2017 go to post

Hi Dimitry,

thank you for the fast response. I will test the approach with a locally created certificate get back with my findings.

best regards,

sebastian

Sebastian Thiele · Dec 5, 2017 go to post

Hi,

after looking into the example and some local testing I found this is what I am looking for. Anyway one of the major points in my opinion is to deseriialize the email into a stream, write this one into a file an pass it to the oppenssl command and parse the result. Are there any suggestions for the step of deserialization the email with it´s entire contents to a stream? The api seams at least not the have a direct method(s) for this. Hof can this be achieved?

Best regards,

sebastian

Sebastian Thiele · Mar 6, 2018 go to post

Hi,

the link seems to be broken. Any chance to get this article back up?

best regards,

sebastian

Sebastian Thiele · Mar 7, 2018 go to post

Digging the intersystems learning facility the course can also be found through the learning catalogue on learning.intersystems.com.

best regards,

Sebastian

Sebastian Thiele · Aug 4, 2018 go to post

Hi,

after talking to WRC and some testing. The approach altering the ZEN tablePane, tableName on the server as depicted above works until 2017.1.2. From 2017.2.1 it seems to be reqiured to have an additional property for the tablePane to be set. This property is calles ´permitClientSQL´ (set to true). This isn´t well documented in my opinion and the behaviour is to weaken the security. But even when set to true this property still requires to have the tableName property on the server despite documentation says something different.

They´ll have a look at it, since my advior himself wasn´t quite sure what that change between 2017.1 and 2017.2 is about. Keep you update when I´ve got some new details.

best regards,

sebastian

Sebastian Thiele · Jan 8, 2019 go to post

Thank you Eduard for the fast response on my questions. This totaly meets my usecase.

Best regards,

Sebastian

Sebastian Thiele · Mar 7, 2019 go to post

Hi Eduard,

already did this. the role %Developer should already include the %EnsRole ressources. Even assigning them to the created role manually gives me that error when logging in. Somehow as part of the login procedure, the cachelib db is accessed. Even if granting the ressources of cachelib the error remains.

kind regards,

sebastian

Sebastian Thiele · May 20, 2019 go to post

Hi Robert,

my intention was to add the imported xsd schema to a studio project. However, I didn´t generated any classes explicitly. I´ve just imported a xsd schema in the management portal and expected (wich works fine) but expected to have xsd-schema availabe in studio just like with hl7-schema (*.HL7). So I guess there is no way for doing that directly and therefore I need to place the schema file in mit default csp location to be able to add it to a studio project. I see no other way to be able to have that schema to be available for comparision (diff).

kind regards,

sebastian

Sebastian Thiele · Jun 5, 2019 go to post

Thank you for that hint. Adding the xml schema definition to the studio-project would make transport to other system stages a lot more easier. One don´t need to remember where schemas are stored and doesn´t need to to organize schemas in seperated files floating around the file system. I guess I´ll end up adding the EnsEDI.XML.Schema global to my studio project. Thanks again for that hint.

Sebastian Thiele · Apr 11, 2017 go to post

Hi Timothy,

there is in fact no reason to use the a dataCombo. A select will be fine, as long as it acts as a select. I thought about a custom component an your code is a very good starting point. I will review that and come back with my findings. Before I start, if the sql-select provides about 50 records I also need a functionality not only to select the item starting with a letter but also goto that position in the view (scroll down to the position, for example when 50 elements are found and the user types letter 'w'). This your approach cover that need or is there a method to overwrite?

Best regards,

sebastian

Sebastian Thiele · Jul 28, 2017 go to post

Hi,

thank you for your ideas and thoughts provided. Especially the points Sergej mentioned in terms of exotic configurations seem to be noticable. On the other hand requesting SMP login page from time to time seem to be a good approach. We´ll open a ticket for that because this seems to be a good approach.

best regards,

sebastian

Sebastian Thiele · Aug 17, 2018 go to post

Hi,

as my advisor told me. This is a bug in Ensemble/Caché release 2017.2.2 since the intended behaviour to set sqltablename on serverside is sufficient and this specific security consideration reported a "false positive" - if I got it right a correction for this is available with ensemle 2018.1 and is identified as SAM524. The current workaround is to use both approaches setting tablename on the server and use permitclientsql = "true".

Anyway I´ll mark this issue here as solved/answered.

Best regards,

Sebastian

Sebastian Thiele · Feb 22, 2019 go to post

If you are running Ensemble or HealthShare you may have a look at Ens.Util.Time or Ens.DataType.UTC. They provide an API to work with different time formats and also theire conversions. In Ens.DataType.UTC there is a method timeLocaltoUTC pass in you value and you don´t have to worry about.

Sebastian Thiele · Sep 3, 2020 go to post

Hi Craig,

thank you for your response. So first of all good to hear that I am not the only one with this kind of questions. I assume you don´t configured an OAuth Client via SMP directly but instead do the  invocation of the API endpoint to get the token directly in the operation - therefore you should not use any %OAuth... framework-functionalities from within the operation - am I correct?

It would be very interesting to here from InterSystems what would be the best practise here. Anyway this should work. Could you supply me with an example of how you implemented the GetBearerToken() method?

best regards,

sebastian

Sebastian Thiele · Sep 10, 2020 go to post

Hi Craig,

sry for the late response. Thank you this is what I was already thinking about. I´ve did some tests and the approach works for me. I´ve marked your as accepted.

Anyway I´am still highly interessted in InterSystems point of view on this.

best regards,

sebastian

Sebastian Thiele · Jun 18, 2021 go to post

Hi,

you could also prepare the sql´s within an editor and in the SQL browser sqlect a dialect "MSSQL". The dialect field to choose from is only visible if you click the "more" button next to the max entries to return field.

Adter that you just place your inserts and you are good to go.

best regards,
sebastian

Sebastian Thiele · Jun 18, 2021 go to post

Thanks for the hint, action "remove" didn´t work - switching to "clear" removes the field entirly.

best regards,
Sebastian

Sebastian Thiele · Jan 14, 2022 go to post

Disabling trace Events on an active Message Router requires the Router to be stoppen and started again. After That no trace events will be logged anymore. You also should have rule logging setting of Router in mind when doing so. When starting/stoppen the Message Router consider its pool size setting to avoid side effects such as stop of Ens.Actor queue.