Even though the vendor is stating it, I don't think my name.list is SequenceOfHumanName
- Log in to post comments
Even though the vendor is stating it, I don't think my name.list is SequenceOfHumanName
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..
.png)
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
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.
.png)
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>
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>
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.
I did not have any luck with either option within the DTL editor..
.png)
<INVALID OREF>Transform+16^osuwmc.Epic.FHIR.DTL.ResponsePatientSearch.1 -- logged as '-' number - @' set iter = target.name.list.%GetIterator()'
What I am trying to do is take the R4.PatientResponse and return it into a Data Class Structure format for those that are within my Team who can't read FHIR response or know how to code around it to use to update an HL7 message.
I tried taking the R4.PatientResponse and transforming it into a Record Map data class structure without success.
How would I iterate through the string result to parse the family and given name...
{"use":"official","text":"Archie Obrotest","family":"Obrotest","given":["Archie"]}I was a part of a presentation at #Ready2025 very similar to what you are looking for. At Ready 2025, I worked with @John Goodgame , @Justin Owens, @Julio Rodriguez to present a Change Control Audit (Stealth Control) in which a task queries for changes and inserts the data into SQL tables that could be alerted or queried on.
When it is posted look for a session named...Partnering for Success Collaborative Innovations in Interoperability
@John Goodgame is talking with Product to see if this could be included, or might be publishing the code somewhere for others to use.
Not as many as I hoped... Six
This is how i solved the issue
Set tSC = pRequest.NewResponse(.tResponse) Quit:$$$ISERR(tSC) tSC
Set tResponse.encodedMessage = $get(encodedMessage)
set dMsg = $SYSTEM.Encryption.Base64Decode(tResponse.encodedMessage)
set pResponse = ##class(EnsLib.HL7.Message).%New()
set pResponse = ##class(EnsLib.HL7.Message).ImportFromString($Get(dMsg))
set pResponse.DocType = ##class(EnsLib.HL7.Schema).ResolveSchemaTypeToDocType(pResponse.TypeVersion,pResponse.Name)This is how I solved the issue...
Set tSC = pRequest.NewResponse(.tResponse) Quit:$$$ISERR(tSC) tSC
Set tResponse.encodedMessage = $get(encodedMessage)
set dMsg = $SYSTEM.Encryption.Base64Decode(tResponse.encodedMessage)
set pResponse = ##class(EnsLib.HL7.Message).%New()
set pResponse = ##class(EnsLib.HL7.Message).ImportFromString($Get(dMsg))
set pResponse.DocType = ##class(EnsLib.HL7.Schema).ResolveSchemaTypeToDocType(pResponse.TypeVersion,pResponse.Name)How would I do nested iterations if I need to get something from say example "external Positions"
"externalPositions": [
{
"pureId": 0,
"appointment": {
"uri": "string",
"term": {
"en_GB": "Some text"
}
},
"appointmentString": {
"en_GB": "Some text"
},
"period": {
"startDate": {
"year": 0,
"month": 1,
"day": 1
},
"endDate": {
"year": 0,
"month": 1,
"day": 1
}
},Does ImportFromString automatically Decode Base64 HL7 messages?
Not sure I am following, the idea was to take the HL7 message, encode it, and put it into the osuwmc.Nutrition.OSU.CBOARDNetMenuRequest.SendMessageRequest as the encodedMessage. Using the osuwmc.Nutrition.OSU.CBOARDNetMenuRequest.SendMessageRequest to pass to the Web Service Class to send outbound to the vendor.
The two Parenthesis was a typo, and I was using the $Get(a) to dereference the %Stream to a string for the osuwmc.Nutrition.OSU.CBOARDNetMenuRequest.SendMessageRequest.
The Soap wizard created the osuwmc.Nutrition.OSU.CBOARDNetMenuRequest.SendMessageRequest as the vendor requires a key value and encoded message in the body of the soap request.
[HealthConnect:3.5.0-1.m1]
it was a group permission issue with the directory. However, once I created the DB, added it to the mirror on the Primary, I cannot get it to Sync with the others in the mirror. I removed it from the mirror for now till I have time to look at it again.
While I have applauded the updates, I have given feedback to the UX design team, as at times it seems clunky if we have big namespaces.
@Stephen De Gabrielle did you ever figure this out?
I need to take the Encoded Stream and send it as an Encoded String. How would I take a Stream and send it as a String?
How would I convert the tEncodedStream to a %String?
I dismounted, secure copied the IRIS.dat to my backup/DR and mount the Database, but when I attempt to Activate Mirror Database on the backup, I am getting the following error...
sc="0 "_$lb($lb(2073,"/ensemble/TEST/DB/TESTING/",,,,,,,,$lb(,"%SYS",$lb("e^ActivateMirroredDatabase+3^SYS.Mirror.1^2","e^^^0"))))/* ERROR #2073: Mirrored Database '/ensemble/TEST/DB/TESTING/' is not found on this system */
but it shows that the database has been mounted in the Terminal.
@Evgeny Shvarov, it makes sense I just haven't had the time to investigate.
Still not working right..
Class osuwmc.Nutrition.OSU.CBOARDNetMenuOperation.CBORDHL7Port Extends Ens.BusinessOperation [ ProcedureBlock ]
{
Parameter ADAPTER = "EnsLib.SOAP.OutboundAdapter";
Property LocalInterface As %String(MAXLEN = 255);
Parameter SETTINGS = "LocalInterface:Connection:selector?context={Ens.ContextSearch/TCPLocalInterfaces}";
Method OnInit() As %Status
{
If 'IsObject(..Adapter.%Client.HttpRequest) {
Set ..Adapter.%Client.HttpRequest=##class(%Net.HttpRequest).%New()
}
Set ..Adapter.%Client.HttpRequest.LocalInterface=$ZStrip($P(..LocalInterface,"("),"*W")
}Terminating Job 819984 / 'NutritionCBOARDNetMenuSOAP' with Status = ERROR <Ens>ErrException: <SUBSCRIPT>OnInit+1^osuwmc.Nutrition.OSU.CBOARDNetMenuOperation.CBORDHL7Port.1 *IsObject("") -- logged as '-' number - @' If 'IsObject(..Adapter.%Client.HttpRequest) {', %QuitTask=
Class osuwmc.Nutrition.OSU.CBOARDNetMenuOperation.CBORDHL7Port Extends (Ens.BusinessOperation, EnsLib.SOAP.GenericOperation) [ ProcedureBlock ]
{
Parameter ADAPTER = "EnsLib.SOAP.OutboundAdapter";
Property LocalInterface As %String(MAXLEN = 255);
Parameter SETTINGS = "LocalInterface:Connection:selector?context={Ens.ContextSearch/TCPLocalInterfaces}";
Method OnInit() As %Status
{
set interface = $ZStrip($P(..LocalInterface,"("),"*W")
Set ..%Client.HttpRequest=##class(%Net.HttpRequest).%New()
set ..%Client.HttpRequest.LocalInterface = interface
QUIT $$$OK
}I tried using ..%Client but got..
ERROR: osuwmc.Nutrition.OSU.CBOARDNetMenuOperation.CBORDHL7Port.cls
ERROR: osuwmc.Nutrition.OSU.CBOARDNetMenuOperation.CBORDHL7Port.1(4) : MPP5376 : Method or Property '%Client' does not exist in this class.
TEXT: Set ..%Client.HttpRequest=##class(%Net.HttpRequest).%New()
ERROR: osuwmc.Nutrition.OSU.CBOARDNetMenuOperation.CBORDHL7Port.1(5) : MPP5376 : Method or Property '%Client' does not exist in this class.
TEXT: set ..%Client.HttpRequest.LocalInterface = interface
When I tried to compile.
I ended up doing..
Class osuwmc.Nutrition.OSU.CBOARDNetMenuOperation.CBORDHL7Port Extends (Ens.BusinessOperation, EnsLib.SOAP.GenericOperation) [ ProcedureBlock ]
{
Parameter ADAPTER = "EnsLib.SOAP.OutboundAdapter";
Property LocalInterface As %String(MAXLEN = 255);
Parameter SETTINGS = "LocalInterface:Connection:selector?context={Ens.ContextSearch/TCPLocalInterfaces}";
Method OnInit() As %Status
{
set interface = $ZStrip($P(..LocalInterface,"("),"*W")
set HttpRequest = ##class(%Net.HttpRequest).%New()
set HttpRequest.LocalInterface = interface
$$$LOGINFO("CBORDHL7Port OnInit: LocalInterface="_interface)
QUIT $$$OK
}The $$$LOGINFO is showing the correct address, but I am still having issues connecting. But thanks
This has been presented in each of the previous Global Summit's conferences. We will be reviewing it again at this years InterSystems READY 2025. Orlando Health has been the mainstay in the Development work of this tool. Please see previous session recordings via You Tube.
I am not sure I quite understand the question, but I just recently wrote EnsLib.SQL.InboundAdapters that will query MS SQL Server and write the data directly to IRIS Cache Tables I built, so in that sense it is possible. But if you have a service that is listening for a connection to query IRIS Tables, then I think you would want to build like an API listener that then queries the tables.
Hello Community,
Thanks responseData.items.%Get(0).titles.%Get(0).value.%Get("en_US") did the trick