Thank you for making this post Ben.
I highly encourage anyone who uses CCR with TrakCare to fill out the survey and provide their opinion on what the exam should cover.
This was an interesting read. It's always educational to me to see how people use Angular with IRIS as someone who started using Angular recently too.
If you want to refine your code, then I would recommend migrating away from BehaviourSubjects and decorators to using Signals (in fact, I would say to minimize using RxJs if you can get away with it while we wait for more widespread javascript native observables support). Similarly, Zoneless with OnPush change detection seems to be the way of the future.
If you are taking suggestions on future directions for this series then I'm interested to see how Auth Guards can work with IRIS to secure REST endpoints.





You only need to install this in one place, in the last method or routine call in your call stack. If your stack is like this AAA -> BBB -> CCC^ABC -> XXX^XYZ, then you need to put Stuart's code in a method called by XXX^XYZ
For example, assume you have these classmethods
ClassMethod GrandParent() { do ..Parent() } ClassMethod Parent() { do ..Child() } ClassMethod Child() { do ..Inspector() } ClassMethod Inspector() { FOR i=0:1:$STACK(-1)-1 { SET s=$STACK(i,"PLACE") SET retloc=$PIECE(s," ") TRY { SET code=$TEXT(@retloc) } CATCH { SET code="n/a" } WRITE !,retloc," (",$PIECE(s," ",2),") -> ",code } }
Then if you call GrandParent(), then it will print this:
@ (+1) -> n/a GrandParent+1^Sample.Test.1 (+1) -> do ..Parent() } Parent+1^Sample.Test.1 (+1) -> do ..Child() } Child+1^Sample.Test.1 (+1) -> do ..Inspector() }