go to post Dmitry Maslennikov · Oct 4, 2023 By the way, Python Embedded supports to be executed without entering any passwords, you can use environment variables for that.
go to post Dmitry Maslennikov · Oct 3, 2023 It's tricky but not impossible, but obviously not in ObjectScript. Requires additional tools, which should be plenty, now with Python Embedded, it should not be an issue, even with image-based PDFs, which will require OCR.
go to post Dmitry Maslennikov · Oct 3, 2023 Check this template https://github.com/intersystems-community/iris-fhir-template/blob/master... // Configure FHIR Service instance to accept unauthenticated requests set strategy = ##class(HS.FHIRServer.API.InteractionsStrategy).GetStrategyForEndpoint(appKey) set config = strategy.GetServiceConfigData() set config.DebugMode = 4 do strategy.SaveServiceConfigData(config)
go to post Dmitry Maslennikov · Sep 22, 2023 The issue is just in `<` sign in the javascript code, replace it with something else, without <>.
go to post Dmitry Maslennikov · Sep 18, 2023 Refactoring is the best and only solution here, get rid of those files. Yeah, it's painful, for sure, and probably sounds like a waste of time, but it's definitely necessary and will help in the future
go to post Dmitry Maslennikov · Sep 11, 2023 You always can get Community images from Docker Hub Original vanilla images: https://hub.docker.com/u/intersystems Images with IPM/ZPM, and many other features: https://hub.docker.com/u/intersystemsdc
go to post Dmitry Maslennikov · Aug 28, 2023 or use flag USER>write "$lb(" _ $listtostring($lb("demo",,123),,7) _ ")" $lb("demo",,123)
go to post Dmitry Maslennikov · Aug 28, 2023 I think we still need deeper support for IRIS in DBeaver, and it can be implemented. So it will be possible to have more options to be configured, and more possibilities
go to post Dmitry Maslennikov · Aug 7, 2023 you can use $zstrip, where action *P, * is for any place, and P any punctuation for example USER>write $zstrip("before!@#$%^&*()_+\-=\[\]{};':""\\|,.<>\/?after", "*P") beforeafter And if you just want to check if the string contains any punctuations, you can compare if the original string does not equal the same after $zstrip. if you wish to use regexp, you can use $match USER>write $match(".!@", "^[!@#$%^&*()_+\-=\[\]{};':""\\|,.<>\/?]*$") 1
go to post Dmitry Maslennikov · Aug 3, 2023 NodeJS support for IRIS exists, but too limited, the new version is still on the way, and I have no idea when it comes But, as I see this thing is a testing engine, what exactly do you want to see from this connectivity with IRIS? Probably it does not require anything specifically for IRIS, and can be used in a common way
go to post Dmitry Maslennikov · Jul 26, 2023 110 minutes, it seems impossible, or, it's something way too wrong USER>set ts = $zh f i=1:1:65000000 { set ^YYY(i)="somedata" } write !,"elapsed: ", $zh-ts elapsed: 11.126631 USER>s sub="", count = 0, ts = $zh for { set sub = $Order(^YYY(sub)) quit:sub="" set count = count + 1 } write !,"elapsed: ", $zh-ts elapsed: 9.549079 Here result in seconds Yes, for sure, my example is too simple, and too far from any real situation. And there are multiple issues that may happen with your data, it can be how it is stored, where it is stored, how much data in values. And it's difficult to suggest how to check it Have a look at my series of articles about globals in the database, just for information, it may help understand something, what may go wrong In any case, there is a right way to count objects, without counting all of them this way. Is using bitmap index, which you can use even if you have own storage, and do not use objects yet. You still able to build own bitmap index, and count items by this index will be at least 64000 times faster, whereas 64000 is just chunk size for bitmap, and speed will vary depends if you don't have much empty spaces between id's, which needs to be numeric
go to post Dmitry Maslennikov · Jul 3, 2023 You can try to install Haproxy, and configure it for http2 or http3, but define backend as http1. So, it will look like HTTP/2/3 from the browser but still work as HTTP/1 in Caché/IRIS. And only if you have a lot of static files, which you can process independently from IRIS, it may help.
go to post Dmitry Maslennikov · Jun 9, 2023 It looks like there is something wrong with an instance. And It would require some more details, such as the exact version, edition, and the way how it was installed. And just check it manually if HSSYS is present in the system, as well as HSLIB with databases, and all databases are accessible too.
go to post Dmitry Maslennikov · May 25, 2023 Creating an Index with SQL, not directly in ObjectScript, will build Index by default if you don't say do not do it.
go to post Dmitry Maslennikov · Apr 24, 2023 There is no way, to catch the possible issues for the previous version of IRIS. The best case scenario is if you automate the build process, for instance with Docker, and test a compile stage on different versions of IRIS. But the ability to successfully compile may not prove that it will work, it would be better to have some unit tests, which will check it. One more thing, may help, to check it, using the such tool as ObjectScript Quality, can help with checking System's API version. Where you can set the oldest supported version of IRIS, and during the scan, it can check if Methods are available in that particular version.
go to post Dmitry Maslennikov · Apr 10, 2023 Or just add this to the end of docker run command -a "iris session iris -U%SYS '##class(Security.Users).UnExpireUserPasswords(\"*\")'"
go to post Dmitry Maslennikov · Apr 3, 2023 Implemented it with SQL Procedure CREATE OR REPLACE PROCEDURE %ZDJANGO.CLONE_DATABASE(sourceNS %String, targetNS %String) LANGUAGE OBJECTSCRIPT { new $namespace set $namespace = "%SYS" $$$ThrowOnError(##class(Config.Namespaces).Get(sourceNS, .sourceNSparams)) $$$ThrowOnError(##class(Config.Namespaces).Get(targetNS, .targetNSparams)) for kind="Globals", "Routines" { $$$ThrowOnError(##class(Config.Databases).Get(sourceNSparams(kind), .sourceDBparams)) $$$ThrowOnError(##class(Config.Databases).Get(targetNSparams(kind), .targetDBparams)) set from = sourceDBparams("Directory") set to = targetDBparams("Directory") quit:$Data(done(to)) set done(to) = "" $$$ThrowOnError(##class(SYS.Database).Copy(from, to, , , 4)) } } DANGER: Do not use it, made specifically for my case, it may overwrite database
go to post Dmitry Maslennikov · Apr 3, 2023 You can do this query SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' Filter by TABLE_TYPE is to get rid of system tables