HL7 / uv-pocd

Point of Care Devices FHIR IG Source
Other
4 stars 5 forks source link

Structure definitions lack 'identifiers' that help programmers find PoCD fields #6

Open brianreinhold opened 3 years ago

brianreinhold commented 3 years ago

It significantly simplifies the coding effort if the profiles/structure definitions clearly defines fixed required fields that identify which slice of a 0.. or 1.. element belongs to PoCD. Examples: The Resource.meta element should contain a required profile element containing the PoCD profile URL. Not only does this profile entry help the implementer find all Observation resources that have PoCD data but it clearly indicates that the Observation/Device/DeviceMetric follows the profile and has elements defined by the profile.

The code element should have a required slice with a required coding.system entry that identifies this coding entry as the one with the PoCD nomenclature code. That entry should be explicitly stated in the structure definition.

There are many such similar examples in all the profiles where the element of PoCD interest should be made to clearly standout to the reader so an implementation knows exactly what to do to find the entry of interest, even if the implementer does not understand the meaning of the identifier entries.

There should be supporting text that tells the implementer, fro example, that one can find the PoCD MDC code entry for the code element by locating the coding entry which has code.coding.system=nomenclature system identifier.

The implementer probably wants to find at least the basics as easily as possible

  1. what is the measurement? (code entry)
  2. what is the value?
  3. what is the units
  4. who is the patient

Don't make the implementer work hard or parse the spec or have deep understanding of the spec to find this stuff. Make it as easy and as up front as possible.

stefan-karl commented 3 years ago

Referencing profiles in resources metadata is intended for validation. There have been extensive discussions on Zulip about the use (and misuse) of meta.profile - a recent thread is here. In general, there is no recommendation to make it mandatory. I'd like to get feedback from application developers if this is really needed.

The PoCD profiles define extensible bindings for code, type and unit elements to ValueSets derived from the MDC CodeSystem. This means, if the ValueSet has an appropriate code it must be used in one of the CodeableConcept.codings. If there is no such MDC code available (which will happen in reality) another code system or a private code can be used. Bindings are well described and used overall in the FHIR core specification, so implementers should know what it is. There are also various examples (including dual coding for Vital Signs) in the IG.

I agree that there should be more support for people interested in just using device data. It's on our (long) list of unresolved issues and will hopefully find its way into this IG or a separate guide as Todd suggested.