User bio
Have a little Mumps experience from before Cache, but mostly a C/C++ developer (and the follow-on technologies like Perl, Java)
Member since Dec 8, 2015
James has not published any posts yet.

Here's what we've done:

1. BS presents HL7 DFT w/multiple FT1s

2. BP routes this HL7 through a DTL that loops through each FT1,  and writes a single custom Record Mapper 'dummy' segment (which contains patient values and charge details in a single record) for a single file (which can accumulate 1 message, then close...although can also accumulate daily files, if your charge process permits).

3. BO outputs files created in step 2.

3. Record Mapper BS reads this file in, loops through each record, sending to a BP, which

4. passes this single charge through a DTL that creates an HL7 DFT for each record from the input file, sending to the final stage of

5. BO (sending 1 HL7 DFT per FT1 in original message)

So, for this approach you need: 

1.BS (HL7 tcp/ip)

2. BP (w/ HL7->RecMap DTL)

3. BO (RecMap file adapter)

4. BS (RecMap file adapter)

5. BP (w/ RecMap-> DTL) 

6. BO (HL7 tcp/ip)

Which is a little more work that a BPL, unless you're already experienced with both HL7 and Record Mapper, in which case you can create these and get them all working together in half a day.  We took this approach as an 'How To' for folks not yet up to speed on BPL.

If you want the repeat value within RXE:7, try this ->

foreach         source.{ORCgrp(1).RXE(1):ProvidersAdministrationInstr()}       p1

set                 tData = source.{ORCgrp(1).RXE(1):ProvidersAdministrationInstr(p1)}

code              write "Hi!!!_["_p1_"]..["_tData_"].!"


Hi!!!_[1]..[Start infusion at 0.2 mcg/kg/hr. Titrate up or down by 0.1 mcg/kg/hr every 20 minutes to RASS score 0 to -1. DO NOT BOLUS.].!

Hi!!!_[2]..[If RASS at goal on same infusion rate for greater than 8 hours, titrate down by 0.2 mcg/kg/hr every 20 minutes while keeping the RASS in desired range to minimize accumulation. Hold for HR < 70 beats/min. When HR increases by 10 bpm from when it was held, restart infusion at � the prior rate. ].!

Hi!!!_[3]..[Maximum recommended dose is 1.5 mcg/kg/hr. Notify provider if maximum ordered infusion rate reached.].!

(CRs added for formatting)

Examples of calling a function from csession, and setting DocType ad hoc:

ENSEMBLE>do ##class(UMMS.UMMC.HL7.ALL.RouterRoutines).SetDocTypeId( "40382754","2.3:ORM_O01")
/// note: quotes around the msgId don't seem to be necessary. Cache casts num to string?
/// Also, the shorter version of above is:
/// ENSEMBLE>set oref=##class(EnsLib.HL7.Message).%OpenId(40382754)
/// ENSEMBLE>s oref.DocType = "2.3:ORM_O01"  
/// ENSEMBLE>w oref.DocType
/// 2.3:ORM_O01
/// ENSEMBLE>do oref.%Save()Examples of calling ad hoc:

...where msgId is the first number listed in the Message Viewer Contents panel.

Certifications & Credly badges:
James has no Certifications & Credly badges yet.
Global Masters badges:
James has no Global Masters badges yet.
James has no followers yet.
James has not followed anybody yet.