Please also add the information from the HS.FHIRServer.API.Data.Request message.

InterSystems FHIR Server does not support accepting an OAuth 2.0 access token via request URL parameter.

For the FHIR Server, the only supported vehicle for the access token is the HTTP Authorization header ("Bearer", plus space, plus the token string).

Hi Ikara,

Yes, you are correct, for HTTP PUT (FHIR update), the resource id must be specified in the request URL.

Best regards,

Paul Lomayesva

InterSystems Corporation

Hi Ikara,

Unfortunately that de-serializer is not being clear about the cause of the problem. In this case, FHIR STU3 specifies CodeSystem identifier as a singleton, but in the JSON stream provided here, it is represented as a collection, causing the error.

The resource validator does a better job of reporting structural problems. Might be useful for diagnosis in case you run across a similar de-serialize error in the future.

For example:

Set tSC = ##class(HS.FHIR.Validation.ResourceValidator).ValidateResource(pFHIRRequest.ContentType, tStream, ,"HS.FHIR.vSTU3.Model.Resource", , .tErrors)

In the case of your example resource, after that call:

>Write !,$system.Status.GetErrorText(tSC)

ERROR #5001: Resource failed schema validation

>Write ! For i = 1:1:tErrors.Errors.Count() Write tErrors.Errors.GetAt(i).DetailsText

HS.FHIR.vSTU3.Model.Resource.CodeSystem property 'identifier' is serialized as collection but is not defined as a collection

Best Regards,
Paul Lomayesva
InterSystems Corporation

Hi Elize,

In the FHIR Sandbox and with HealthShare Unified Care Record (HSUCR) Operational Data Store (ODS) access in general, the Patient search query is the only resource type search query that does not support sorting. _sort is supported for other resource types. Apologies for this not being clear.

Regarding stateId vs queryId, the FHIR specification does show an illustrated example of paging links in a returned Bundle, and does show stateId as the URL query parameter used. However, it is only an example. The links returned from the search should be used as is by the client.

Regards,
Paul Lomayesva
InterSystems Corporation

Hi Lewis,

In your path expression, try all of this together:

- If this is a CCDA document, it seems like each path that you showed should start with "/hl7:ClinicalDocument".

- Use square brackets instead of parentheses.

- Prefix each element with "hl7:".

For example "/hl7:ClinicalDocument/hl7:title".

Regards,

Paul

Hi Lin Zhu,

In the 15.03 Health Connect FHIR support, chained search parameters are not supported. Your contemplated workaround starts somewhat on the right track. However, the 15.03 product also does not truly allow for an acceptable approach for adding search parameters and supporting them. In 15.03, to accomplish what you suggest would require editing an in-product class. We hope to remedy that in a future release.

Best regards,
Paul Lomayesva

Hi Krystian,

I am checking to see if you have received the information that you wanted for this question.

If not, can you clarify whether you are asking about using the FHIR extension property, or about extending (i.e., sub-classing) existing HealthShare FHIR classes?

Thanks

Hi Conor,

There is no support for resource matching or for FHIR conditional update in the product at this time.  The SDA to FHIR transform functionality will always generate new resource ids for all the FHIR resources that it generates.

There is no way to achieve what you're looking for in the current product, aside from developing a custom business operation to manipulate the FHIR Bundle to implement your own resource matching before passing it on to HS.FHIR.Repository.Operations.  That would be a rather complex undertaking though.

Regards,

Paul Lomayesva

Developer

InterSystems Corporation

Hi Conor,

You message seems to indicate that you have constructed your own REST dispatch class - extending %CSP.REST - and are using it for your CSP application Dispatch Class.

If that is the case, please check to ensure that your subclass overrides the HandleCorsRequest class parameter, like this:

Parameter HandleCorsRequest As %Integer = 1;

Regards,

Paul Lomayesva