Stream: committers
Topic: choice Element review
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
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.)
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.
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.
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.
Lloyd McKenzie (Sep 03 2019 at 14:24):
Agree re: PlanDefinition.goal. @Bryn Rhodes ?
Lloyd McKenzie (Sep 03 2019 at 14:24):
Not sure why accident locations can't be coded. @Paul Knapp ?
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
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
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
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
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
Grahame Grieve (Sep 03 2019 at 19:58):
GF#23838 for substance amount
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
Grahame Grieve (Sep 03 2019 at 20:03):
GF#23840 for clarifying the communication issue
Grahame Grieve (Sep 03 2019 at 20:05):
GF#23841 for PlanDefinition
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
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]
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.
Lloyd McKenzie (Sep 04 2019 at 19:54):
Makes sense to me...
Bryn Rhodes (Sep 05 2019 at 07:52):
Agree re: PlanDefinition.goal
Last updated: Apr 12 2022 at 19:14 UTC