# General notes
* Need links to *everything* that needs to be reviewed (e.g., operations, bindings, etc.)
* Need to flag items that were draft and are going normative (for review)
* Output should be markdown pages for confluence, one per WG
* Need process to add items later
* Durable ids for items?
* Make sure to handle the case when an artifact has no declared owner (list for: FMG/FHIR-I)
* Confluence page should have
* Drop-down for disposition
* Area for commenting / linking to location?
* Checkbox for 'ready to remove' for things leaving
* Note anything allocated to a WG that as been merged into another (e.g., 'mnm')
* Add notice at top of page with list of issues that *need* to be addressed
* Determine list and post on FMG today (if possible)
* Create checklist of *required* actions at top of page, assign durable ID's in db
* All other content is informational
# Page Related
* Discover pages
* Can be automated - will generate
* Page Information Needed
* Current publication status: Draft / Active / Retired / Unknown
* Flag anything but `Active` (including missing)
* Current standards status: Normative / Trial Use / Draft / Informative / Deprecated
* Highlight `Informative` for review
* Flag anything but `Normative` and `Informative` (including missing)
* Do automated text processing tasks
* Grammar checks
* Page Checks / Decisions
* Disposition of page
* Staying in Core as Informative
* Staying in Core as Normative
* Moving to IG
* Moving to Confluence
* Being removed
* Review tasks (if staying in Core)
* Verified correct status has been set
* Verify text-processing flags
* Verify grammar check
*
# Resource Related
* Discover resources
* Can be automated - will generate
* Automated
* Text review
* Highlight breaking changes from R4, R4B, and R5
* Highlight elements with min cardinality 1
* Highlight elements with cardinality other than `*` (?)
* Find TU-marked Elements - *must* be resolved
* Extract Bindings
* Look for `required` bindings to external terminologies
* Extract cardinalities
* Extract Summary and Modifier flags
* Extract publication status: Draft / Active / Retired / Unknown
* Flag anything but `Active` (including missing)
* Extract standards status: Normative / Trial Use / Draft / Informative / Deprecated
* Highlight `Informative` for review
* Flag anything but `Normative` and `Informative` (including missing)
* Extract any uses of `fixed[x]` instead of `pattern[x]` for review
* More generally - check to see if best-practice constraints are being violated?
* Manual
* Look for `deprecated` - check vs. R5 status and report with/without that
* Review examples for accuracy and coverage (cannot be automated)
* Review descriptions of elements for accuracy
* *Can* check to see if the element has changed and the description has not
* If there is an interface, review any differences from the interface
* *Can* check if there is an interface and higlight any missing/modified elements
* Review breaking changes
* [ ] Review bindings
* Q: If required binding, is there an escape code?
* If Yes, nothing to do (won't list for review)
* Hightlight the difference between UNKNOWN flavors and OTHER flavors and what they mean
* If No, check if there *should* be (does not mean there *has* to be, just that it should be reviewed)
* Note that there is an interaction with minium cardinality here (i.e., min=1) that needs to be considered
* Q: Is the `required` binding appropriate?
* C: Legacy and external data may change and be un-mappable. There needs to be a safe way to handle that.
* [ ] Review optional elements without `meaningWhenMissing`, only of types:
* boolean
* code
* Fix any FHIRPath errors/warnings on invariants
* Report
* [ ] Cardinality higlights
* Min = 1:
* Q: Is this a concept we can count on all systems having, even those with legacy data and external non-FHIR interfaces?
* Q: For all possible use-cases (summaries, secondary reporting, research, etc.)?
* Q: Will that data be expressible in the data type choices available?
* C: While use of data-absent-reason is usually possible (see below), we want to be cautious about min=1 if there's any reasonable likelihood of the data being absent. FHIR resources aren't about expressing best practice.
* Max != `*`
* Q: Are we confident there are no real-world use-cases where a system would have multiple values for the element that they would have trouble choosing between in order to determine which to send?
## Mappings
* Five Ws
* Mandatory - filled out or exceptions
* List mappings
* See what I can find for `[resource]-[pattern]-mapping-exceptions.xml`
* Anything that has unmatched reason "Unknown" - attach to elements
* look at `shortUnmatched`
* Review maps as specified
## Operations
* Discover operations
* Will generate list
* Manual Review?
## Search Parameters
* Discover search parameters
* Will generate list
* Automatic
* Check status (TU flags)
* Fix any FHIRPath errors/warnings
* Highlight `reference` types that have an empty `target` or that does not match the definition of the element it comes from
* Manual Review?
## Extensions
* Look for extensions in core - flag for review
## Profiles
* ~~Look for profiles in core - flag for review~~
## Terminology
* Manual
* Automated checks
* Look for 'limiting' codes (`both`, `either`, `neither`)
* Flag sets that do not have 'escape' codes (for review)
* Note the bindings in place: type + cardinality (e.g., `required`+`code`)
* Examine breaking changes from R4, R4B, and R5
# Textual Content
* Locations
* Page source (*.html)
* [resource]-introduction.xml, profile-[name]-introduction.xml, operationdefinition-[name]-introduction.xml
* [resource]-notes.xml, profile-[name]-notes.xml, operationdefinition-[name]-notes.xml
* CodeSystem and ValueSet content (e.g., description, display, definition)
* bundle-[resource]-search-params.xml (description)
* list-[resource]-examples.xml, list-[resource]-operations.xml, list-[resource]-packs.xml (display)
* Element-related (e.g., Title, Description, Comments)
* Use database or XML structure definitions?
* Data types / metadata types
* Use database or XML structure definitions?
* Automated Text Processing
* **List each occurence per file / resource**
* Check for correct conformance language (`SHALL`, `SHALL NOT`, `SHOULD`, `SHOULD NOT`, `MAY`, `MAY NOT`)
* Check for *possibly* incorrect conformance language (other cases of above words)
* Spelling checks - cspell - https://github.com/streetsidesoftware/cspell-dicts (EN + Medical)
* Check for explicit references to earlier versions of FHIR
* Check for references to resources and pages that are moving out of core
* Check for textual references to resources or datatypes that no longer exist
* Check for linking to images / diagrams (`<figure>`, `<img>`, etc.)
* Ensure there is `alt` text
* Flag if there is a caption
* Flag if `<img>` is used without `<figure>` tags (for review)
* Check for potential 'incomplete' markers
* To-Do (variations)
* "Will Consider" (variations)
* "..."
* "Future versions of the spec" (variations)
* Check for reader-review notes
* [%stu-note%], "stu note"
* [%impl-note%], "Implementation Note"
* [%feedback-note%], "Feedback"
* [%dragons-start%], "Dragon"
* "[Implementers/Balloters/Voters] are asked ..." (variations)
* Check for Trial Use tags
* `Trial Use` exact literal (e.g., `>Trial Use<`) - in a -notes.xml or -introduction.xml
* class="stu" (in html tag) in any content
* Check for links to Zulip (chat.fhir.org)
* Check for links to Confluence for review