Question
· Sep 26

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/&quot;1&quot;"/>
      <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/&quot;1&quot;"/>
      <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
 

Product version: IRIS 2021.2
$ZV: IRIS for UNIX (Red Hat Enterprise Linux for x86-64) 2021.1.2 (Build 336U) Wed Mar 16 2022 17:56:57 EDT [HealthConnect:3.3.0] [HealthConnect:3.3.0]
Discussion (2)2
Log in or sign up to continue

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#link...(http://www.iana.org/assignments/link-relations/link-relations.xhtml#link...).</Description>
<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>