go to post Evgeny Shvarov · Apr 8 Yes. But you cannot return String in this method - either dynamic object, or Stream object. BTW, I’d even expect this functionality over %JSON.Adapter, as there is an option to import (construct) persistent from dynamic in it: Set person=##class(dc.Sample.Person).%New() do person.%JSONImport(dynamicPerson) But person.%JSONExport() does JSON string into device. Would be wonderful to have: D person.%JSONExport(.dynobj)
go to post Evgeny Shvarov · Apr 8 Thank you so much, @Laura Blázquez García ! This is a great catch! This does the job! The only concern is that I'd love to see something like: set dynObj=$System.JSON.Persistent2Dynamic(person) Especially since VSCode highlights %Zen as a deprecated package. (Are there any plans? calling @Timothy Leavitt )
go to post Evgeny Shvarov · Apr 8 Wow, @Robert Cemper ! Thank you as usual! But 3 lines. Could it be a one command by any chance? :) I compete with the following: /// Get JSON for a person with a given id ClassMethod personsidGET(messageRequest As dc.Sample.v3rest.requests.personsidGET) As %Status { Set person = ##class(dc.Sample.Person).%OpenId(messageRequest.pathid) set stream=##class(%Stream.TmpCharacter).%New() d person.%JSONExportToStream(.stream) return stream } This works, but with an unnecessary "to stream, out of stream" exercise IMHO.
go to post Evgeny Shvarov · Apr 7 Looks very promising, but doesn't work for me: USER>set dynObj = {}.%FromJSON(person.%ToJSON()) SET dynObj = {}.%FromJSON(person.%ToJSON())^<METHOD DOES NOT EXIST> *%ToJSON,dc.Sample.PersonUSER>
go to post Evgeny Shvarov · Apr 7 %Zen is deprecated in 2025.1. but this method is still useful: set dynObj = ##class(%ZEN.Auxiliary.altJSONProvider).%ObjectToAET(obj) Are there any similar or "system" methods now to convert persistent instances into a dynamic object? @Eduard Lebedyuk @Timothy Leavitt
go to post Evgeny Shvarov · Apr 7 Thanks for the clarification, @John Murray ! That's helpful! From a UX standpoint, I'd prefer one menu that "goes to the origin" for both cases, so I don't do calc everytime 'if it is a method, then definition if a variable, then declaration'. Too complex?
go to post Evgeny Shvarov · Apr 7 The example is in your article: Class petstoreserver.impl Extends %REST.Impl [ ProcedureBlock ] { Parameter ExposeServerExceptions = 1; /// Service implemntation for post /pet ClassMethod addPet(messageRequest As petstoreserver.requests.addPet) As %Status { ; Implement your service here. ; Return {} $$$ThrowStatus($$$ERROR($$$NotImplemented)) } ... } The declaration returns %Status. The generated stub suggests return {} meaning the method should return json (which is true) and below it throws status. I think nothing can be fixed here :) Do we have any datatype to provide meaning that we expect the method to return JSON? %JSON? )) But this discrepancy is quite confusing when you look at it for the first time.
go to post Evgeny Shvarov · Apr 6 I managed to get it work. What was confusing is that REST methods return %Status in a declaration but in fact are expected to return JSON objects
go to post Evgeny Shvarov · Apr 5 HI @Lorenzo Scalese ! Do you have any examples of implementation classes with your suite? I managed to generate classes vs openapi v 3.0 but cannot receive any data from implementation methods: either errors or empty results. Not sure what am I doing wrong.
go to post Evgeny Shvarov · Mar 29 BTW, there is another very interesting tool to help in building AI agents - MCP protocol, introduced by Anthropic. Here is the related video
go to post Evgeny Shvarov · Mar 12 Hi @Bukhtiar Ahmad ! Both IRIS for Health and Health Connect are equally suitable for high-performance transaction volume use cases. It depends, of course, on the implementation and tasks, but this is not what differentiates these two products from each other.
go to post Evgeny Shvarov · Mar 11 @Luis Angel Pérez Ramos, great thing! For the sake of testing, could you please share the repo so I can try it locally? And bust the myth on my laptop? )
go to post Evgeny Shvarov · Mar 10 Thanks @Vitaliy Serdtsev ! Glad to see yet another solution to this question!
go to post Evgeny Shvarov · Mar 10 Thank you, @Enrico Parisi! The only thing I have a concern about here is "what is Ensemble,"? and why not Include IRIS? :) But it is not a question to you of course.