Skip to content

Add eight clinical modules for 3.1 - #84

Merged
aravindm4 merged 1 commit into
mainfrom
docs/clinical-modules-2
Aug 12, 2026
Merged

Add eight clinical modules for 3.1#84
aravindm4 merged 1 commit into
mainfrom
docs/clinical-modules-2

Conversation

@aravindm4

Copy link
Copy Markdown
Member

What

Publishes eight clinical modules from care_docs into the docs site (version 3.1). 30 flows, 7 refreshed concepts and 1 new concept.

Module Flows Concept
Service Request 4 replaced
Specimen 4 replaced
Diagnostic Report 4 replaced
Consent 4 replaced
Files 5 new
Questionnaire Response 3 replaced
Care Team 3 replaced
Notes 3 replaced

All sit as module categories under Flows > Clinical.

Module naming

Two modules were retargeted so they land on the pages the site already has:

care_docs folder Published as
Clinical/Clinical Notes concepts/clinical/notes
Clinical/Care Team concepts/clinical/care-team

Clinical Notes had no frontmatter at all, so it was added to the concept and all three flows.

Files is new. It has no existing concept page; the closest relative is the technical references/platform/file-upload.mdx, which sits under the platform domain. The concept is published under clinical since the flows are all patient and encounter context. Worth confirming that is where it belongs.

Demo videos

The Notes flows embed screen recordings. These are now copied to static/media/clinical/notes/ and referenced by absolute URL, so they are served with the site. This is the first module with recorded media to be published.

Note for reviewers

Seven concepts are replaced, not extended. The Care Team concept in particular was added recently in #59 — worth checking the authored version covers what that one did.

Flow titles were converted from "How to Record a Consent" to "Record a consent", matching the other modules.

Verification

Docusaurus build passes for both en and ml locales.

Publish Service Request, Specimen, Diagnostic Report, Consent, Files,
Questionnaire Response, Care Team and Notes from the care_docs sources.
Adds thirty flows, refreshes seven concepts and adds a new Files
concept. Notes ships with its recorded demo videos under static/media.
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying coredocs with  Cloudflare Pages  Cloudflare Pages

Latest commit: 296bb6b
Status: ✅  Deploy successful!
Preview URL: https://ce8b4bc7.coredocs.pages.dev
Branch Preview URL: https://docs-clinical-modules-2.coredocs.pages.dev

View logs

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generated by Docs Reviewer for #84 · opus50 · 189.6 AIC · ⌖ 17.5 AIC · ⊞ 11K

---

# Care team
# Clinical - Care Team

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The concept template says the H1 is "the resource name in sentence case" (.claude/skills/care-concept-doc/assets/concept-template.md), and checklist item 9 repeats it. # Clinical - Care Team prefixes the domain and uses title case. Use # Care team. The same change is needed in diagnostic-report.mdx, files.mdx, service-request.mdx and specimen.mdx, which all gained a # Clinical - ... H1 in this pull request.

## Definition

The **care team** of an [encounter](../clinical/encounter.mdx) is the list of users who look after the patient during that episode of care. Each member holds a practitioner role, such as a physician or a nurse. The first member in the list is the primary member, and Care shows that member on the encounter card and on printed documents. A care team belongs to one encounter, so a patient with two open encounters has two separate care teams.
The **[care team](https://build.fhir.org/encounter.html#Encounter.participant)** lists the staff who look after a patient during one encounter. Each entry names a staff member and the clinical role that person holds on that encounter. Care keeps the team as a list on the encounter. Care does not keep the team as a separate record with its own identifier, status, or time period. The list matches the participant part of the FHIR R5 Encounter resource. It does not match the standalone [FHIR CareTeam](https://build.fhir.org/careteam.html) resource.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checklist item 7 and the concept template both allow the FHIR link but forbid narrating the mapping. "The list matches the participant part of the FHIR R5 Encounter resource. It does not match the standalone FHIR CareTeam resource" is exactly that narration. Keep the linked bold term and drop both sentences. The same fix applies to notes.mdx line 11 and the ## FHIR R5 alignment section in questionnaire-response.mdx.

| `can_read_encounter_clinical_data` | Read an encounter's clinical data; alternatively satisfies viewing an encounter-linked response from the encounter side | Admin, Doctor, Nurse, Facility Admin |
| `can_submit_patient_questionnaire` | Submit a questionnaire about a patient; required to update (correct) a response not linked to an encounter | Volunteer, Staff, Doctor, Nurse, Admin, Facility Admin, Administrator |
| `can_submit_encounter_questionnaire` | Submit a questionnaire about a patient encounter; required to update (correct) an encounter-linked response | Staff, Doctor, Nurse, Admin, Facility Admin |
## FHIR R5 alignment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

## FHIR R5 alignment is an invented section — the concept template allows only Definition, Key Attributes (with ### sub-sections), Status and Related, in that order (checklist item 8). Its content is also mapping narration, which item 7 forbids. Delete the section and keep the FHIR link on the bold first mention in Definition.


- Care refuses the change when the encounter is in a completed state.
- Care refuses a member who cannot see the encounter.
## Where to find it

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

## Where to find it is not a template section (checklist item 8). Navigation belongs in the flow's Steps, and these pages already have view-the-care-team.mdx. Fold this into the flow and remove the section here; diagnostic-report.mdx line 58 has the same added section.

| --- | --- | --- |
| `can_read_encounter` | See the care team of an encounter. | Admin, Doctor, Nurse, Facility Admin |
| `can_write_encounter` | Add a member, remove a member, or change the primary member. | Admin, Doctor, Nurse, Facility Admin |
| Update Encounter non clinical | Administrator, Doctor, Nurse, Facility Administrator | Add members, remove members, and reorder members. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The permission table columns vary across the eight concepts in this pull request: Permission | Who holds it | What it allows here, Action | Permission in consent.mdx and files.mdx, Permission | Roles in diagnostic-report.mdx, Action | Permission | Roles in notes.mdx. Checklist item 14 asks for one term for one thing across the scope — pick one shape and use it in all eight. Also please confirm "Update Encounter non clinical" is the display name in care/security/permissions/encounter.py; the care team members list reads as clinical data, so this may be the wrong permission.

| Advance Care Directive | Consent for the actions to take if the patient can no longer decide. |

The category names what the patient is deciding about. Care recognises seven:
Note: Care also holds a **Comfort Care** category, but the consent form has no option for it. You cannot select Comfort Care. This is a known gap in the product.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"This is a known gap in the product" is a judgement about the roadmap, not documentation of what Care does. State the behaviour plainly and stop: "You cannot select Comfort Care on the consent form." The same phrase appears at line 66 of this file and in files.mdx.

give a reason. You cannot undo an archive action. Care has no permanent delete action.
Archiving is the only way to remove a file from active use.

## Permissions

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These permission rows say "the same permission that lets you view clinical data for the Patient or the Encounter", which names no permission. Checklist item 16 requires permissions traceable to care; item 5 wants the plain-language name, not a placeholder. Trace the file viewset's authorize_* methods in ohcnetwork/care and give the real display names, for example "Can view clinical data about patients".


## Definition

A **file** in Care is an attachment that you upload and link to another record. You can

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Concepts are strictly user-facing (checklist item 3), yet "Note: Care stores files as generic attachments. This module has no formal FHIR R5 resource mapping in Care" is implementation and FHIR-mapping narration (item 7). Delete the note — a concept does not need to explain the absence of a FHIR resource.


This flow describes how to find [Clinical Notes](../../../concepts/clinical/notes.mdx) discussions in Care. Care keeps two separate lists. One list belongs to the encounter. The other list belongs to the patient alone.

<video src="/media/clinical/notes/3.%20Find%20discussions%20for%20a%20patient%20or%20an%20encounter.mp4" poster="/media/clinical/notes/3.%20Find%20discussions%20for%20a%20patient%20or%20an%20encounter.png" controls width="720"></video>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The media filenames carry numeric prefixes and spaces (3. Find discussions for a patient or an encounter.mp4), so every reference needs %20 encoding and the ordinal is meaningless once the file is served. Rename the assets to kebab-case, for example /media/clinical/notes/find-discussions.mp4, and update the three flow pages. Please also confirm the raw <video> element is how this site embeds media — no other page in versioned_docs/ does this today.

**Clinical Notes** is the space where staff record and exchange written notes about a patient. Care groups the messages into titled discussions, so different topics stay separate. You find Clinical Notes in the **Notes** tab, which shows a panel called **Discussions**.

In Care's FHIR-aligned model, clinical notes map to the **Communication** resource — running written exchanges about a patient. A note thread holds:
Clinical Notes is a Care feature for staff collaboration. Care does not map Clinical Notes to an FHIR R5 resource.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two problems on this line. "Care does not map Clinical Notes to an FHIR R5 resource" is mapping narration that checklist item 7 removes. And the page H1 is now # Notes while the body says "Clinical Notes" — item 14 wants one term for one thing. Pick the user-facing label from care_fe public/locale/en.json and use it in the H1, the body and the sidebar category.

@aravindm4
aravindm4 merged commit c2e356c into main Aug 12, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant