Ensemble supports Data Transformation Language (DTL) for describing data transformations. DTL is an XML language. Ensemble provides wizards and graphical tools for creating, editing, and testing DTL transformations. A data transformation is a Caché class like the following. If you prefer you can use Studio to edit the class definition directly and bypass the wizards and graphical tools.
Ensemble beginner here. One of the downstream applications requires to send two A02 messages instead of one A17. We do it easily in Cloverleaf - either in translation or TCL. How do I create 2 target messages out of one source message in DTL?
I need to add some extensions to the HS.FHIR.vSTU3,Model.Resource.Patient class and then use those extensions to convert incoming FHIR JSON to the FHIR Patient Resource and Likewise add functionality to create A FHIR Patient (target class) from my patient database into the FHIR Patient Resource Object (target class)
many months ago I found a tutorial that explained all of this but can no longer find that tutorial.
I've heard from two different sources the SMP (or parts of it) and for sure the DTL front end (in studio? via SMP?) have been rewritten to be more modern. But on a latest IRIS Community download everything looks the same to me. Am I missing something or is this Marketting Spin?
Hopefully I won't get banned for this post aswell......
I have a DTL to transform X12 Document 278 Request to 278 Response HIPAA 5010 schema. The DTL is called from BPL. I defined a class method that receives source, target, and context objects. How can I create 2000F loops in the response when there were none in the source object?
Our PAS system supplies date in a particular date format (ISO 8601 compliant) that includes seconds and milliseconds. Because many downstream systems cannot handle milliseconds (and some don't even want seconds) many transformations are required to truncate the data.
Hello, our Team is trying to develop Ensemble DTL to transform incoming X12 files into persistent data records. We created a persistent class and we can insert data using SQL. We tried to verify that %Save() gets called by adding %AddToSaveSet() method to persistent class and there writing to a global. We had to extend our persistent class with Ens.VDoc.Interface class or we could not see %Save() being called from Ensemble DTL. We suspect that %Save() gets some kind of error. We tried to debug by overwriting Transform() method in our DTL class.
We have one user that is having issues in Ensemble via browser. The two issues she reported are:
- If she opens a DTL, she has to Save or Compile the DTL before she is able to edit anything in the Actions tab. Typically, you can simply open the DTL, click on a line, and edit the Actions.
- If she opens the Tools tab and clicks the Test button, she does not get a response and it eventually times out on her. Typically, clicking the Test button will open a new window where you can paste a message to test your DTL with.
I came across How to import a tab separated text file into a SQL table programmatically?, which appears to indicate that I can pass the filename and all records will be imported. However, when I put use the Import method only a single record gets imported. However, all records are imported if I use the management console to import the file by selecting it and choosing the options.
I would need to build a Complex Record Map and then transform that into xml. But not the whole batch to one xml file - instead every repetition in that Complex Record Map would become one xml file.
For Simple Record Maps this is easy to do because there are different types of Business Services that handle every record either individually or all of them as one batch but there doesn't seem to be similar options for Complex Record Maps? Instead, there is only batchtype business services.
I have a DTL that reads an xml file and I want transform that to a list of objects but I have a problem looping through my xml as when I try I get the first instance on the xml not the whole XML being transformed. here is my example. Here is the output
I have a batch record mapper that reads a csv file and passes the message to a process that uses the EnsLib.MsgRouter.RoutingEngine and would like to pass the message to an operation that will output that as a XML file but so far been unlucky as the operation that I use , uses the EnsLib.EDI.XML.Operation.FileOperation which only works with the messages("BusinessOperation class for writing XML messages to a file.
I need advice converting a comma delimited string container with multiple records into some type of recordmap that iterates through all the records.
My string container has several records and I would like to loop through the number of records in the string container and transform each record in the container individually. Number of records will vary but the number of fields per record is static (28 fields). Meaning after every 28 fields, a new record begins. The goal is to convert to individual delimited flat file records.
I have a business service that brings in a xml virtual document to the production and also a csv service that brings in a csv file and have a process that transforms both to a xml output but I have a problem with the csv as it is giving me this error when I try to trans form it ```ERROR <Ens>ErrException: <PROPERTY DOES NOT EXIST>zOnRequest+1 ^EnsLib.MsgRouter.VDocRoutingEngine.1 *DocType``` I have read here followed the suggestion but now I do not get any errors but my m
I have come across several cases where I need to set a Date filter to send only send any admit/scheduled date past a certain point. We have a couple different date comparison functions but none looking at the true date. Most of them are date + 15 or etc. Does anyone have a good date function they have written to say if x > 20170102 ?
I have a case where I have a SIU message that has multiple RGSgrp's. I am writting the first RGSgrp fine, but when it comes to the additional RGSgrp's, I want the ability to look at the Target SIU message and see if the value exists. If the AIG.3 already exists in the Target message I want to stop the looping and not write out the data.
Can anyone suggest a way to do this? Is there a way in a DTL to build a list or temp lookup table to see if something exists?
Suppose I have an image and need to convert that image into a PDF for inclusion in an HL7.
I know that Zen Reports can display an image in a PDF but I do not want to view the image in a web page. I just need to convert the image to PDF in a Process and then include that PDF in an HL7. The workflow would be like this:
Get image -> Convert image into PDF -> Include PDF in HL7 OBX.
I know how to do the last part to include PDF in HL7 OBX. Just need ideas on the first part.
1) What's the correct way to check for an existence of a segment? So far I have been doing this by checking to see if a required field is non-null, and this seems to work but is a bit clumsy. In this case, it’s an X12 message being checked in an IF action in BPL: