go to post Bukhtiar Ahmad · Sep 8, 2020 Thanks, I did already like couple of days ago but no response came from anyone yet, fingers crossed.
go to post Bukhtiar Ahmad · Sep 8, 2020 Hi Scott, need another help. I have code that check a value in HL7 msg and send NACK msg. the code works fine for IRIS For Health but not for HealthShare as %ErrorStatus property not available in HealthShare. Any guidance to fix in the code Error coming in compiling the below rules. /// Class Hospital.HospitalProd.RoutingRule Extends Ens.Rule.Definition{Parameter RuleAssistClass = "EnsLib.MsgRouter.RuleAssist";XData RuleDefinition [ XMLNamespace = "http://www.intersystems.com/rule" ]{<ruleDefinition alias="" context="EnsLib.MsgRouter.RoutingEngine" production="Hospital.HospitalProd"><ruleSet name="" effectiveBegin="" effectiveEnd=""><rule name="Valid Facility Code Required"><when condition="Lookup("OnboardedFacilities",HL7.{MSH:SendingFacility.NamespaceID},"No","No")!="Yes""><assign property="%ErrorStatus" value="GenerateNACK("Invalid Sending Facility Code",%ErrorStatus)"></assign></when></rule> Below class compiling on HealthShare Class Hospital.DHARule Extends Ens.Rule.FunctionSet{ ClassMethod GenerateNACK(text As %String, status As %Status) As %Status [ CodeMode = expression, Final ]{$$$ERROR($$$GeneralError,$zstrip($piece($System.Status.GetErrorText(status),"#5001:",2),"*C")_"~"_text)} } Error Msg
go to post Bukhtiar Ahmad · Sep 7, 2020 @Jeffrey Drumm any advice on this error, the same code is working fine on IRIS for Health but on HealthShare giving error. Class Training.HL7Validation.RoutingRule Extends Ens.Rule.Definition If i change above statement with below, it compile in studio and error disappears but when i open rule editor Ens.Rule.Definition comes back and the same error Class Training.HL7Validation.RoutingRule Extends EnsLib.HL7.MsgRouter.RoutingEngine
go to post Bukhtiar Ahmad · Sep 6, 2020 This is interesting, so in the init() method can I check the HL7 message sending facility field? so assume System A - > ADT Service Port 5100 -> Init(check MSH Sending Facility) - > EdgeProduction 1 System B - > ADT Service Port 5100 -> Init(check MSH Sending Facility) - > EdgeProduction 2
go to post Bukhtiar Ahmad · Sep 6, 2020 Thanks tor helping how to read the message, I checked the documentation %ErrorStatus has below definitions and its type is %Status property %ErrorStatus as %Status [ InitialExpression = $$$OK,Transient ];
go to post Bukhtiar Ahmad · Sep 4, 2020 Hi thanks actually we don’t want to create multiple instance but on the same instance we will be creating multiple edges where some external systems sending data will have dedicated single edge where some systems will be combined together into a single edge. Not much documentation or best practices available so I reached to this community. So the question is how to design when discussing with external systems that we should create separate edge (SysEdgeA) for System A but for System B & C we should create combined edge (CombinedEdge1). then later system C comes how we decide CombinedEdge1 is sufficient so include system C in this edge or create another CombinedEdge2, then system D comes we link it to also with CombinedEdge2. Then system E comes we link it to CombinedEdge2, but System F we create again dedicated edge SysEdgeF so what parameters we use to take these decisions , any help will be appreciated
go to post Bukhtiar Ahmad · Sep 3, 2020 Thanks, $zdate($horolog,3) gives system date? and this $zdateh(pDob,3) converts DOB in the format as system date? can you refer me to some doc link where I can practice these programming basics?
go to post Bukhtiar Ahmad · Sep 3, 2020 Thanks, it worked. Actually i am putting all rules from the specs doc, and generating custom NACK msgs, for example here i have rule, for newborn mother identifier value should not be empty, so 1) DOB is valid, 2) Age is less than 3 days , 3) Mother MRN not empty, then process else send NACK ("For NewBorn Encounters, PID.21 Mother Identifier should not be empty"). Similarly I have like 30 + rules from specs doc, so adding one by one, learning and getting help from community. These rules I will put in Edge router before message routes to multiple edges.