Navigate XML Bundle resource
Hi everyone,
I'm struggling with the extraction of information from the following XML:
<Bundle xmlns="http://hl7.org/fhir">
<id value="b35061d2-7bf1-11ef-a57c-005056b65e2f"/>
<type value="transaction-response"/>
<timestamp value="2024-09-26T10:10:43Z"/>
<entry>
<resource>
<Observation>
<id value="2005"/>
<meta>
<versionId value="1"/>
<lastUpdated value="2024-09-26T10:10:43Z"/>
</meta>
<status value="final"/>
<code>
<coding>
<system value="urn:oid:2.16.840.1.113883.6.1"/>
<code value="1-8"/>
<display value="Acyclovir [Susceptibility]"/>
</coding>
</code>
<subject>
<reference value="Patient/5978971"/>
</subject>
<effectiveDateTime value="2024-09-09T13:20:24Z"/>
<valueCodeableConcept id="5670">
<coding>
<system value="urn:oid:2.16.840.1.113883.6.103"/>
<code value="612.5"/>
<display value="Prova"/>
</coding>
</valueCodeableConcept>
<interpretation>
<coding>
<code value="Media"/>
</coding>
</interpretation>
<bodySite>
<coding>
<system value="urn:oid:2.16.840.1.113883.12.163"/>
<code value="LA"/>
<display value="Braccio sinistro"/>
</coding>
</bodySite>
</Observation>
</resource>
<response>
<status value="201"/>
<location value="https://fser-test.regione.veneto.it/PROXYFHIR/r4/Observation/2005"/>
<etag value="W/"1""/>
<lastModified value="2024-09-26T10:10:43Z"/>
</response>
</entry>
<entry>
<resource>
<Observation>
<id value="2006"/>
<meta>
<versionId value="1"/>
<lastUpdated value="2024-09-26T10:10:43Z"/>
</meta>
<status value="final"/>
<code>
<coding>
<system value="urn:oid:2.16.840.1.113883.6.1"/>
<code value="1-8"/>
<display value="Acyclovir [Susceptibility]"/>
</coding>
</code>
<subject>
<reference value="Patient/5978971"/>
</subject>
<effectiveDateTime value="2024-09-09T13:20:24Z"/>
<valueCodeableConcept id="5670">
<coding>
<system value="urn:oid:2.16.840.1.113883.6.103"/>
<code value="612.5"/>
<display value="Prova"/>
</coding>
</valueCodeableConcept>
<interpretation>
<coding>
<code value="Media"/>
</coding>
</interpretation>
<bodySite>
<coding>
<system value="urn:oid:2.16.840.1.113883.12.163"/>
<code value="LA"/>
<display value="Braccio sinistro"/>
</coding>
</bodySite>
</Observation>
</resource>
<response>
<status value="201"/>
<location value="https://fser-test.regione.veneto.it/PROXYFHIR/r4/Observation/2006"/>
<etag value="W/"1""/>
<lastModified value="2024-09-26T10:10:43Z"/>
</response>
</entry>
</Bundle>
I'm doing:
set Bundle = ##class(A2Lib.FHIR.v400.Bundle).%New()
do reader.Correlate("Bundle","A2Lib.FHIR.v400.Bundle")
do reader.Next(.Bundle,.st)
for e=1:1:Bundle.entry.Count(){
set locationValue = Bundle.entry.GetAt(e).response.location.value
... ...
But locationValue remain empty.
Can someone help me about what I'm doing wrong?
Thank you
Comments
Ciao Marco,
it's difficult, virtually impossible, to tell where the problem is since your class A2Lib.FHIR.v400.Bundle is not part of IRIS.
If you cannot share your class, try to reproduce the problem in a smaller scale/class/xml and post it here.
Hi Enrico,
yes, I can share the entire package. (I copy the code here, because I'm not able to attach the file).
Thank you for your time.
--------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<Export generator="IRIS" version="26" zv="IRIS for UNIX (Red Hat Enterprise Linux for x86-64) 2021.1.2 (Build 336U)" ts="2024-09-27 08:30:30">
<Class name="A2Lib.FHIR.v400.Bundle.Entry">
<Description>
A container for a collection of resources.
Creato da: /tmp/bundle.xsd</Description>
<IncludeCode>%occErrors</IncludeCode>
<ProcedureBlock>1</ProcedureBlock>
<Super>A2Lib.FHIR.v400.BackboneElement,fse.utilities.DeleteHelper.OnDeleteSuper</Super>
<TimeChanged>65653,56177.608021</TimeChanged>
<TimeCreated>65098,56606.332043</TimeCreated>
<Parameter name="ELEMENTQUALIFIED">
<Default>1</Default>
</Parameter>
<Parameter name="NAMESPACE">
<Default>http://hl7.org/fhir</Default>
</Parameter>
<Parameter name="XMLNAME">
<Default>Bundle.Entry</Default>
</Parameter>
<Parameter name="XMLSEQUENCE">
<Default>1</Default>
</Parameter>
<Parameter name="XMLTYPE">
<Default>Bundle.Entry</Default>
</Parameter>
<Property name="link">
<Description>
A series of links that provide context to this entry.</Description>
<Type>A2Lib.FHIR.v400.Bundle.Link</Type>
<Collection>list</Collection>
<Parameter name="XMLNAME" value="link"/>
<Parameter name="XMLPROJECTION" value="ELEMENT"/>
</Property>
<Property name="fullUrl">
<Description>
The Absolute URL for the resource. The fullUrl SHALL NOT disagree with the id in the resource - i.e. if the fullUrl is not a urn:uuid, the URL shall be version-independent URL consistent with the Resource.id. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that:
* fullUrl can be empty on a POST (although it does not need to when specifying a temporary id for reference in the bundle)
* Results from operations might involve resources that are not identified.</Description>
<Type>A2Lib.FHIR.v400.uri</Type>
<Parameter name="XMLNAME" value="fullUrl"/>
</Property>
<Property name="resource">
<Description>
The Resource for the entry. The purpose/meaning of the resource is determined by the Bundle.type.</Description>
<Type>A2Lib.FHIR.v400.ResourceContainer</Type>
<Parameter name="XMLNAME" value="resource"/>
</Property>
<Property name="search">
<Description>
Information about the search process that lead to the creation of this entry.</Description>
<Type>A2Lib.FHIR.v400.Bundle.Search</Type>
<Parameter name="XMLNAME" value="search"/>
</Property>
<Property name="request">
<Description>
Additional information about how this entry should be processed as part of a transaction or batch. For history, it shows how the entry was processed to create the version contained in the entry.</Description>
<Type>A2Lib.FHIR.v400.Bundle.Request</Type>
<Parameter name="XMLNAME" value="request"/>
</Property>
<Property name="response">
<Description>
Indicates the results of processing the corresponding 'request' entry in the batch or transaction being responded to or what the results of an operation where when returning history.</Description>
<Type>A2Lib.FHIR.v400.Bundle.Response</Type>
<Parameter name="XMLNAME" value="response"/>
</Property>
<Method name="SetLink">
<Description>
Insert method for the "link" property.</Description>
<FormalSpec>pRelation:%String="",pURL:%String="",pExtension:%RegisteredObject=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = ##class(A2Lib.FHIR.v400.Bundle.Link).%New(pRelation, pURL, pExtension)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR bundle.entry.setLink object failed") Quit
Set tSC = ..link.Insert(tObj) Quit:$$$ISERR(tSC)
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Method name="SetFullUrl">
<Description>
Set method for the "fullUrl" property.</Description>
<FormalSpec>pValue:%String="",pExtension:%RegisteredObject="",pId:%String=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = ##class(A2Lib.FHIR.v400.uri).%New(pValue, pExtension, pId)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR bundle.entry.setFullUri object failed") Quit
Set ..fullUrl = tObj
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Method name="SetResource">
<Description>
Set method for the "resource" property.</Description>
<FormalSpec>pResource:%RegisteredObject=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = ##class(A2Lib.FHIR.v400.ResourceContainer).%New(pResource)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR bundle.entry.setResourceContainer object failed") Quit
Set ..resource = tObj
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Method name="SetRequest">
<Description>
Set method for the "request" property.</Description>
<FormalSpec>pRequest:%RegisteredObject=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = ##class(A2Lib.FHIR.v400.Bundle.Request).%New(pRequest)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR bundle.entry.setRequest object failed") Quit
Set ..request = tObj
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Method name="SetResponse">
<Description>
Set method for the "response" property. new andrea.bonfio</Description>
<FormalSpec>pStatus:%String="",pLocation:%String="",pEtag:%String="",pLastModified:%String="",pOutcome:%RegisteredObject=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
// modifica costruttore A.B.
Set tObj = ##class(A2Lib.FHIR.v400.Bundle.Response).%New(pStatus, pLocation, pEtag, pLastModified,pOutcome)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR bundle.entry.setResponse object failed") Quit
Set ..response = tObj
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Method name="%OnNew">
<Description>
Get new object, populated with specified data.</Description>
<FormalSpec>pResource:%RegisteredObject,pLinkRelation:%String,pLinkUrl:%String,pFullUrl:%String,pExtension:%RegisteredObject,pModifierExtension:%RegisteredObject</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
If ($Data(pResource)=0)&&($Data(pLinkRelation)=0)&&($Data(pLinkUrl)=0)&&($Data(pFullUrl)=0)&&($Data(pExtension)=0)&&($Data(pModifierExtension)=0) Quit
If $IsObject($Get(pResource)) Set tSC = ..SetResource(pResource) Quit:$$$ISERR(tSC)
If ($Get(pLinkRelation)'="")&&($Get(pLinkUrl)'="") Set tSC = ..SetLink(pLinkRelation, pLinkUrl) Quit:$$$ISERR(tSC)
If $Get(pFullUrl)'="" Set tSC = ..SetFullUrl(pFullUrl) Quit:$$$ISERR(tSC)
#; pExtension may be a single Extension object or a collection of Extension objects.
If $IsObject($Get(pExtension)) {
If (pExtension.%Extends("%Collection.ListOfObj")=0)&&(pExtension.%Extends("%Library.ListOfObjects")=0) {
Set tSC = ..extension.Insert(pExtension) Quit:$$$ISERR(tSC)
} Else {
Set ..extension = pExtension
}
}
#; pModifierExtension may be a single Extension object or a collection of Extension objects.
If $IsObject($Get(pModifierExtension)) {
If (pModifierExtension.%Extends("%Collection.ListOfObj")=0)&&(pModifierExtension.%Extends("%Library.ListOfObjects")=0) {
Set tSC = ..modifierExtension.Insert(pModifierExtension) Quit:$$$ISERR(tSC)
} Else {
Set ..modifierExtension = pModifierExtension
}
}
Set tSC = ..%ValidateObject()
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Storage name="Default">
<Type>%Storage.Persistent</Type>
<DefaultData>EntryDefaultData</DefaultData>
<Data name="EntryDefaultData">
<Subscript>"Entry"</Subscript>
<Value name="1">
<Value>link</Value>
</Value>
<Value name="2">
<Value>fullUrl</Value>
</Value>
<Value name="3">
<Value>resource</Value>
</Value>
<Value name="4">
<Value>search</Value>
</Value>
<Value name="5">
<Value>request</Value>
</Value>
<Value name="6">
<Value>response</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="A2Lib.FHIR.v400.Bundle.Link">
<Description>
A container for a collection of resources.
Creato da: /tmp/bundle.xsd</Description>
<IncludeCode>%occErrors</IncludeCode>
<ProcedureBlock>1</ProcedureBlock>
<Super>A2Lib.FHIR.v400.BackboneElement,fse.utilities.DeleteHelper.OnDeleteSuper</Super>
<TimeChanged>65653,56178.130838</TimeChanged>
<TimeCreated>65098,56606.335157</TimeCreated>
<Parameter name="ELEMENTQUALIFIED">
<Default>1</Default>
</Parameter>
<Parameter name="NAMESPACE">
<Default>http://hl7.org/fhir</Default>
</Parameter>
<Parameter name="XMLNAME">
<Default>Bundle.Link</Default>
</Parameter>
<Parameter name="XMLSEQUENCE">
<Default>1</Default>
</Parameter>
<Parameter name="XMLTYPE">
<Default>Bundle.Link</Default>
</Parameter>
<Property name="relation">
<Description>
A name which details the functional use for this link - see [http://www.iana.org/assignments/link-relations/link-relations.xhtml#lin…;
<Type>A2Lib.FHIR.v400.string</Type>
<Required>1</Required>
<Parameter name="XMLNAME" value="relation"/>
</Property>
<Property name="url">
<Description>
The reference details for the link.</Description>
<Type>A2Lib.FHIR.v400.uri</Type>
<Required>1</Required>
<Parameter name="XMLNAME" value="url"/>
</Property>
<Method name="SetRelation">
<Description>
Set method for the "relation" property.</Description>
<FormalSpec>pValue:%String="",pExtension:%RegisteredObject="",pId:%String=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = ##class(A2Lib.FHIR.v400.string).%New(pValue, pExtension, pId)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR String object failed") Quit
Set ..relation = tObj
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Method name="SetUrl">
<Description>
Set method for the "url" property.</Description>
<FormalSpec>pValue:%String="",pExtension:%RegisteredObject="",pId:%String=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = ##class(A2Lib.FHIR.v400.uri).%New(pValue, pExtension, pId)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR Uri object failed") Quit
Set ..url = tObj
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Method name="%OnNew">
<Description>
Get new object, populated with specified data.</Description>
<FormalSpec>pRelation:%String,pUrl:%String,pExtension:%RegisteredObject</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
If ($Data(pRelation)=0)&&($Data(pUrl)=0)&&($Data(pExtension)=0) Quit
If $Get(pRelation)'="" Set tSC = ..SetRelation(pRelation) Quit:$$$ISERR(tSC)
If $Get(pUrl)'="" Set tSC = ..SetUrl(pUrl) Quit:$$$ISERR(tSC)
#; pExtension may be a single Extension object or a collection of Extension objects.
If $IsObject($Get(pExtension)) {
If (pExtension.%Extends("%Collection.ListOfObj")=0)&&(pExtension.%Extends("%Library.ListOfObjects")=0) {
Set tSC = ..extension.Insert(pExtension) Quit:$$$ISERR(tSC)
} Else {
Set ..extension = pExtension
}
}
Set tSC = ..%ValidateObject()
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Storage name="Default">
<Type>%Storage.Persistent</Type>
<DefaultData>LinkDefaultData</DefaultData>
<Data name="LinkDefaultData">
<Subscript>"Link"</Subscript>
<Value name="1">
<Value>relation</Value>
</Value>
<Value name="2">
<Value>url</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="A2Lib.FHIR.v400.Bundle.Request">
<Description>
A container for a collection of resources.
Creato da: /tmp/bundle.xsd</Description>
<IncludeCode>%occErrors</IncludeCode>
<ProcedureBlock>1</ProcedureBlock>
<Super>A2Lib.FHIR.v400.BackboneElement,fse.utilities.DeleteHelper.OnDeleteSuper</Super>
<TimeChanged>65653,56178.448932</TimeChanged>
<TimeCreated>65098,56606.337306</TimeCreated>
<Parameter name="ELEMENTQUALIFIED">
<Default>1</Default>
</Parameter>
<Parameter name="NAMESPACE">
<Default>http://hl7.org/fhir</Default>
</Parameter>
<Parameter name="XMLNAME">
<Default>Bundle.Request</Default>
</Parameter>
<Parameter name="XMLSEQUENCE">
<Default>1</Default>
</Parameter>
<Parameter name="XMLTYPE">
<Default>Bundle.Request</Default>
</Parameter>
<Property name="method">
<Description>
In a transaction or batch, this is the HTTP action to be executed for this entry. In a history bundle, this indicates the HTTP action that occurred.</Description>
<Type>A2Lib.FHIR.v400.HTTPVerb</Type>
<Required>1</Required>
<Parameter name="XMLNAME" value="method"/>
</Property>
<Property name="url">
<Description>
The URL for this entry, relative to the root (the address to which the request is posted).</Description>
<Type>A2Lib.FHIR.v400.uri</Type>
<Required>1</Required>
<Parameter name="XMLNAME" value="url"/>
</Property>
<Property name="ifNoneMatch">
<Description>
If the ETag values match, return a 304 Not Modified status. See the API documentation for ["Conditional Read"](http.html#cread).</Description>
<Type>A2Lib.FHIR.v400.string</Type>
<Parameter name="XMLNAME" value="ifNoneMatch"/>
</Property>
<Property name="ifModifiedSince">
<Description>
Only perform the operation if the last updated date matches. See the API documentation for ["Conditional Read"](http.html#cread).</Description>
<Type>A2Lib.FHIR.v400.instant</Type>
<Parameter name="XMLNAME" value="ifModifiedSince"/>
</Property>
<Property name="ifMatch">
<Description>
Only perform the operation if the Etag value matches. For more information, see the API section ["Managing Resource Contention"](http.html#concurrency).</Description>
<Type>A2Lib.FHIR.v400.string</Type>
<Parameter name="XMLNAME" value="ifMatch"/>
</Property>
<Property name="ifNoneExist">
<Description>
Instruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for ["Conditional Create"](http.html#ccreate). This is just the query portion of the URL - what follows the"?" (not including the"?").</Description>
<Type>A2Lib.FHIR.v400.string</Type>
<Parameter name="XMLNAME" value="ifNoneExist"/>
</Property>
<Method name="SetMethod">
<Description>
Set method for the "method" property.</Description>
<FormalSpec>pValue:%String="",pExtension:%RegisteredObject="",pId:%String=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = ##class(HS.FHIR.Model.Base.HTTPVerb).%New(pValue, pExtension, pId)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR HTTPVerb object failed") Quit
Set ..method = tObj
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Method name="SetUrl">
<Description>
Set method for the "url" property.</Description>
<FormalSpec>pValue:%String="",pExtension:%RegisteredObject="",pId:%String=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = ##class(HS.FHIR.Model.Datatype.Uri).%New(pValue, pExtension, pId)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR Uri object failed") Quit
Set ..url = tObj
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Method name="SetIfNoneMatch">
<Description>
Set method for the "ifNoneMatch" property.</Description>
<FormalSpec>pValue:%String="",pExtension:%RegisteredObject="",pId:%String=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = ##class(HS.FHIR.Model.Datatype.String).%New(pValue, pExtension, pId)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR String object failed") Quit
Set ..ifNoneMatch = tObj
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Method name="SetIfModifiedSince">
<Description>
Set method for the "ifModifiedSince" property.</Description>
<FormalSpec>pValue:%String="",pExtension:%RegisteredObject="",pId:%String=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = ##class(HS.FHIR.Model.Datatype.Instant).%New(pValue, pExtension, pId)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR Instant object failed") Quit
Set ..ifModifiedSince = tObj
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Method name="SetIfMatch">
<Description>
Set method for the "ifMatch" property.</Description>
<FormalSpec>pValue:%String="",pExtension:%RegisteredObject="",pId:%String=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = ##class(HS.FHIR.Model.Datatype.String).%New(pValue, pExtension, pId)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR String object failed") Quit
Set ..ifMatch = tObj
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Method name="SetIfNoneExist">
<Description>
Set method for the "ifNoneExist" property.</Description>
<FormalSpec>pValue:%String="",pExtension:%RegisteredObject="",pId:%String=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = ##class(HS.FHIR.Model.Datatype.String).%New(pValue, pExtension, pId)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR String object failed") Quit
Set ..ifNoneExist = tObj
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Storage name="Default">
<Type>%Storage.Persistent</Type>
<DefaultData>RequestDefaultData</DefaultData>
<Data name="RequestDefaultData">
<Subscript>"Request"</Subscript>
<Value name="1">
<Value>method</Value>
</Value>
<Value name="2">
<Value>url</Value>
</Value>
<Value name="3">
<Value>ifNoneMatch</Value>
</Value>
<Value name="4">
<Value>ifModifiedSince</Value>
</Value>
<Value name="5">
<Value>ifMatch</Value>
</Value>
<Value name="6">
<Value>ifNoneExist</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="A2Lib.FHIR.v400.Bundle.Response">
<Description>
A container for a collection of resources.
Creato da: /tmp/bundle.xsd</Description>
<IncludeCode>%occErrors</IncludeCode>
<ProcedureBlock>1</ProcedureBlock>
<Super>A2Lib.FHIR.v400.BackboneElement,fse.utilities.DeleteHelper.OnDeleteSuper</Super>
<TimeChanged>65653,56178.810776</TimeChanged>
<TimeCreated>65098,56606.340454</TimeCreated>
<Parameter name="ELEMENTQUALIFIED">
<Default>1</Default>
</Parameter>
<Parameter name="NAMESPACE">
<Default>http://hl7.org/fhir</Default>
</Parameter>
<Parameter name="XMLNAME">
<Default>Bundle.Response</Default>
</Parameter>
<Parameter name="XMLSEQUENCE">
<Default>1</Default>
</Parameter>
<Parameter name="XMLTYPE">
<Default>Bundle.Response</Default>
</Parameter>
<Property name="status">
<Description>
The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code.</Description>
<Type>A2Lib.FHIR.v400.string</Type>
<Required>1</Required>
<Parameter name="XMLNAME" value="status"/>
</Property>
<Property name="location">
<Description>
The location header created by processing this operation, populated if the operation returns a location.</Description>
<Type>A2Lib.FHIR.v400.uri</Type>
<Parameter name="XMLNAME" value="location"/>
</Property>
<Property name="etag">
<Description>
The Etag for the resource, if the operation for the entry produced a versioned resource (see [Resource Metadata and Versioning](http.html#versioning) and [Managing Resource Contention](http.html#concurrency)).</Description>
<Type>A2Lib.FHIR.v400.string</Type>
<Parameter name="XMLNAME" value="etag"/>
</Property>
<Property name="lastModified">
<Description>
The date/time that the resource was modified on the server.</Description>
<Type>A2Lib.FHIR.v400.instant</Type>
<Parameter name="XMLNAME" value="lastModified"/>
</Property>
<Property name="outcome">
<Description>
An OperationOutcome containing hints and warnings produced as part of processing this entry in a batch or transaction.</Description>
<Type>A2Lib.FHIR.v400.ResourceContainer</Type>
<Parameter name="XMLNAME" value="outcome"/>
</Property>
<Method name="SetStatus">
<Description>
Set method for the "status" property.</Description>
<FormalSpec>pValue:%String="",pExtension:%RegisteredObject="",pId:%String=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = ##class(A2Lib.FHIR.v400.string).%New(pValue, pExtension, pId)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR bundle.reponse.SetStatus object failed") Quit
Set ..status = tObj
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Method name="SetLocation">
<Description>
Set method for the "location" property.</Description>
<FormalSpec>pValue:%String="",pExtension:%RegisteredObject="",pId:%String=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = ##class(A2Lib.FHIR.v400.uri).%New(pValue, pExtension, pId)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR bundle.reponse.SetLocation object failed") Quit
Set ..location = tObj
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Method name="SetEtag">
<Description>
Set method for the "etag" property.</Description>
<FormalSpec>pValue:%String="",pExtension:%RegisteredObject="",pId:%String=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = ##class(A2Lib.FHIR.v400.string).%New(pValue, pExtension, pId)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR bundle.reponse.SetEtag object failed") Quit
Set ..etag = tObj
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Method name="SetLastModified">
<Description>
Set method for the "lastModified" property.</Description>
<FormalSpec>pValue:%String="",pExtension:%RegisteredObject="",pId:%String=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = ##class(A2Lib.FHIR.v400.instant).%New(pValue, pExtension, pId)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR bundle.reponse.SetLastModified object failed") Quit
Set ..lastModified = tObj
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Method name="SetOutcome">
<Description>
Set method for the "outcome" property.</Description>
<FormalSpec>pOutcome:%RegisteredObject=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = pOutcome
If $Get(outcome)'=""&&'$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR bundle.reponse.SetpOutcome object failed") Quit
if $IsObject($Get(tObj)) {
Set ..outcome = tObj
}
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Method name="%OnNew">
<Description>
nuovo andrea bonfio</Description>
<FormalSpec>pStatus:%String="",pLocation:%String="",pEtag:%String="",pLastModified:%String="",pOutcome:%RegisteredObject=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
If ($Data(pStatus)=0)&&($Data(pLocation)=0)&&($Data(pEtag)=0)&&($Data(pLastModified)=0) Quit
If $Get(pStatus)'="" Set tSC = ..SetStatus(pStatus) Quit:$$$ISERR(tSC)
If $Get(pLocation)'="" Set tSC = ..SetLocation(pLocation) Quit:$$$ISERR(tSC)
If $Get(pEtag)'="" Set tSC = ..SetEtag(pEtag) Quit:$$$ISERR(tSC)
If $Get(pLastModified)'="" Set tSC = ..SetLastModified(pLastModified) Quit:$$$ISERR(tSC)
If ($Get(pOutcome)'="") Set tSC = ..SetOutcome(pOutcome) Quit:$$$ISERR(tSC)
Set tSC = ..%ValidateObject()
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Storage name="Default">
<Type>%Storage.Persistent</Type>
<DefaultData>ResponseDefaultData</DefaultData>
<Data name="ResponseDefaultData">
<Subscript>"Response"</Subscript>
<Value name="1">
<Value>status</Value>
</Value>
<Value name="2">
<Value>location</Value>
</Value>
<Value name="3">
<Value>etag</Value>
</Value>
<Value name="4">
<Value>lastModified</Value>
</Value>
<Value name="5">
<Value>outcome</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="A2Lib.FHIR.v400.Bundle.Search">
<Description>
A container for a collection of resources.
Creato da: /tmp/bundle.xsd</Description>
<IncludeCode>%occErrors</IncludeCode>
<ProcedureBlock>1</ProcedureBlock>
<Super>A2Lib.FHIR.v400.BackboneElement,fse.utilities.DeleteHelper.OnDeleteSuper</Super>
<TimeChanged>65653,56179.161011</TimeChanged>
<TimeCreated>65098,56606.343417</TimeCreated>
<Parameter name="ELEMENTQUALIFIED">
<Default>1</Default>
</Parameter>
<Parameter name="NAMESPACE">
<Default>http://hl7.org/fhir</Default>
</Parameter>
<Parameter name="XMLNAME">
<Default>Bundle.Search</Default>
</Parameter>
<Parameter name="XMLSEQUENCE">
<Default>1</Default>
</Parameter>
<Parameter name="XMLTYPE">
<Default>Bundle.Search</Default>
</Parameter>
<Property name="mode">
<Description>
Why this entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process.</Description>
<Type>A2Lib.FHIR.v400.SearchEntryMode</Type>
<Parameter name="XMLNAME" value="mode"/>
</Property>
<Property name="score">
<Description>
When searching, the server's search ranking score for the entry.</Description>
<Type>A2Lib.FHIR.v400.decimal</Type>
<Parameter name="XMLNAME" value="score"/>
</Property>
<Method name="SetMode">
<Description>
Set method for the "mode" property.</Description>
<FormalSpec>pValue:%String="",pExtension:%RegisteredObject="",pId:%String=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = ##class(A2Lib.FHIR.v400.SearchEntryMode).%New(pValue, pExtension, pId)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR SearchEntryMode object failed") Quit
Set ..mode = tObj
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Method name="SetScore">
<Description>
Set method for the "score" property.</Description>
<FormalSpec>pValue:%String="",pExtension:%RegisteredObject="",pId:%String=""</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
Set tSC = $$$OK
Try {
Set tObj = ##class(A2Lib.FHIR.v400.decimal).%New(pValue, pExtension, pId)
If '$IsObject($Get(tObj)) Set tSC = $$$ERROR($$$GeneralError,"%New of FHIR Decimal object failed") Quit
Set ..score = tObj
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
]]></Implementation>
</Method>
<Storage name="Default">
<Type>%Storage.Persistent</Type>
<DefaultData>SearchDefaultData</DefaultData>
<Data name="SearchDefaultData">
<Subscript>"Search"</Subscript>
<Value name="1">
<Value>mode</Value>
</Value>
<Value name="2">
<Value>score</Value>
</Value>
</Data>
</Storage>
</Class>
</Export>