Skip to content

Commit 5656d9a

Browse files
committed
chore: add mdformat hook and update formatting of Markdown files
1 parent 245349f commit 5656d9a

File tree

15 files changed

+240
-217
lines changed

15 files changed

+240
-217
lines changed

.gitlab/merge_request_templates/Default.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
**By submitting this merge request, I confirm the following:** _please fill any appropriate checkboxes, e.g: [x]_
22

3-
* [ ] The merge request title follows the conventional commits convention
4-
* [ ] I have self-reviewed my changes before requesting a review.
5-
* [ ] I have made only one major change in my proposed changes.
3+
- [ ] The merge request title follows the conventional commits convention
4+
- [ ] I have self-reviewed my changes before requesting a review.
5+
- [ ] I have made only one major change in my proposed changes.
66

77
## Description
88

.pre-commit-config.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,15 @@ repos:
2727
- id: detect-private-key
2828
- id: end-of-file-fixer
2929

30+
- repo: https://github.com/executablebooks/mdformat
31+
rev: 0.7.22
32+
hooks:
33+
- id: mdformat
34+
language: python
35+
additional_dependencies:
36+
- mdformat-mkdocs==4.1.2
37+
- mdformat-footnote==0.1.1
38+
3039
- repo: https://github.com/DavidAnson/markdownlint-cli2
3140
rev: v0.17.2
3241
hooks:

CHANGELOG.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
1313

1414
## [Unreleased]
1515

16-
* Add Code Review Guidelines (!2)
16+
- Add Code Review Guidelines (!2)
1717

1818
## [Initial version]
1919

20-
* Add software versions in use at O-HIG
21-
* Add Software Engineering related documentation (migrated from Google Docs)
22-
* **NEW**: Initial release.
20+
- Add software versions in use at O-HIG
21+
- Add Software Engineering related documentation (migrated from Google Docs)
22+
- **NEW**: Initial release.

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ All documentation is written in Markdown and located in the `docs/` directory.
2323

2424
The documentation is split into several parts:
2525

26-
* `user` contains the user guide
27-
* `development` contains information about contributing to Opal
28-
* `deploy` contains information about how to deploy and run Opal, and how to integrate the Opal services with a hospital
26+
- `user` contains the user guide
27+
- `development` contains information about contributing to Opal
28+
- `deploy` contains information about how to deploy and run Opal, and how to integrate the Opal services with a hospital
2929

3030
### Getting started
3131

@@ -64,7 +64,7 @@ We also enforce [semantic line breaks](https://sembr.org).
6464
This makes it easier to read in source and also easier to review changes to the text.
6565

6666
**Note:** This is an additional rule for `markdownlint`.
67-
Due to a [limitation](https://github.com/DavidAnson/vscode-markdownlint/issues/336) with the vscode extension this rule is currently only enabled in CI.
67+
Due to a [limitation](https://github.com/DavidAnson/vscode-markdownlint/issues/336) with the vscode extension this rule is currently only enabled in CI.
6868

6969
### Adding a new page
7070

docs/changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ SPDX-License-Identifier: MIT
55
-->
66

77
<!-- markdownlint-disable first-line-h1 -->
8+
89
--8<-- "CHANGELOG.md"

docs/deploy/integration.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ In addition, hospitals must provide some endpoints to Opal in order to facilitat
1212
Opal source data APIs are provided by four subcomponents within the application layer.
1313
Those are:
1414

15-
* [Backend](https://gitlab.com/opalmedapps/backend)
16-
* [OpalAdmin](https://gitlab.com/opalmedapps/opalAdmin)
17-
* [Opal-Labs](https://gitlab.com/opalmedapps/opal-labs)
18-
* [ORMS](https://gitlab.com/opalmedapps/ORMS) *If wait room support is enabled at hospital*
15+
- [Backend](https://gitlab.com/opalmedapps/backend)
16+
- [OpalAdmin](https://gitlab.com/opalmedapps/opalAdmin)
17+
- [Opal-Labs](https://gitlab.com/opalmedapps/opal-labs)
18+
- [ORMS](https://gitlab.com/opalmedapps/ORMS) *If wait room support is enabled at hospital*
1919

2020
In order to successfully integrate the Opal solution with a hospital data system, the above mentioned application container images must be deployed to an application server and configured with database access, SSL certificates, and environment configuration.
2121

@@ -95,8 +95,8 @@ Opal-RMS separates private from public APIs and thus any calls to the public API
9595

9696
In general the expectation for all Opal API is that payloads and responses are transmitted in JSON format, with a few exceptions.
9797

98-
* As an experimental feature, the pharmacy data endpoint within the Opal-backend (`/api/patients/${uuid}/pharmacy`) was created with a built-in HL7 parsing class, the accepted data format is `application/hl7v2+er7`.
99-
* In the `Requirements for Hospital Endpoints` section (see below), the sending of patient weight measurement PDFs from the wait room management system is expected to be sent with XML data containing a base64 string encoding of the measurement PDF.
98+
- As an experimental feature, the pharmacy data endpoint within the Opal-backend (`/api/patients/${uuid}/pharmacy`) was created with a built-in HL7 parsing class, the accepted data format is `application/hl7v2+er7`.
99+
- In the `Requirements for Hospital Endpoints` section (see below), the sending of patient weight measurement PDFs from the wait room management system is expected to be sent with XML data containing a base64 string encoding of the measurement PDF.
100100

101101
## OpenAPI Schemas for Opal Source Data
102102

@@ -105,10 +105,10 @@ For the `Opal-Backend`, we use [drf-spectacular](https://pypi.org/project/drf-sp
105105
This swagger page is accessible for authenticated users via `/api/schema/swagger-ui`.
106106
For convenience, all endpoints in all openapi specifications related to integrations have been tagged with the `institution integration` label within the openapi specification.
107107

108-
* Opal-Backend: Swagger rendering at {hostAddress}/api/schema/swagger-ui
109-
* [Opal-Admin: openapi.yml](https://gitlab.com/opalmedapps/opalAdmin/-/blob/develop/php/openapi.yml?ref_type=heads)
110-
* [Opal-Labs: openapi.yml](https://gitlab.com/opalmedapps/opal-labs/-/blob/main/openapi.yml?ref_type=heads)
111-
* [Opal-RMS: openapi.yml](https://gitlab.com/opalmedapps/ORMS/-/blob/dev/php/api/public/v1/openapi.yml?ref_type=heads)
108+
- Opal-Backend: Swagger rendering at {hostAddress}/api/schema/swagger-ui
109+
- [Opal-Admin: openapi.yml](https://gitlab.com/opalmedapps/opalAdmin/-/blob/develop/php/openapi.yml?ref_type=heads)
110+
- [Opal-Labs: openapi.yml](https://gitlab.com/opalmedapps/opal-labs/-/blob/main/openapi.yml?ref_type=heads)
111+
- [Opal-RMS: openapi.yml](https://gitlab.com/opalmedapps/ORMS/-/blob/dev/php/api/public/v1/openapi.yml?ref_type=heads)
112112

113113
## Requirements for Hospital Endpoints
114114

docs/development/architecture/index.md

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@ Opal is a solution aimed at providing patients and their caregivers[^1] access t
1010
Opal provides two main parts to achieve this goal:
1111

1212
1. A patient/caregiver-facing part to give them access to the medical data.
13-
2. A clinical staff facing part to manage the patient data.
13+
1. A clinical staff facing part to manage the patient data.
1414

1515
!!! note
16+
1617
The diagrams presented here are based on the [C4 model](https://c4model.com) for visualizing software architecture.
1718
They are created with [PlantUML](https://plantuml.com) using the [C4 PlantUML Extension](https://github.com/plantuml-stdlib/C4-PlantUML).
1819

@@ -72,8 +73,8 @@ The following is an overview of all the components that are part of the Opal sol
7273

7374
### Opal Integration Engine (OIE)
7475

75-
* [Project Page](https://gitlab.com/opalmedapps/opal-integration-engine)
76-
* [Mirth Connect](https://www.nextgen.com/solutions/interoperability/mirth-integration-engine)
76+
- [Project Page](https://gitlab.com/opalmedapps/opal-integration-engine)
77+
- [Mirth Connect](https://www.nextgen.com/solutions/interoperability/mirth-integration-engine)
7778

7879
The OIE is responsible for interfacing with the hospital's interface.
7980
It receives unsolicited HL7 messages from hospital source systems.
@@ -91,7 +92,7 @@ For the latter case, the OIE provides a set of API endpoints for our components
9192

9293
### OpalAdmin
9394

94-
* [Project Page](https://gitlab.com/opalmedapps/OpalAdmin)
95+
- [Project Page](https://gitlab.com/opalmedapps/OpalAdmin)
9596

9697
OpalAdmin provides the admin interface for clinicians and staff.
9798
The web application is used to manage patients, hospital maps, questionnaires etc.
@@ -104,24 +105,24 @@ These scripts manage new data that was added, and determine whether caregivers n
104105

105106
### Listener
106107

107-
* [Project Page](https://gitlab.com/opalmedapps/opal-listener)
108-
* [Published Documentation](https://opalmedapps.gitlab.io/opal-listener)
108+
- [Project Page](https://gitlab.com/opalmedapps/opal-listener)
109+
- [Published Documentation](https://opalmedapps.gitlab.io/opal-listener)
109110

110111
The listener is the component that interacts with Firebase in order to handle requests coming from the user applications.
111112
The requests it handles are those intended for the hospital the Opal PIE is operating in.
112113
See the [section on communication below](#communication-between-user-applications-and-the-opal-pie) for more information.
113114

114115
The listener contains legacy app and registration functionality as well as new functionality for forwarding API requests to the backend:
115116

116-
* The legacy part handles request types and directly executes queries on the databases.
117-
* The new functionality receives API requests (basically, HTTP requests as JSON) and forwards them to the backend API.
118-
It acts as a kind of proxy/middleware and makes actual HTTP requests.
119-
The HTTP response is returned.
117+
- The legacy part handles request types and directly executes queries on the databases.
118+
- The new functionality receives API requests (basically, HTTP requests as JSON) and forwards them to the backend API.
119+
It acts as a kind of proxy/middleware and makes actual HTTP requests.
120+
The HTTP response is returned.
120121

121122
### Backend
122123

123-
* [Project Page](https://gitlab.com/opalmedapps/backend)
124-
* [Published Documentation](https://opalmedapps.gitlab.io/backend)
124+
- [Project Page](https://gitlab.com/opalmedapps/backend)
125+
- [Published Documentation](https://opalmedapps.gitlab.io/backend)
125126

126127
The backend (aka. _New OpalAdmin_) is the new backend that replaces the [legacy OpalAdmin](#opaladmin).
127128
It provides APIs for the user applications and other systems, such as the OIE.
@@ -131,7 +132,7 @@ Over time, other existing functionality will be migrated to this component (see
131132

132133
### Opal Labs
133134

134-
* [Project Page](https://gitlab.com/opalmedapps/opal-labs)
135+
- [Project Page](https://gitlab.com/opalmedapps/opal-labs)
135136

136137
_Opal Labs_ is an additional component which takes care of processing new lab results for patients.
137138
It exposes an API endpoint for use by the OIE to handle new lab results.
@@ -147,8 +148,8 @@ It also makes an API call to _OpalAdmin_ to request sending a push notification
147148

148149
### User Registration
149150

150-
* [Project Page](https://gitlab.com/opalmedapps/registration-web-page)
151-
* [Production Registration](https://registration.opalmedapps.ca)
151+
- [Project Page](https://gitlab.com/opalmedapps/registration-web-page)
152+
- [Production Registration](https://registration.opalmedapps.ca)
152153

153154
The registration websites provides a user (caregiver) the ability to create their Opal account.
154155
In order to use the registration website, a caregiver has to request access to a patient's data at the hospital.
@@ -157,7 +158,7 @@ Using the registration code and the patient's identification number (RAMQ or MRN
157158

158159
### Web and Mobile App
159160

160-
* [Project Page](https://gitlab.com/opalmedapps/qplus)
161+
- [Project Page](https://gitlab.com/opalmedapps/qplus)
161162

162163
The web and mobile app provide caregivers the ability to access patient data for the patients under their care.
163164
The mobile app is the same as the web app.
@@ -168,7 +169,7 @@ The mobile app supports additional features native to mobile devices, such as lo
168169

169170
#### Database Migrations and Initial Data
170171

171-
* [Project Page](https://gitlab.com/opalmedapps/db-docker/)
172+
- [Project Page](https://gitlab.com/opalmedapps/db-docker/)
172173

173174
Historically, the legacy components of Opal did not maintain migrations of the database schema.
174175
Migrations and initial data (to set up Opal at a new hospital) is maintained in this separate component.
@@ -182,7 +183,7 @@ It is only necessary to run this during setup and upgrade.
182183

183184
#### Redis
184185

185-
* [Project Page](https://redis.io/)
186+
- [Project Page](https://redis.io/)
186187

187188
Redis is used by _Opal Labs_ to cache patients being processed to avoid sending caregivers multiple push notification times when batch processing.
188189

@@ -193,8 +194,8 @@ Firebase is used to support passing data from within the hospital firewall to th
193194

194195
Opal makes use of two Firebase services:
195196

196-
* [_Authentication_](https://firebase.google.com/docs/auth) is used for user accounts (via email and password).
197-
* [_Realtime Database_](https://firebase.google.com/docs/database) is used to pass requests and responses between user applications and the Opal PIE.
197+
- [_Authentication_](https://firebase.google.com/docs/auth) is used for user accounts (via email and password).
198+
- [_Realtime Database_](https://firebase.google.com/docs/database) is used to pass requests and responses between user applications and the Opal PIE.
198199

199200
A Firebase user account is created when a user completes the user registration for the first time.
200201
The Firebase Realtime Database acts as a kind of queue for sending requests and receiving responses.
@@ -213,10 +214,6 @@ TBC
213214

214215
https://gitlab.com/opalmedapps/qplus
215216

216-
[^1]:
217-
We consider a caregiver to also include the patient.
218-
In that case they are caring for themself.
219-
220217
### Appointment Checkin Processes
221218

222219
A core functionality within the Opal ecosystem is the ability for a patient (or a caregiver of a patient) to checkin to an appointment at the hospital.
@@ -248,13 +245,16 @@ However, ORMs also provides several additional methods of checking in to an appo
248245

249246
These are:
250247

251-
* Kiosk Checkins - where a patient can scan their hospital card at an ORMs kiosk in the hospital to checkin to all appointments for the day, before proceeding to the waiting room
252-
* Virtual Waiting Room (VWR) Checkins - where a patient can request to be checked into all appointments for that day at a reception desk, and a clinical staff member uses the ORMs VWR to perform the checkin on the patient's behald
253-
* SMS Checkins - where a patient can respond to an automated SMS received to their mobile device with the phrase 'Check In' in order to be checked in for all appointments for the day
248+
- Kiosk Checkins - where a patient can scan their hospital card at an ORMs kiosk in the hospital to checkin to all appointments for the day, before proceeding to the waiting room
249+
- Virtual Waiting Room (VWR) Checkins - where a patient can request to be checked into all appointments for that day at a reception desk, and a clinical staff member uses the ORMs VWR to perform the checkin on the patient's behald
250+
- SMS Checkins - where a patient can respond to an automated SMS received to their mobile device with the phrase 'Check In' in order to be checked in for all appointments for the day
254251

255252
From the perspective of the Opal ecosystem, all three of these checkin methods are identical in that they result in the same API call(s) from ORMs to Opal, although from a patient perspective they are different.
256253

257254
The following sequence diagram details the series of API calls that are made immediately after a patient attempts a checkin from a wait room Kiosk, from their phone SMS, or via a clinical staff member interacting with the ORMs virtual waiting room.
258255

259256
```plantuml source="docs/development/architecture/diagrams/checkins/orms_checkins.puml"
260257
```
258+
259+
[^1]: We consider a caregiver to also include the patient.
260+
In that case they are caring for themself.

0 commit comments

Comments
 (0)