# Features — theshoulderpractice (The Shoulder Practice, SHOU-1)

Evidence date: 2026-10-01. Source: `master` at `b805d89` (2025-06-20).

Status words:

- **Current** — present on `master` and reachable from a page, control, or service that is still compiled.
- **Dormant** — file or enum exists, but the path does nothing useful or is commented out.
- **Excluded** — removed from compilation by the 2024-01-15 commit `52fa73f`, or left as `*.exclude`.
- **Framework leftover** — ships in this tree from the Palette framework and is not specific to a shoulder practice. It may still run if the menu and database enable it.
- **Unknown** — cannot tell whether the practice uses it without the database or a running site.

No feature flags or changelog describe planned work. Nothing below is marked planned.

## Current — practice-specific

### SHOU-1 web site

ASP.NET Web Forms application at `core_custom/SHOU-1`, with masters `Core.master` (public) and `Administration.master` (admin). Dev labels in `Web.config` name The Shoulder Practice.

### Staff sign-in, vendor session, and Google sign-in for known users

`Admin_SignIn.aspx`. Database login, compiled-in vendor session, Google profile login that refuses unknown emails. See PRD FR-002 and FR-003.

### Password reset link

`Reset.aspx` decrypts `q` and matches `resetCode`.

### Patient sign-in, subjectives, visit log, exam note

`controls/module/medicalPatientSignin.ascx`. Matches `PatientProfile`, then writes a visit log and an `ExamNotes` item.

### Patient visit status button

`PatientProfile_PatientStatus` toggles Pending and In Progress and writes `oMedicalPatientVisitLog` sign-in and sign-out times. `surface_form.ascx.cs`.

### Patient-management scheme column

`SHOU1_SetMedicalAidSchemeColumn` in `surface_grid.ascx.cs`.

### SHOU-1 wizard tab rules and group exceptions

`surface_form.ascx.cs` for codes `SHOU-1` and, for tabs, also `GLOB-1`.

### Custom surgical notes

`controls/surface_custom/SurgicalNotes_form.ascx`, `_grid.ascx`, `_view.ascx`. Loaded from `Canvas.aspx.cs` path `~/controls/surface_custom/`. Holds the create-billing / no-charge rule and the shoulder arthroscopy drawing notes.

### Medical reference editors

| Page | Control |
|---|---|
| `Medical_Practices.aspx` | `controls/medical/practices.ascx` |
| `Medical_Doctors.aspx` | `doctors.ascx` |
| `Medical_Schemes.aspx` | `schemes.ascx` |
| `Medical_MedAdmins.aspx` | `medadmins.ascx` |
| `Medical_ICD10.aspx` | `icd10.ascx` |
| `Medical_Tariffs.aspx` | `tariffs.ascx` |
| `Medical_Procedures.aspx` | `procedures.ascx` |
| `Medical_Symptoms.aspx` | `symptoms.ascx` |
| `Medical_Conditions.aspx` | `conditions.ascx` |
| `Medical_Diagnosis.aspx` | `diagnosis.ascx` |
| `Medical_Trauma.aspx` | `traumaticEvents.ascx` |
| `Medical_PracticeExtras.aspx` | `practiceExtras.ascx` |

### Clinical modules still compiled

Under `core_custom/SHOU-1/controls/module/`:

- `medicalPatientSignin`, `medicalPatientQue`
- `medicalHistory`, `medicalListings`, `medicalSubjectives`, `medicalSymptoms`, `medicalComplaints`
- `diagnosis`, `procedureBooking`, `mediswitchMSV`
- `bodyMap`, `imageMap`, `surfaceDrawing`, `surfaceNotes`, `surfaceSignature`, `surfaceComms`, `surfaceEvents`, `surfaceGallery`, `surfaceGalleryVideo`
- `calendar` and calendar event, type, room, status, tooltip
- `debtorsReports`, `enquiry`, `task`, `taskOverlay`

### Generic surface engine

`surface.ascx`, `surface_form.ascx`, `surface_grid.ascx`, `surface_view.ascx`. Field types include text, number, picklist, date, grid, attachment, formula, MediSwitch, sales, address, barcode, and surface drawing (`pNums.FieldType`).

### MediSwitch client

QA gateway URLs are the active app settings. `pNums.MediswitchOperationType` lists MSV, Claim, and Reversal. Account claim view objects live under `business/objects/ovAccount*.cs`. `App_Code/MediSwitch.cs` and `tools/scheduler/MediSwitch.cs` contain the client. A commented line in the scheduler file builds a payload segment `The Shoulder Practice`.

### Canvas host

`Canvas.aspx` loads the active app from module, surface, custom surface, or composite folders.

### WCF framework service

`service/framework_service.svc` with `ProcessInteraction`, `GetVersion`, and `SaveVersion`.

### SonarQube scan

`bitbucket-pipelines.yml` runs `sonarsource/sonarqube-scan:3.0.2` on `master` and on pull requests. `sonar.projectKey` is `overdrive_theshoulderpractice_16d89501-326c-43f9-909d-7708951b45ea`.

## Current — framework features present on the SHOU-1 site

These pages exist beside the medical pages. Whether the practice menu exposes them is **Unknown**.

- Content, banners, gallery, media, FAQ, search (`Admin_Content`, `Admin_Banners`, `Admin_Gallery`, `Admin_Media`, `Admin_FAQ`, `Search.aspx`, `Media.aspx`).
- Users, setup, templates, canvas builder, surface builder and surface codes (`Admin_Users`, `Admin_Setup`, `Admin_Templates`, `Admin_Canvas`, `Admin_Surface`, `Admin_SurfaceCode`).
- Calendar (`Admin_Calendar.aspx`).
- Tasks, projects, releases, support, job cards (`Admin_Tasks`, `Admin_Projects`, `Admin_Releases`, `Admin_Support`, `Admin_Jobcards`).
- Campaigns and SMS credit (`Admin_Campaigns`, `Admin_SMSCredit`).
- Products, brands, categories, promotions, cart, sales items (`Admin_Products`, `Admin_ProductBrands`, `Admin_ProductCategories`, `Admin_Promotions`, `Cart.aspx`, `Products.aspx`, `Sales_SalesItems.aspx`).
- Customers (`Admin_Customers.aspx`).
- Loyalty groups and stores (`Admin_LoyaltyGroups.aspx`, `Admin_LoyaltyStores.aspx`) and `loyaltyMembers.ascx`.
- Reports (`Admin_Report.aspx`, `report.ascx`).
- File upload module (`fileUploader.ascx`).
- Home page with banner carousel and "New Snapshot" task action (`Default.aspx`).

Sales and purchase statuses include Draft through Paid, plus `CapturedInXero`. No Xero API client was found. Status label only.

## Excluded

Commit `52fa73f` (2024-01-15, "exclusion of pages") renamed these so they are not compiled. Representative list from that commit, all under `core_custom/SHOU-1/controls/`:

- Surface apps: `ACJ`, `BicepsTendonitis`, `CSpine`, `Estimations`, `Examinations`, `FollowupVisitGrid`, `Fracture`, `Glenohumeral`, `OtherDiagnosisOptions`, `PatientManagement`, `PostOpWardRounds`, `RTCTests10`, `ReferralLetters`, `RotatorCuff`, `SurgicalNotes` (the copy under `controls/surface/`, not the custom copy), `UltrasoundFindings`.
- Modules renamed to `.exclude`: `administrators`, `billingInstructions`, `recorder`, one `surfaceGallery` / `surfaceGalleryVideo` pair, `bodyImage`, `healthHistory`, `healthListings`, `healthSubjectives`, `healthSymptoms`, `medicalOverview`, `signin`.

`controls/module/` still contains non-excluded `surfaceGallery.ascx` and `surfaceGalleryVideo.ascx`. The exclude commit touched a different copy of those gallery controls. Both states are in the tree.

The generic renderer and `controls/surface_custom/SurgicalNotes_*` were not excluded.

**Requires Confirmation:** whether Examinations, PatientManagement, and the diagnosis surfaces still appear in the product through database definitions and the generic renderer.

## Dormant

- `Unsubscribe.aspx` — empty `Page_Load`.
- `Test.aspx` — present. Not treated as a product feature.
- Country lookup web services — configured, switched off by `getCountriesFromWebService` = `0`.
- Live MediSwitch URLs — commented out. QA URLs are active.
- Commented WCF endpoint `http://service.paletteone.com/framework_service.svc`.
- Google registration of new users — commented out in `GoogleLogin`.
- Featured products block on `Default.aspx` — commented out in markup.
- `loyaltyEmail` app setting is `0`.

## Framework leftover — not evidence of shoulder-practice use

- SQL script folders `CAPI-1`, `CHUU-1`, `CLOS-1`, `INDE-1`, `INDE-2`, `INDE-6`, `OLIV-1`, `REAP-1`, `ROBI-1`, `SCHO-1`, `SHEN-1`, `STUD-1`, plus archives `major 1` through `1.6.1` and `published to LIVE-CAPI-1 on 190930`.
- `tools/CAPI.Custom` and its docs (`quotes-process-enquiry-items.md`). CAPI quote and purchase-order behaviour.
- `tools/CEP` console projects.
- `SchedulerTool` Google imports named `googlesheetimport-fabrictrimzip`, `googlesheetimportcolours`, and `googlesheetimportdetails`. Those names describe textiles, not a shoulder clinic.
- `mobile/` — class library project only. No screens.
- `core/` and `core-dev/` — parallel website trees. `core_custom/SHOU-1` is the tree whose config names the practice.
- Note categories `Landlords`, `Tenants`, `LeaseManagement` in `pNums.NoteCategory`.
- Wholesaler delivery-quote enums in `pNums`.

## Removed or changed in Git history

| Change | Commit | Effect |
|---|---|---|
| Page exclusion | `52fa73f` 2024-01-15 | Clinical surface markup listed above is no longer a compiled control. A publish of `SHOU-1` was also added in that commit. |
| Division by zero | `07b9ef0` 2024-01-24 | Commit message says test code that divided by zero was removed. Last application-code commit. |
| Sonar only | `a12cd73`–`b805d89` 2025-06-20 | Pipeline and scanner properties. No product behaviour. |

## Not found

- A product roadmap, feature toggle list, or README.
- Automated test suite.
- A deploy pipeline.
- A mobile app.
- An Xero integration beyond the status enum.
- Tags or a release note that says 1.0.0.1 or 1.0.5 is the current production build. Those folders exist under `release/` as zip files only.
