This wiki has undergone a migration to Confluence found Here
<meta name="googlebot" content="noindex">

Difference between revisions of "FHIR QA Approach"

From HL7Wiki
Jump to navigation Jump to search
 
Line 1: Line 1:
{{FHIR Discussion Page}}
+
Content on this page has been migrated to https://confluence.hl7.org/display/FMG/FHIR+QA+Approach<nowiki/>{{FHIR Discussion Page}}
 
[[Category:Active FHIR Discussion]]
 
[[Category:Active FHIR Discussion]]
 
This page discusses how QA will be handled leading up to the first DSTU.
 
This page discusses how QA will be handled leading up to the first DSTU.
Line 7: Line 7:
  
 
===General considerations===
 
===General considerations===
* Try hard to look at every resource from the perspective you've been assigned.  If you're not going to be able to do that, coordinate with the other reviewers for your "category" and try to ensure that each resource gets reviewed at least twice.  (Coordinating early is wise.)
+
 
* Review one or two resources in the first 24 hours so that you have a sense of what you need to do and how long it will take and so we can resolve any questions early in the process
+
*Try hard to look at every resource from the perspective you've been assigned.  If you're not going to be able to do that, coordinate with the other reviewers for your "category" and try to ensure that each resource gets reviewed at least twice.  (Coordinating early is wise.)
* Think about anything that would make the review process easier when we need to do the same thing again in July.  (You're not on the hook for July, though we'd certainly welcome your participation again.)
+
*Review one or two resources in the first 24 hours so that you have a sense of what you need to do and how long it will take and so we can resolve any questions early in the process
* If you come up with other review criteria ideas, pass them back to one of the FMG co-chairs
+
*Think about anything that would make the review process easier when we need to do the same thing again in July.  (You're not on the hook for July, though we'd certainly welcome your participation again.)
 +
*If you come up with other review criteria ideas, pass them back to one of the FMG co-chairs
  
 
===Resource descriptions===
 
===Resource descriptions===
Line 16: Line 17:
  
 
Things to evaluate:
 
Things to evaluate:
* The resource resource boundaries should be clearly described in the first paragraph or two - it should be obvious what's in and out of scope for the resource
+
 
** Are related resources identified with the  boundaries are clearly identified such that there's no overlap?  (It may not be clear what potential overlaps exist until you've had a chance to look at other resources, so keep this at the back of your mind about previous resources as you're reviewing new ones.)
+
*The resource resource boundaries should be clearly described in the first paragraph or two - it should be obvious what's in and out of scope for the resource
* Is the scope unnecessarily restrictive? (e.g. type of care, animal vs. human, etc.)
+
**Are related resources identified with the  boundaries are clearly identified such that there's no overlap?  (It may not be clear what potential overlaps exist until you've had a chance to look at other resources, so keep this at the back of your mind about previous resources as you're reviewing new ones.)
* Is content appropriately targeted as "what do implementers need to know?"  (We don't want information targeted at modelers, clinicians, etc. that's not relevant to implementers.)
+
*Is the scope unnecessarily restrictive? (e.g. type of care, animal vs. human, etc.)
* Is content organized consistently across resources?  E.g. Are sections that cover the same sorts of things named the same way?  Are some resources missing sections they probably should have?  Is content presented in roughly the same order?
+
*Is content appropriately targeted as "what do implementers need to know?"  (We don't want information targeted at modelers, clinicians, etc. that's not relevant to implementers.)
* Anything else about the organization or presentation that would tend to lead to a negative ballot?
+
*Is content organized consistently across resources?  E.g. Are sections that cover the same sorts of things named the same way?  Are some resources missing sections they probably should have?  Is content presented in roughly the same order?
 +
*Anything else about the organization or presentation that would tend to lead to a negative ballot?
  
 
===Resource elements===
 
===Resource elements===
Line 27: Line 29:
  
 
Things to evaluate:
 
Things to evaluate:
* Are names clear (intuitive) and consistent (following same patterns both within and across resources)?
+
 
* Do the choice of types allow for null flavors if appropriate/relevant?
+
*Are names clear (intuitive) and consistent (following same patterns both within and across resources)?
* Is nesting appropriate (no unnecessary levels, appropriate grouping of repeating/optional elements)
+
*Do the choice of types allow for null flavors if appropriate/relevant?
 +
*Is nesting appropriate (no unnecessary levels, appropriate grouping of repeating/optional elements)
  
 
===80%===
 
===80%===
Line 35: Line 38:
  
 
Things to evaluate:
 
Things to evaluate:
* Do the list of elements seem intuitively appropriate as "part of the 80%" for the broad scope of the resource?  I.e. would most implementers (taking into account the breadth of scope for the resource) use this element?
+
 
* Where an element doesn't pass the "intuitive" sniff-test, are there clearly documented requirements and mappings supporting the element's inclusion?
+
*Do the list of elements seem intuitively appropriate as "part of the 80%" for the broad scope of the resource?  I.e. would most implementers (taking into account the breadth of scope for the resource) use this element?
* Anything that seems missing?
+
*Where an element doesn't pass the "intuitive" sniff-test, are there clearly documented requirements and mappings supporting the element's inclusion?
* Do the provided mappings demonstrate validation against a variety of existing specifications?
+
*Anything that seems missing?
 +
*Do the provided mappings demonstrate validation against a variety of existing specifications?
  
 
===Constraints===
 
===Constraints===
Line 46: Line 50:
  
 
Things to evaluate:
 
Things to evaluate:
* Are minimum cardinality 1 elements truly necessary?  I.e. is it not possible to have a sensible instance in any circumstance with the element missing?
+
 
* Is mustUnderstand set properly - element influences interpretation of other elements
+
*Are minimum cardinality 1 elements truly necessary?  I.e. is it not possible to have a sensible instance in any circumstance with the element missing?
 +
*Is mustUnderstand set properly - element influences interpretation of other elements
  
 
Look at the "Constraints" section underneath the terminology bindings section
 
Look at the "Constraints" section underneath the terminology bindings section
  
 
Things to evaluate:
 
Things to evaluate:
* Are there constraints that ought to be enforced missing?
+
 
* Is the constraint language clear?  Is the rationale obvious?
+
*Are there constraints that ought to be enforced missing?
* Is the constraint too tight?  Will it work in all implementation environments, situations of "partial knowledge", edge cases?
+
*Is the constraint language clear?  Is the rationale obvious?
 +
*Is the constraint too tight?  Will it work in all implementation environments, situations of "partial knowledge", edge cases?
  
 
===Vocabulary===
 
===Vocabulary===
Line 62: Line 68:
  
 
Things to evaluate:
 
Things to evaluate:
* If a binding is identified as "required", is it reasonable to expect *all* implementations to manage with only the provided set of codes and to not have issues mapping their existing content?
+
 
* Where value lists have been provided, are all concepts clearly mutually exclusive, or if not, defined in a hierarchy in which all siblings are mutually exclusive?
+
*If a binding is identified as "required", is it reasonable to expect *all* implementations to manage with only the provided set of codes and to not have issues mapping their existing content?
* Are we inventing new codes where appropriate codes are already defined in existing code systems?
+
*Where value lists have been provided, are all concepts clearly mutually exclusive, or if not, defined in a hierarchy in which all siblings are mutually exclusive?
* Are code descriptions clear - will implementers understand what the codes mean
+
*Are we inventing new codes where appropriate codes are already defined in existing code systems?
 +
*Are code descriptions clear - will implementers understand what the codes mean
  
 
===Search Criteria===
 
===Search Criteria===
Line 73: Line 80:
  
 
Things to evaluate:
 
Things to evaluate:
* Are search criteria consistently named and defined across resources?
+
 
** E.g. Are same criteria in different resources not named the same way
+
*Are search criteria consistently named and defined across resources?
* Do search criteria fit the 80% - i.e. will most systems, taking into account the breadth of use of the resource) want to search by/support searching by this criteria?
+
**E.g. Are same criteria in different resources not named the same way
* Is the expected behavior of the search criteria clear or, where multiple behaviors are possible, is the range of behavior obvious?  E.g. Do we know which element will be searched on, how the match will be done, etc.
+
*Do search criteria fit the 80% - i.e. will most systems, taking into account the breadth of use of the resource) want to search by/support searching by this criteria?
 +
*Is the expected behavior of the search criteria clear or, where multiple behaviors are possible, is the range of behavior obvious?  E.g. Do we know which element will be searched on, how the match will be done, etc.
  
 
===Examples===
 
===Examples===
Line 84: Line 92:
  
 
Things to evaluate:
 
Things to evaluate:
* Do examples cover the breadth and depth of the complete scope of use of the resource
+
 
* Do examples adequately exercise the elements (use all elements, show use of repetition, optionality, use of different types)
+
*Do examples cover the breadth and depth of the complete scope of use of the resource
 +
*Do examples adequately exercise the elements (use all elements, show use of repetition, optionality, use of different types)
  
 
==July QA==
 
==July QA==
* Everything we did in May, plus check for grammar, spelling, consistent language, valid links, etc.
+
 
 +
*Everything we did in May, plus check for grammar, spelling, consistent language, valid links, etc.
  
 
==Pass DSTU==
 
==Pass DSTU==
 
Before a resource can be approved as DSTU:
 
Before a resource can be approved as DSTU:
* At least one of the reference implementations must fully support the resource
+
 
* The test suite must fully support the resource
+
*At least one of the reference implementations must fully support the resource
 +
*The test suite must fully support the resource

Latest revision as of 15:47, 1 May 2020

Content on this page has been migrated to https://confluence.hl7.org/display/FMG/FHIR+QA+Approach

This page discusses how QA will be handled leading up to the first DSTU.

May QA

The following is the set of instructions for performing QA for May. Each reviewer will be assigned a single topic (see list of sections below) and will be asked to review all resources keeping in mind the criteria for that one topic.

General considerations

  • Try hard to look at every resource from the perspective you've been assigned. If you're not going to be able to do that, coordinate with the other reviewers for your "category" and try to ensure that each resource gets reviewed at least twice. (Coordinating early is wise.)
  • Review one or two resources in the first 24 hours so that you have a sense of what you need to do and how long it will take and so we can resolve any questions early in the process
  • Think about anything that would make the review process easier when we need to do the same thing again in July. (You're not on the hook for July, though we'd certainly welcome your participation again.)
  • If you come up with other review criteria ideas, pass them back to one of the FMG co-chairs

Resource descriptions

This is the text prior to the UML diagram. (Ignore the stuff in pink that describes "status".) It also includes the text following the Bindings and Constraints section (and preceding the Search Criteria section). In other words, it's all the descriptive text presented in paragraphs.

Things to evaluate:

  • The resource resource boundaries should be clearly described in the first paragraph or two - it should be obvious what's in and out of scope for the resource
    • Are related resources identified with the boundaries are clearly identified such that there's no overlap? (It may not be clear what potential overlaps exist until you've had a chance to look at other resources, so keep this at the back of your mind about previous resources as you're reviewing new ones.)
  • Is the scope unnecessarily restrictive? (e.g. type of care, animal vs. human, etc.)
  • Is content appropriately targeted as "what do implementers need to know?" (We don't want information targeted at modelers, clinicians, etc. that's not relevant to implementers.)
  • Is content organized consistently across resources? E.g. Are sections that cover the same sorts of things named the same way? Are some resources missing sections they probably should have? Is content presented in roughly the same order?
  • Anything else about the organization or presentation that would tend to lead to a negative ballot?

Resource elements

Look at the XML representation (with the short descriptions), not the UML diagrams. If necessary, click on an element name to see the full definition.

Things to evaluate:

  • Are names clear (intuitive) and consistent (following same patterns both within and across resources)?
  • Do the choice of types allow for null flavors if appropriate/relevant?
  • Is nesting appropriate (no unnecessary levels, appropriate grouping of repeating/optional elements)

80%

Look at the XML representation (with the short descriptions), not the UML diagrams. If necessary, click on an element name to see the full definition.

Things to evaluate:

  • Do the list of elements seem intuitively appropriate as "part of the 80%" for the broad scope of the resource? I.e. would most implementers (taking into account the breadth of scope for the resource) use this element?
  • Where an element doesn't pass the "intuitive" sniff-test, are there clearly documented requirements and mappings supporting the element's inclusion?
  • Anything that seems missing?
  • Do the provided mappings demonstrate validation against a variety of existing specifications?

Constraints

For background, read the "Cardinality" and "Constraints" of the "Resource Format" section

Look at the XML representation (with the short descriptions)

Things to evaluate:

  • Are minimum cardinality 1 elements truly necessary? I.e. is it not possible to have a sensible instance in any circumstance with the element missing?
  • Is mustUnderstand set properly - element influences interpretation of other elements

Look at the "Constraints" section underneath the terminology bindings section

Things to evaluate:

  • Are there constraints that ought to be enforced missing?
  • Is the constraint language clear? Is the rationale obvious?
  • Is the constraint too tight? Will it work in all implementation environments, situations of "partial knowledge", edge cases?

Vocabulary

For background, read the Codes and Terminology section

Look at the terminology bindings section. (You'll need to click on the links to see the list of codes)

Things to evaluate:

  • If a binding is identified as "required", is it reasonable to expect *all* implementations to manage with only the provided set of codes and to not have issues mapping their existing content?
  • Where value lists have been provided, are all concepts clearly mutually exclusive, or if not, defined in a hierarchy in which all siblings are mutually exclusive?
  • Are we inventing new codes where appropriate codes are already defined in existing code systems?
  • Are code descriptions clear - will implementers understand what the codes mean

Search Criteria

For background, read the "Search Parameters" sub-section of the REST section

Look at the "Search Criteria" section at the bottom of the resource

Things to evaluate:

  • Are search criteria consistently named and defined across resources?
    • E.g. Are same criteria in different resources not named the same way
  • Do search criteria fit the 80% - i.e. will most systems, taking into account the breadth of use of the resource) want to search by/support searching by this criteria?
  • Is the expected behavior of the search criteria clear or, where multiple behaviors are possible, is the range of behavior obvious? E.g. Do we know which element will be searched on, how the match will be done, etc.

Examples

For background, read the Formats section

Look at the examples tab. You can review either XML or JSON, but there's no need to review both (they're transforms of each other)

Things to evaluate:

  • Do examples cover the breadth and depth of the complete scope of use of the resource
  • Do examples adequately exercise the elements (use all elements, show use of repetition, optionality, use of different types)

July QA

  • Everything we did in May, plus check for grammar, spelling, consistent language, valid links, etc.

Pass DSTU

Before a resource can be approved as DSTU:

  • At least one of the reference implementations must fully support the resource
  • The test suite must fully support the resource