Proscia POC
Build the Interface
The message class, transformation, service, operation, router, and end-to-end test.
Message class
Create PROSCIAPKG/SlideOrder.cls:
Saving compiles it automatically. Confirm no errors in the Output panel.
Data transformation
In the portal, switch to the PROSCIA namespace, then: Interoperability → Build → Data Transformations → New.
| Field | Value |
|---|---|
| Package | PROSCIAPKG |
| Name | ORMToSlideOrder |
| Source Class | EnsLib.HL7.Message |
| Source Doc Type | 2.5.1:ORM_O01 |
| Target Class | PROSCIAPKG.SlideOrder |
First add a foreach action over ORCgrp() — click the ORCgrp() node in the source tree, then Add Action → foreach. This loops over every order group, so the field paths below need no index.
Then map five fields by dragging each source node onto its target:
| Target | Source |
|---|---|
| MRN | PIDgrp.PID:PatientIdentifierList().IDNumber |
| PatientName | PIDgrp.PID:PatientName().FamilyName |
| AccessionNumber | ORCgrp().ORC:PlacerOrderNumber.EntityIdentifier |
| OrderCode | ORCgrp().OBRuniongrp.OBRunion.OBR:UniversalServiceIdentifier.Identifier |
| OrderDateTime | ORCgrp().ORC:DateTimeofTransaction.Time |
Then compile.
Test it
Click Test in the DTL editor and paste the sample message:
All five fields should populate. Do not move on until they do.
HL7 input service
In the production config, click + next to Services.
| Setting | Value |
|---|---|
| Service Class | EnsLib.HL7.Service.FileService |
| Service Name | FileIn |
| File Path | /durable/hl7/in |
| Message Schema Category | 2.5.1 |
| Target Config Names | Router |
| Enabled | checked |
Click Apply.
JSON output operation
Create PROSCIAPKG/JSONFileOut.cls:
Add it to the production with + next to Operations.
| Setting | Value |
|---|---|
| Operation Class | PROSCIAPKG.JSONFileOut |
| Operation Name | JSONFileOut |
| File Path | /durable/json/out |
| Enabled | checked |
Routing process
In the production config, click + next to Processes.
| Setting | Value |
|---|---|
| Business Process Class | EnsLib.HL7.MsgRouter.RoutingEngine |
| Business Process Name | Router |
| Enabled | checked |
For Business Rule Name, click the magnifier → New → package PROSCIAPKG, name RoutingRule. That opens the graphical Rule Editor. Add one rule:
| Field | Value |
|---|---|
| Condition | HL7.{MSH:9.1} = "ORM" |
| Action | send |
| Target | JSONFileOut |
| Transform | PROSCIAPKG.ORMToSlideOrder |
Save and compile.
End-to-end test
Download the sample message and copy it into the container:
test.hl7
MSH|^~\&|LIS|LAB|CONCENTRIQ|PROSCIA|20260727120000||ORM^O01^ORM_O01|MSG001|P|2.5.1
PID|1||MRN12345^^^HOSP^MR||DOE^JANE^A||19700101|F
ORC|NW|ACC2026001|||||||20260727115900
OBR|1|ACC2026001||88305^SURGICAL PATHOLOGY^CPT
Check the output:
Then confirm the trace: Interoperability → View → Messages. The path should read FileIn → Router → JSONFileOut, green, with no errors.
Reference
Useful Docker commands:
In the IRIS terminal:
Full reset — destroys the container and all data: