Congratulations to the winners!
- Log in to post comments
Congratulations to the winners!
Take a look at the following documentation:
https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…
Here you can find a similar question from @Evgeny Shvarov
https://community.intersystems.com/post/how-can-i-change-production-set…
I was thinking to use the autosave as backup, not to overwrite the class that you are editing directly. In case that the date of the autosave is later than the date of modification of the class the system should offer to load the autosaved class.
Adapt and run this query to check what are the ODBC types for your table from the SQL explorer:
SELECT colname,odbctype,isnullable,isreadonly FROM utility.statement_columns('SELECT Name,DOB,Home_City,Home_State from Sample.Person')Indeed, Yone.
Usually we are focused in new and more "interesting" functionalities of InterSystems products and we totally forget the daily work and how to make the life easier for the users with this type of details.
I'm too lazy to update my Dockerfile!
That's easy! You only need to add in your DTL an action with the following code:
Set matchFound = 0// Get count of OBR segmentsSet tOBXCnt = source.GetValueAt("PIDgrpgrp(1).ORCgrp(1).OBXgrp(*)")
// Loop through OBXs and evaluate field contentsFor tIter = 1:1:tOBXCnt
{
set nextIter = tIter+1if tIter < tOBXCnt
{
If ((source.GetValueAt("PIDgrpgrp(1).ORCgrp(1).OBXgrp("_tIter_").OBX:ObservationValue")["SEDATION:") &&
(source.GetValueAt("PIDgrpgrp(1).ORCgrp(1).OBXgrp("_nextIter_").OBX:ObservationValue")["Procedure"))
{
Set matchFound = 1
}
}
}
if (matchFound = 1)
{
do target.SetValueAt("28014-9","PIDgrpgrp(1).ORCgrp(1).OBR:UniversalServiceID.identifier")
}As you can see, we keep the seach of the "SEDATION:" and "Procedure" strings and after that, if we find it in our source message, we just update the value of the specific field in the target.
As a former Java developer, my suggestion is not to use Enumerations, at the end that field is a common String, if you want to restrict the value of that column do it from the code, not from the database.
Hi @Gautam Rishi ! You can see a similar question here. You can try getting the metadata from the ResultSet or directly getting the ODBCTypes from a query.
Thank you @Robert Cemper for your more than generous evaluation of QuinielaML!
Hi @Prashant Singhal ! Please, read this interesting article to get the data type from a query:
https://community.intersystems.com/post/sql-statement-metadata
Hi @Adam Raszkiewicz ! You can find here an example of a Mirroring using API developed by @Mario Sanchez Macias
You can check this article to see how to send and receive DICOM messages from IRIS to PACS and adapt the code as you need. Maybe this response is helpful to you too.
Hi Yone!
As far as I know there are no applications to compare productions (maybe I'm wrong), but It wouldn't be too hard to develop something to check it, at the end, a production is saved as any other class and you can access to the specific file of the class to compare.
Here you have an example of a production class:
Class QUINIELA.Production Extends Ens.Production [ Not ProcedureBlock ]
{
XData ProductionDefinition
{
<Production Name="QUINIELA.Production" LogGeneralTraceEvents="false">
<Description></Description>
<ActorPoolSize>1</ActorPoolSize>
<Item Name="QUINIELA.BO.ImportBO" Category="" ClassName="QUINIELA.BO.ImportBO" PoolSize="5" Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
</Item>
<Item Name="QUINIELA.BP.ImportBPL" Category="" ClassName="QUINIELA.BP.ImportBPL" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
</Item>
<Item Name="QUINIELA.BO.StatusBO" Category="" ClassName="QUINIELA.BO.StatusBO" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
</Item>
<Item Name="QUINIELA.BS.FromWSBS" Category="" ClassName="QUINIELA.BS.FromWSBS" PoolSize="0" Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
</Item>
<Item Name="QUINIELA.BO.PrepareBO" Category="" ClassName="QUINIELA.BO.PrepareBO" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
</Item>
<Item Name="QUINIELA.BO.TrainBO" Category="" ClassName="QUINIELA.BO.TrainBO" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="true" Schedule="">
</Item>
<Item Name="QUINIELA.BP.PrepareBP" Category="" ClassName="QUINIELA.BP.PrepareBP" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
</Item>
<Item Name="QUINIELA.BP.TrainBP" Category="" ClassName="QUINIELA.BP.TrainBP" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
</Item>
<Item Name="QUINIELA.BO.UtilsBO" Category="" ClassName="QUINIELA.BO.UtilsBO" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="true" Schedule="">
</Item>
<Item Name="QUINIELA.BO.MatchBO" Category="" ClassName="QUINIELA.BO.MatchBO" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="true" Schedule="">
</Item>
</Production>
}
}And here you have an example in Python to compare the content of two files. You only need to know the path in your server to access to those class files to compare.
No problem @Christine Nyamu ! Take a look to this code:
Set context.matchFound = 0// Get count of OBR segmentsSet tOBXCnt = request.GetValueAt("PIDgrpgrp(1).ORCgrp(1).OBXgrp(*)")
// Loop through OBXs and evaluate field contentsFor tIter = 1:1:tOBXCnt
{
set nextIter = tIter+1if tIter < tOBXCnt
{
If ((request.GetValueAt("PIDgrpgrp(1).ORCgrp(1).OBXgrp("_tIter_").OBX:ObservationValue")["SEDATION:") &&
(request.GetValueAt("PIDgrpgrp(1).ORCgrp(1).OBXgrp("_nextIter_").OBX:ObservationValue")["Procedure"))
{
Set context.matchFound = 1
}
}
}This code will check the OBX segments and check a variable to 1 in case that "SEDATION" and "Procedure:" are in consecutive segments.
You can add that code in an Activity of your BPL and check the matchFound variable.
.png)
Well, you hit the nail @Dmitry Maslennikov .
Here in Spain a public contest for the public health service of Asturias was published 1 month ago for a data lake and we missed the opportunity to participate.
And in case that you want to be sure that SEDATION and Procedure are consecutives:
.png)
Try this:
.png)
You just need to change the last return for a send to the BPL.
Well, documentation says:
Setting OperationLimit to a positive integer will cause a match operation to signal a TimeOut error after the specified number of clusters of steps by the match engine.
Maybe the key question here is...what is a cluster of steps?
Just give me the URL to get the data and I'll do it!
I'll paste the answer received by @Aya Heshmat
Assuming the client is using a file stream and created a message header, we would expect the stream stored in the MGR/\stream folder to get cleaned with a purge. Because you can add custom code, the associated stream may not be getting deleted so they need to look at their code. If file sizes are large, global streams are preferrable over file streams since any failover would remove the reference and the stream which might be causing these items to not purge. Assuming the file path is potentially different on each failover member. if the resource is shared, I would still expect it to get purged.
Congratulations guys!
A common Java error is produced by Java Heap Space, you can find here the most common errors of memory produced by Java:
Good article! Curiously I uploaded a small project to recognize faces using IRIS and Embedded Python. Would be nice to save the 128 points vector generated for each face into the database and save time recalculating it for each comparation with a new face.
Following the answer of Dmitry you can check this documentation about the Apache configuration to pass file types to the web gateway:
https://docs.intersystems.com/healthconnectlatest/csp/docbook/DocBook.U…
As you can read in the doc the Apache server has to pass static files if you want to access to the portal manager, maybe that is the problem with your configuration.
I like it!
Have you tried changing the %Date type of DOB for %String?
Great article as usual @Dmitry Maslennikov !