Closed chandrashekar-s closed 3 months ago
As part of this PR #924, the first issue is partially addressed now i.e. we accept all Structure definitions for the same resource and lexicographically choose the smaller profile url (which is always deterministic for the given set of definitions), which can be used for Avro conversions. A more stable solution will be provided by #980.
@chandrashekar-s now that #986 is merged and #980 is fixed, can we close this issue too?
The issues mentioned in this ticket have been resolved as part of the PR #986, i.e. now we can configure multiple profiles against the same resource type and consider all the extensions defined by all the profiles.
Support has been provided to configure extended FHIR profiles as part of this PR. However, currently we support only one custom FHIR profile per resource type due to the limitations that we have for Parquet schema which can have only one schema at a time for the given FHIR Resource type.
Due to the above implementation we have observed the following limitations
For example the us-core-encounter profile depends on multiple
us-core-condition
profiles as shown below. But we can configure only one of them leading to the change in the definition which is not right. This has to be fixed such that we can configure all the dependent profiles.Note : If we try to keep the definition of multiple dependent profile in the
us-core-encounter
file but do not upload the dependent profile definitions, then the application fails to process theEncounter
records.For example, the base Observation profile has the
Observation.value[x]
field which can take types like[Quantity, CodeableConcept, String, Boolean etc]
and in the extended Us Core Observation Occupation Profile the fieldObservation.value[x]
can take onlyCodeableConcept
. Because of this, if we want to process a Record belonging to a base profile or other profiles (having other data types) we loose the flexibility as during conversion the extended profile with support for only one type gets applied and the other data type fields are lost during conversion.