Scott Roth · Dec 17, 2025 go to post

When you say pNewTarget, does that mean the Object that the message should be sent to?

Scott Roth · Dec 16, 2025 go to post

Congrats to all of DC, it has been an honor not only contribute but to learn from everyone as well.

Scott Roth · Dec 16, 2025 go to post

Thanks everyone for contributing so much to make this Developer Community so successful.

Scott Roth · Dec 4, 2025 go to post

@Timothy Leavitt, I had to create a custom business process to ingest the data from JSON into a Record Map I built for the request to FHIR. The JSON FHIR structures don't really work within the Data Transformation tool. 

Our use case is the following: An EMS squad brings in a Trauma Case into our Emergency Room. The Trauma Case is Registered within Epic as Trauma. Until registration or Medical Records updates the Patient record within our EMR, the name will remain Trauma.

However, the EMS folks send a Result for the Medical Record which is Trauma... in our EMR, but they might send an updated name and demographics. Which causes the Result to fail based on Patient Validation errors in the EMR.

So, the design I came up, was to send a Patient Search FHIR query to the EMR to get the demographics that are currently assigned to that Medical Record, use that information to update the Result from the EMS vendor, and send the Result to the EMR to have it post in a timelier manner instead of waiting for a user in the EMR to work the error to post the result to the Patient's Chart.

We have not fully tested the workflow as of yet, but just getting the Request to be sent via FHIR to the EMR, and interpreting the result was the difficult part.

Scott Roth · Nov 24, 2025 go to post

I updated the Record Map to the following...

Now that I included PATTERN and got it to compile how do I get the BS FTP Record Map Object enforce the Patterns. For example, this morning the system still sent blank First Name, and Last Name after I made them required and added the Pattern.

Scott Roth · Nov 10, 2025 go to post

Since the first line contains the column headers, I am using that to key off of.

Scott Roth · Nov 5, 2025 go to post

Epic is moving to using JKU and not individual JWT, has there been any discussion about how to incorporate a JKU (JSON Web Key URL) within Intersystems IRIS?

Scott Roth · Oct 15, 2025 go to post

@John Murray 
When will it be available to 64 bit VS Code? I am getting the following warning...

 The 'gj :: configExplorer' extension is not available in Visual Studio Code for the Windows 64 bit. 

Scott Roth · Oct 7, 2025 go to post

I have selected the results in the past and pasted them into Excel but then you have to update the formatting.

Scott Roth · Sep 9, 2025 go to post

Stay Connected is set at 60, messages are sent to the BO in batches depending on when we receive the HL7 message that it requires a lookup. 

Because this is going through a Java Gateway Business Service it seems like there is a disconnect on when the BO loses connection and pipe that it uses through the Java Gateway Business Service. The BO loses the connection, but the Java Gateway Business Service still thinks it is connected to the Database.

I have tried adding Connection Attributes to the BO, but it has not help.

Business Operation Settings

  <Item Name="PatientBillingDBPoll" Category="PatientBilling,SQL,PROD,CC,VANW,PatFeeder" ClassName="osuwmc.PatientBilling.PatientBillingDBPollOperation" PoolSize="1" Enabled="true" Foreground="false" Comment="Is used to lookup items against clarity tables" LogTraceEvents="true" Schedule="">
    <Setting Target="Adapter" Name="Credentials"></Setting>
    <Setting Target="Adapter" Name="DSN">MS-PatientBilling</Setting>
    <Setting Target="Adapter" Name="JGService">PatientBilling.JavaGateway</Setting>
    <Setting Target="Host" Name="FailureTimeout">20</Setting>
    <Setting Target="Host" Name="ReplyCodeActions">E=R</Setting>
    <Setting Target="Host" Name="AlertOnError">0</Setting>
    <Setting Target="Adapter" Name="StayConnected">60</Setting>
    <Setting Target="Adapter" Name="ConnectionAttributes">"queryTimeout = 30";"socketTimeout = 60";"cancelQueryTimeout = 45";"connectRetryCount = 100";"connectRetryInterval = 5"</Setting>
    <Setting Target="Host" Name="ArchiveIO">1</Setting>
  </Item>

Java Gateway Settings

<Item Name="PatientBilling.JavaGateway" Category="PROD" ClassName="EnsLib.JavaGateway.Service" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="true" Schedule="">
    <Setting Target="Host" Name="Port">55558</Setting>
    <Setting Target="Host" Name="JavaHome">/usr</Setting>
    <Setting Target="Host" Name="Logfile"></Setting>
    <Setting Target="Host" Name="ClassPath">/nfs/data/drivers/java/*</Setting>
    <Setting Target="Host" Name="JVMArgs">-d64 -Xss512k -Xmx1024m -XX:+DisableExplicitGC -XX:+AggressiveOpts -XX:+ExplicitGCInvokesConcurrent -XX:+UseStringDeduplication -XX:MaxHeapFreeRatio=10 -XX:MinHeapFreeRatio=5</Setting>
  </Item>
Scott Roth · Sep 2, 2025 go to post

d ##class(EnsLib.HL7.SearchTable).BuildIndex()

d ##class(OSU.HL7.SearchTable).BuildIndex()

Scott Roth · Aug 26, 2025 go to post
  • Went to the sea or a lake
    • No
  • Hiked/enjoyed nature
    • No
  • Traveled somewhere new
    • No
  • Attended a concert or festival
    • No
  • Watched a movie or series
    • Yes
  • Read a book
    • No
  • Earned points and redeemed a reward on Global Masters 🏆
    • Yes
  • Joined READY 2025 🎉
    • Yes
  • Spent time with family or friends
    • Yes
Scott Roth · Aug 11, 2025 go to post

I have many examples of doing this, as we have Operations that write and read data from MS SQL using stored procedures.

You said your problem is with the email, how is the email defined within the Message Data Class?

Typically I create a Message Data Class for the Parameters of the Stored Procedure and use that Message Data Class to send to my EnsLib.SQL.OutboundAdapter which is using the Message Class to map to the Class Method that sends the Execution call to the Stored Procedure on MS SQL.

If you need more help, feel free to reach out.

Scott Roth · Aug 7, 2025 go to post

When I had originally tried executing the POST request, it came back blank, but now it is coming back populated

Scott Roth · Aug 6, 2025 go to post

Thanks, but when I try that I am getting nothing in return when I know the query should be returning something.

{
    "status": {
        "errors": [],
        "summary": ""
    },
    "console": [],
    "result": {}
}
Scott Roth · Aug 4, 2025 go to post

I don't believe I built it within that table. It is a simple table to reference Epic Department information that I query from Epic Clarity.

Scott Roth · Aug 4, 2025 go to post

I just realized the Document I was looking at was for 2025.2 not 2025.1 that I am on. I think I will ahve to go down the route of building the API manually.

Scott Roth · Aug 4, 2025 go to post

When I reformat the request to

{
"query": "SELECT ID, Name FROM osuwmc_Epic_Clarity.DepartmentMaster WHERE ID = 300000000",
"index": "IDKEY",
"option": 1,
"debug": true
}

I am not getting any results back when I should be

Scott Roth · Jul 24, 2025 go to post

I was never able to get this figured out. It happens because our Business Process sends to a Business Rule that is disabled and started from our cron. 

We just make sure to go check for suspended messages after a fail-over.

Scott Roth · Jul 17, 2025 go to post

Is there a way to make the file, pipe delimited vs comma delimited?

Scott Roth · Jul 14, 2025 go to post

Even though the vendor is stating it, I don't think my name.list is SequenceOfHumanName

Scott Roth · Jul 11, 2025 go to post

I was able to pull the Patient Resource out of the Bundle, but now I am still stuck on how to pull out the name.list..

Does anyone have any suggestions? %GetIterator() is not working just on target.name.list, I get a message that %GetIterator() does not exist.

Thanks

Scott

Scott Roth · Jul 9, 2025 go to post

while writing to the screen works, I am trying to insert the Patient data into another data class to send back to an HL7 DTL so it can update the HL7 message. When I attempt that in a DTL where I extract the Bundle then send it to the Patient model it is not producing results.

Scott Roth · Jul 8, 2025 go to post

I tried that however the zrwrite r4Patient.toString() didn't properly parse out the transaction

DEVCLIN>set patient = {"resourceType":"Bundle","type":"searchset","total":1,"link":[{"relation":"self","url":"https://ihismufhirnp.osumc.edu/fhir-poc/api/FHIR/R4/Patient?identifier=OSUMRN|415012765"}],"entry":[{"link":[{"relation":"self","url":"https://ihismufhirnp.osumc.edu/fhir-poc/api/FHIR/R4/Patient/efz6cSnh6If5cehlzObXZuO7BwSc77oXLYSL-92FLdec3"}],"fullUrl":"https://ihismufhirnp.osumc.edu/fhir-poc/api/FHIR/R4/Patient/efz6cSnh6If5cehlzObXZuO7BwSc77oXLYSL-92FLdec3","resource":{"resourceType":"Patient","id":"efz6cSnh6If5cehlzObXZuO7BwSc77oXLYSL-92FLdec3","extension":[{"valueCodeableConcept":{"coding":[{"system":"urn:oid:1.2.840.114350.1.13.172.3.7.10.698084.130.768080.39128","code":"male","display":"male"}]},"url":"http://open.epic.com/FHIR/StructureDefinition/extension/legal-sex"},{"valueCodeableConcept":{"coding":[{"system":"urn:oid:1.2.840.114350.1.13.172.3.7.10.698084.130.768080.35144","code":"male","display":"male"}]},"url":"http://open.epic.com/FHIR/StructureDefinition/extension/sex-for-clinical-use"},{"extension":[{"valueCoding":{"system":"http://terminology.hl7.org/CodeSystem/v3-NullFlavor","code":"UNK","display":"Unknown"},"url":"ombCategory"},{"valueString":"Unknown","url":"text"}],"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-race"},{"extension":[{"valueString":"Unknown","url":"text"}],"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity"},{"valueCode":"248153007","url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-sex"},{"valueCodeableConcept":{"coding":[{"system":"http://loinc.org","code":"LA29518-0","display":"he/him/his/his/himself"}]},"url":"http://open.epic.com/FHIR/StructureDefinition/extension/calculated-pronouns-to-use-for-text"}],"identifier":[{"use":"usual","type":{"text":"CEID"},"system":"urn:oid:1.2.840.114350.1.13.172.3.7.3.688884.100","value":"OSRDR3259GL4948"},{"use":"usual","type":{"text":"EPI"},"system":"urn:oid:1.2.840.114350.1.13.172.3.7.5.737384.0","value":"E4377"},{"use":"usual","type":{"text":"EXTERNAL"},"system":"urn:oid:1.2.840.114350.1.13.172.3.7.2.698084","value":"Z5151278"},{"use":"usual","type":{"text":"FHIR"},"system":"http://open.epic.com/FHIR/StructureDefinition/patient-dstu2-fhir-id","value":"TCPNfJueZx8Fjvm4g.lzD.vutNNRpQMfDXDRXJVlKkpcB"},{"use":"usual","type":{"text":"FHIR STU3"},"system":"http://open.epic.com/FHIR/StructureDefinition/patient-fhir-id","value":"efz6cSnh6If5cehlzObXZuO7BwSc77oXLYSL-92FLdec3"},{"use":"usual","type":{"text":"INTERNAL"},"system":"urn:oid:1.2.840.114350.1.13.172.3.7.2.698084","value":"  Z5151278"},{"use":"usual","type":{"text":"OSUMRN"},"system":"urn:oid:1.2.840.114350.1.13.172.2.7.5.737384.100","value":"415012765"},{"use":"usual","type":{"text":"WPRINTERNAL"},"system":"urn:oid:1.2.840.114350.1.13.172.3.7.2.878082","value":"2545814"}],"active":true,"name":[{"use":"official","text":"Case Stontest","family":"Stontest","given":["Case"]},{"use":"usual","text":"Case Stontest","family":"Stontest","given":["Case"]}],"gender":"male","birthDate":"1995-02-27","deceasedBoolean":false,"managingOrganization":{"reference":"Organization/eQi5EjSoIVOTHT0BXoZ4mNA3","display":"WILSON HEALTH"}},"search":{"mode":"match"}}]}

DEVCLIN>set r4Patient = ##class(HS.FHIRModel.R4.Patient).fromDao(patient)

DEVCLIN>zwrite r4Patient.toString()
"{""resourceType"":""Bundle"",""link"":[{}]}"

DEVCLIN>
Scott Roth · Jul 8, 2025 go to post

I attempted that..

DEVCLIN>set patient = {"resourceType":"Bundle","type":"searchset","total":1,"link":[{"relation":"self","url":"https://ihismufhirnp.osumc.edu/fhir-poc/api/FHIR/R4/Patient?identifier=OSUMRN|415012765"}],"entry":[{"link":[{"relation":"self","url":"https://ihismufhirnp.osumc.edu/fhir-poc/api/FHIR/R4/Patient/efz6cSnh6If5cehlzObXZuO7BwSc77oXLYSL-92FLdec3"}],"fullUrl":"https://ihismufhirnp.osumc.edu/fhir-poc/api/FHIR/R4/Patient/efz6cSnh6If5cehlzObXZuO7BwSc77oXLYSL-92FLdec3","resource":{"resourceType":"Patient","id":"efz6cSnh6If5cehlzObXZuO7BwSc77oXLYSL-92FLdec3","extension":[{"valueCodeableConcept":{"coding":[{"system":"urn:oid:1.2.840.114350.1.13.172.3.7.10.698084.130.768080.39128","code":"male","display":"male"}]},"url":"http://open.epic.com/FHIR/StructureDefinition/extension/legal-sex"},{"valueCodeableConcept":{"coding":[{"system":"urn:oid:1.2.840.114350.1.13.172.3.7.10.698084.130.768080.35144","code":"male","display":"male"}]},"url":"http://open.epic.com/FHIR/StructureDefinition/extension/sex-for-clinical-use"},{"extension":[{"valueCoding":{"system":"http://terminology.hl7.org/CodeSystem/v3-NullFlavor","code":"UNK","display":"Unknown"},"url":"ombCategory"},{"valueString":"Unknown","url":"text"}],"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-race"},{"extension":[{"valueString":"Unknown","url":"text"}],"url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity"},{"valueCode":"248153007","url":"http://hl7.org/fhir/us/core/StructureDefinition/us-core-sex"},{"valueCodeableConcept":{"coding":[{"system":"http://loinc.org","code":"LA29518-0","display":"he/him/his/his/himself"}]},"url":"http://open.epic.com/FHIR/StructureDefinition/extension/calculated-pronouns-to-use-for-text"}],"identifier":[{"use":"usual","type":{"text":"CEID"},"system":"urn:oid:1.2.840.114350.1.13.172.3.7.3.688884.100","value":"OSRDR3259GL4948"},{"use":"usual","type":{"text":"EPI"},"system":"urn:oid:1.2.840.114350.1.13.172.3.7.5.737384.0","value":"E4377"},{"use":"usual","type":{"text":"EXTERNAL"},"system":"urn:oid:1.2.840.114350.1.13.172.3.7.2.698084","value":"Z5151278"},{"use":"usual","type":{"text":"FHIR"},"system":"http://open.epic.com/FHIR/StructureDefinition/patient-dstu2-fhir-id","value":"TCPNfJueZx8Fjvm4g.lzD.vutNNRpQMfDXDRXJVlKkpcB"},{"use":"usual","type":{"text":"FHIR STU3"},"system":"http://open.epic.com/FHIR/StructureDefinition/patient-fhir-id","value":"efz6cSnh6If5cehlzObXZuO7BwSc77oXLYSL-92FLdec3"},{"use":"usual","type":{"text":"INTERNAL"},"system":"urn:oid:1.2.840.114350.1.13.172.3.7.2.698084","value":"  Z5151278"},{"use":"usual","type":{"text":"OSUMRN"},"system":"urn:oid:1.2.840.114350.1.13.172.2.7.5.737384.100","value":"415012765"},{"use":"usual","type":{"text":"WPRINTERNAL"},"system":"urn:oid:1.2.840.114350.1.13.172.3.7.2.878082","value":"2545814"}],"active":true,"name":[{"use":"official","text":"Case Stontest","family":"Stontest","given":["Case"]},{"use":"usual","text":"Case Stontest","family":"Stontest","given":["Case"]}],"gender":"male","birthDate":"1995-02-27","deceasedBoolean":false,"managingOrganization":{"reference":"Organization/eQi5EjSoIVOTHT0BXoZ4mNA3","display":"WILSON HEALTH"}},"search":{"mode":"match"}}]}

DEVCLIN>set r4Patient = ##class(HS.FHIRModel.R4.Patient).fromDao(patient)

DEVCLIN>zwrite r4Patient.toString()
"{""resourceType"":""Bundle"",""link"":[{}]}"

DEVCLIN>
Scott Roth · Jul 8, 2025 go to post

Found that the FHIR R4 Patient Resource that I was receiving from my EMR did not follow the Model R4 Patient Resource, so once the fromDao tries to transform the JSON it does not map correctly to the model R4 Patient.