FHIR Chat · choice Element review · committers

Stream: committers

Topic: choice Element review


view this post on Zulip Grahame Grieve (Sep 03 2019 at 06:40):

I'm looking at the choice elements, and I have some questions. i'm interested in second opinions on this set of questions - should I create and tasks out of this?

  • age[x]: Age, Range, string @ FamilyMemberHistory.age[x]
  • age[x]: CodeableConcept, Range @ Population.age[x] - why missing Age?

Why Range and Ratio inconsistent?

  • amount[x]: Quantity, Range, Ratio, string @ SubstanceDefinition.relationship.amount[x]
  • amount[x]: Quantity, Range, string @ SubstanceAmount.amount[x]
  • amount[x]: Quantity, Range, string @ SubstanceReferenceInformation.target.amount[x]
  • amount[x]: Quantity, string @ SubstanceDefinition.moiety.amount[x]
  • amount[x]: Quantity, string @ SubstanceDefinition.property.amount[x]

This doesn't appear to provide value:

  • author[x]: Reference, string @ Annotation.author[x]

  • why codeableConcept? use case needs to be clear

  • content[x]: Attachment, CodeableConcept, Reference @ Communication.payload.content[x]

  • content[x]: Attachment, CodeableConcept, Reference @ CommunicationRequest.payload.content[x]
  • content[x]: Attachment, Reference @ Contract.friendly.content[x]
  • content[x]: Attachment, Reference @ Contract.legal.content[x]
  • content[x]: Attachment, Reference @ Contract.rule.content[x]

  • need to be consistent?

  • detail[x]: CodeableConcept, Quantity, Range @ PlanDefinition.goal.target.detail[x]

  • detail[x]: CodeableConcept, Quantity, Range, Ratio, boolean, integer, string @ Goal.target.detail[x]

  • should be consistent?

  • location[x]: Address, CodeableConcept, Reference @ Claim.item.location[x]

  • location[x]: Address, CodeableConcept, Reference @ ClaimResponse.addItem.location[x]
  • location[x]: Address, CodeableConcept, Reference @ ExplanationOfBenefit.addItem.location[x]
  • location[x]: Address, CodeableConcept, Reference @ ExplanationOfBenefit.item.location[x]
  • location[x]: Address, Reference @ Claim.accident.location[x]
  • location[x]: Address, Reference @ ExplanationOfBenefit.accident.location[x]

  • check consistency

  • occurrence[x]: Age, Period, Range, Timing, dateTime, string @ Procedure.occurrence[x]

  • occurence[x]: Period, dateTime @ MedicationAdministration.occurence[x]
  • occurred[x]: Period, dateTime @ Provenance.occurred[x]
  • occurrence[x]: Period, Timing, dateTime @ ChargeItem.occurrence[x]
  • occurrence[x]: Period, Timing, dateTime @ Contract.term.action.occurrence[x]
  • occurrence[x]: Period, Timing, dateTime @ DeviceRequest.occurrence[x]
  • occurrence[x]: Period, Timing, dateTime @ ServiceRequest.occurrence[x]
  • occurrence[x]: Period, Timing, dateTime @ SupplyDelivery.occurrence[x]
  • occurrence[x]: Period, Timing, dateTime @ SupplyRequest.occurrence[x]
  • occurrence[x]: Period, dateTime @ CommunicationRequest.occurrence[x]
  • occurrence[x]: Period, dateTime @ RiskAssessment.occurrence[x]
  • occurrence[x]: dateTime, string @ Immunization.occurrence[x]

  • add dateTime to FMH?

  • onset[x]: Age, Period, Range, dateTime, string @ AllergyIntolerance.onset[x]

  • onset[x]: Age, Period, Range, dateTime, string @ Condition.onset[x]
  • onset[x]: Age, Period, Range, string @ FamilyMemberHistory.condition.onset[x]

  • should Range be on all?

  • rate[x]: Range, Ratio, SimpleQuantity @ Dosage.doseAndRate.rate[x]

  • rate[x]: Ratio, SimpleQuantity @ MedicationAdministration.dosage.rate[x]
  • rate[x]: Ratio, SimpleQuantity @ NutritionOrder.enteralFormula.administration.rate[x]

@Eric Haas @Rob Hausam @Paul Knapp @Michelle (Moseman) Miller @Margaret Dittloff @Paul Knapp @Melva Peters @Lloyd McKenzie @Ewout Kramer

view this post on Zulip Lloyd McKenzie (Sep 03 2019 at 14:18):

age[x] - For a population, it's pretty unusual (and outside the 80% for sure) to define a population whose age is just a specific value. It's almost always captured as a lower bound and an upper bound. (And if you only want patients with an age between 33 and 33, then you set the lower and upper bound to the same.)

view this post on Zulip Lloyd McKenzie (Sep 03 2019 at 14:21):

SubstanceAmount.amount isn't a comparison. For SD.relationship.amount, you can say 10 mg per 5 mL and that's a useful thing to say that's distinct from 2mg/mL. For amount it's not. (Not sure about target.amount - @Rik Smithies ?) Absence of ratio would be the same reason for moiety and property. Not sure why those can't have uncertainty though.

view this post on Zulip Lloyd McKenzie (Sep 03 2019 at 14:22):

Agree that Annotation.author could just use display instead of string. (Though I think it's normative, so probably too late.

view this post on Zulip Lloyd McKenzie (Sep 03 2019 at 14:23):

Communication/CommunicationRequest - because you can say that you communicated/want communicated a 'kind' of information rather than pointing to the specific thing to share. On the other hand, in a contract, you always have a specific thing.

view this post on Zulip Lloyd McKenzie (Sep 03 2019 at 14:24):

Agree re: PlanDefinition.goal. @Bryn Rhodes ?

view this post on Zulip Lloyd McKenzie (Sep 03 2019 at 14:24):

Not sure why accident locations can't be coded. @Paul Knapp ?

view this post on Zulip Lloyd McKenzie (Sep 03 2019 at 14:28):

For MedicationAdministration and Immunization, each repetition is a separate instance. On the other hand, for Procedure, you can have a single instance that covers multiple repetitions. (Procedure stands in for both 'detail' and 'statement/summary'.) CommunicationRequest and RiskAssessment aren't periodic, so Timing would make no sense. Same with Provenance. No use-case for fuzziness (Age/Range/string for ChargeItem, Contract, SupplyDelivery or the various orders

view this post on Zulip Lloyd McKenzie (Sep 03 2019 at 14:29):

When tracking family history it's not common to know the specific date because it's reported. AllergyIntolerance and Condition can be captured first-hand rather than reported

view this post on Zulip Lloyd McKenzie (Sep 03 2019 at 14:31):

MedicationAdministration is exact - you record what you did, no uncertainty. Dosage is for ordering, where there can be uncertainty. It seems that uncertainty would be relevant for NutritionOrder too - not sure why Range is missing @Margaret Dittloff

view this post on Zulip Michelle (Moseman) Miller (Sep 03 2019 at 15:18):

why codeableConcept? use case needs to be clear
content[x]: Attachment, CodeableConcept, Reference @ Communication.payload.content[x]
content[x]: Attachment, CodeableConcept, Reference @ CommunicationRequest.payload.content[x]

We do have the following note in the specification "When using contentCodeableConcept, the CodeableConcept is what is being communicated and is not a categorization of the content. If no code is available, contentCodeableConcept.text can be used for non-codified content."

detail[x]: CodeableConcept, Quantity, Range @ PlanDefinition.goal.target.detail[x]
detail[x]: CodeableConcept, Quantity, Range, Ratio, boolean, integer, string @ Goal.target.detail[x]

+1 that PlanDefinition should be updated. FYI, PC recently updated Goal.target.detail to be consistent with Observation.value choice of data types, per GF#17753

occurrence[x]: Age, Period, Range, Timing, dateTime, string @ Procedure.occurrence[x]

+1 to Lloyd's comments above

add dateTime to FMH?
onset[x]: Age, Period, Range, string @ FamilyMemberHistory.condition.onset[x]

PC voted and didn't find that persuasive per GF#10403 due to Lloyd's comments above

view this post on Zulip Grahame Grieve (Sep 03 2019 at 19:13):

We do have the following note in the specification

Yes I read that. It explained what it wasn't, but I still didn't know what the intent was if it was populated - what you should do with it

view this post on Zulip Grahame Grieve (Sep 03 2019 at 19:58):

GF#23838 for substance amount

view this post on Zulip Grahame Grieve (Sep 03 2019 at 20:00):

Annotation.author should definitely not be a choice but it slipped by me. GF#23839 for clarification

view this post on Zulip Grahame Grieve (Sep 03 2019 at 20:03):

GF#23840 for clarifying the communication issue

view this post on Zulip Grahame Grieve (Sep 03 2019 at 20:05):

GF#23841 for PlanDefinition

view this post on Zulip Eric Haas (Sep 04 2019 at 15:14):

I'm not sure what you are asking about these:

occurrence[x]: Period, Timing, dateTime @ DeviceRequest.occurrence[x]
occurrence[x]: Period, Timing, dateTime @ ServiceRequest.occurrence[x]
occurrence[x]: Period, Timing, dateTime @ SupplyDelivery.occurrence[x]
occurrence[x]: Period, Timing, dateTime @ SupplyRequest.occurrence[x]

They are consistent with the pattern

view this post on Zulip Eric Haas (Sep 04 2019 at 15:17):

Agree that range makes sense but then someone will want a range of ratios....

rate[x]: Ratio, SimpleQuantity @ MedicationAdministration.dosage.rate[x]
rate[x]: Ratio, SimpleQuantity @ NutritionOrder.enteralFormula.administration.rate[x]

view this post on Zulip Paul Knapp (Sep 04 2019 at 19:43):

@Lloyd McKenzie I guess they could be, but you would need to code all possible location which seems unlikely. The reason that services may be provided at locations which are coded is because they tend to be coded already as registered or licensed locations (hospitals, facilities, licensed locations, etc.) and accident locations tend not be known in advance and can be anywhere.

view this post on Zulip Lloyd McKenzie (Sep 04 2019 at 19:54):

Makes sense to me...

view this post on Zulip Bryn Rhodes (Sep 05 2019 at 07:52):

Agree re: PlanDefinition.goal


Last updated: Apr 12 2022 at 19:14 UTC