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

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

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

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

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

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

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

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

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

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