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 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 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