Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docops/capture requirements with traceability/120 #127

Draft
wants to merge 28 commits into
base: deploy
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
6aac704
add content style guide for architecture/
capsulecorplab Sep 4, 2021
91b60ce
add reference for vent splitting joint statement
capsulecorplab Sep 4, 2021
fa47aac
add stakeholder need id. 1
capsulecorplab Sep 4, 2021
94b58e4
add stakeholder need id. 2
capsulecorplab Sep 4, 2021
9719ee9
add stakeholder need id. 3
capsulecorplab Sep 4, 2021
c241d41
add stakeholder need id. 4
capsulecorplab Sep 4, 2021
1a70000
add stakeholder need id. 5
capsulecorplab Sep 4, 2021
0967ed8
add stakeholder need for id. 6
capsulecorplab Sep 4, 2021
9ff2757
add stakeholder need id. 7
capsulecorplab Sep 4, 2021
5196977
add stakeholder need id. 8
capsulecorplab Sep 4, 2021
0b4164a
add stakeholder need id. 9
capsulecorplab Sep 4, 2021
8aab89c
add stakeholder need for id. 10
capsulecorplab Sep 4, 2021
6749722
add m30pm as submodule
capsulecorplab Sep 4, 2021
db36c6b
add liquid template for tetra-requirements.adoc
capsulecorplab Sep 4, 2021
db61728
add liquid template for pdf-theme.yml.liquid
capsulecorplab Sep 4, 2021
8ffeac1
update package.json to reflect Tetra metadata
capsulecorplab Sep 4, 2021
7556cd6
update build to generate tetra-requirements.adoc
capsulecorplab Sep 4, 2021
64b919a
update .gitignore
capsulecorplab Sep 4, 2021
2c9dbbc
remove section for data structures
capsulecorplab Sep 4, 2021
1613e6f
prepend stakeholder needs 1-9 w/ 0
capsulecorplab Sep 4, 2021
2aacf66
add symlink for dist/ directory
capsulecorplab Sep 4, 2021
9eb31b7
update verbiage in stakeholder needs & rqmt's
capsulecorplab Sep 4, 2021
2e5f506
fix doc-name for downloadable pdf
capsulecorplab Sep 4, 2021
b0f97f2
regenerate package-lock.json
capsulecorplab Sep 6, 2021
279cd41
update build.sh to install node modules at root
capsulecorplab Sep 6, 2021
5e22af1
set relative path for tetra-requirements.pdf
capsulecorplab Sep 6, 2021
25cc2d3
add user story for volume adjustment
capsulecorplab Sep 6, 2021
c2c46ac
add boilerplate user story for matching protocols
capsulecorplab Sep 6, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,16 @@ static/
# asciidoctor
.asciidoctor/
*.svg
.DS_Store
.DS_Store

# node modules
node_modules/

# bundler
_build

# build script generated files
dist/

# github action keys
gh-pages*
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,6 @@
[submodule "themes/docsy"]
path = themes/docsy
url = https://github.com/google/docsy
[submodule "m30pm"]
path = m30pm
url = [email protected]:Mach30/m30mlTools.git
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
title: Joint Statement on Multiple Patients Per Ventilator
url: 'https://www.asahq.org/about-asa/newsroom/news-releases/2020/03/joint-statement-on-multiple-patients-per-ventilator'
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
id: 1
name: Volumes fill most compliant lung segment
statement: Volumes would go to the most compliant lung segments
derivedFrom:
- "0-References/1-JointStatementOnMultiplePatientsPerVentilator.yaml"
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
id: 2
name: PEEP would be impossible to manage
statement: Positive end‐expiratory pressure (PEEP), which is of critical importance in these patients, would be impossible to manage.
derivedFrom:
- "0-References/1-JointStatementOnMultiplePatientsPerVentilator.yaml"
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
id: 3
name: Monitoring pulmonary mechanics impossible
statement: Monitoring patients and measuring pulmonary mechanics would be challenging, if not impossible.
derivedFrom:
- "0-References/1-JointStatementOnMultiplePatientsPerVentilator.yaml"
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
id: 4
name: Alarm monitoring infeasible
statement: Alarm monitoring and management would not be feasible.
derivedFrom:
- "0-References/1-JointStatementOnMultiplePatientsPerVentilator.yaml"
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
id: 5
name: Individualized management for clinical improvement
statement: Individualized management for clinical improvement or deterioration would be impossible.
derivedFrom:
- "0-References/1-JointStatementOnMultiplePatientsPerVentilator.yaml"
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
id: 6
name: Stop ventilation in the event of cardiac arrest
statement: In the case of a cardiac arrest, ventilation to all patients would need to be stopped to allow the change to bag ventilation without aerosolizing the virus and exposing healthcare workers.
derivedFrom:
- "0-References/1-JointStatementOnMultiplePatientsPerVentilator.yaml"
5 changes: 5 additions & 0 deletions architecture/1-StakeholderNeeds/07-AddedCircuitVolume.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
id: 7
name: Added circuit volume
statement: The added circuit volume defeats the operational self‐test (the test fails).
derivedFrom:
- "0-References/1-JointStatementOnMultiplePatientsPerVentilator.yaml"
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
id: 8
name: External monitoring required
statement: Additional external monitoring would be required. The ventilator monitors the average pressures and volumes.
derivedFrom:
- "0-References/1-JointStatementOnMultiplePatientsPerVentilator.yaml"
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
id: 9
name: Patients deteriorate and recover at different rates.
statement: Patients deteriorate and recover at different rates, and distribution of gas to each patient would be unequal and unmonitored.
derivedFrom:
- "0-References/1-JointStatementOnMultiplePatientsPerVentilator.yaml"
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
id: 10
name: Greatest risk with sudden deterioration
statement: The greatest risks occur with sudden deterioration of a single patient (e.g., pneumothorax, kinked endotracheal tube), with the balance of ventilation distributed to the other patients.
derivedFrom:
- "0-References/1-JointStatementOnMultiplePatientsPerVentilator.yaml"
10 changes: 10 additions & 0 deletions architecture/2-UserStories/1-VolumeAdjustment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
id: 1
name: Volume Adjustment
actor: Clinician
behavior: individually adjust valves
rationale: control volumetric flowrate per patient
derivedFrom:
- "1-StakeholderNeeds/01-VolumesFillMostCompliantLungSegment.yaml"
- "1-StakeholderNeeds/05-IndividualizedManagementForClinicalImprovement.yaml"
- "1-StakeholderNeeds/09-PatientsDeteriorateAndRecoverAtDifferentRates.yaml"
example: Adjusting flow for each patient, decreasing PIP for the healthier lungs, and increasing PIP for the less healthy patient.
10 changes: 10 additions & 0 deletions architecture/2-UserStories/2-MatchingProtocols.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
id: 2
name: Matching Protocols
actor: Clinician
behavior: {activity-that-manages-matching-protocols}
Copy link
Member Author

Choose a reason for hiding this comment

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

@mmroden what should we put here as far as what the tetra does to maintain matching protocols per patient volume?

Copy link
Collaborator

Choose a reason for hiding this comment

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

Right now, that doing so is part of the testing protocol (ie, that the entire configuration will stay at the PIP/PEEP it's set at when left for several hours).

Copy link
Member Author

Choose a reason for hiding this comment

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

is it possible to encapsulate the testing protocol into a sentence here?

rationale: maintain matching protocols per patient volume
derivedFrom:
- "1-StakeholderNeeds/01-VolumesFillMostCompliantLungSegment.yaml"
- "1-StakeholderNeeds/05-IndividualizedManagementForClinicalImprovement.yaml"
- "1-StakeholderNeeds/09-PatientsDeteriorateAndRecoverAtDifferentRates.yaml"
example: {example-here}
29 changes: 29 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,34 @@
#!/usr/bin/env bash

# Install node_modules, if not already installed
if [ ! -r ./node_modules ]; then
docker run --rm --volume "$PWD:/src" -w "/src" capsulecorplab/asciidoctor-extended:asciidocsy-nodejs 'npm ci'
fi

# Install m30pm node_modules, if not already installed
if [ ! -r ./m30pm/node_modules ]; then
docker run --rm --volume "$PWD:/src" -w "/src" capsulecorplab/asciidoctor-extended:asciidocsy-nodejs 'cd m30pm && npm ci'
fi

# Make dist/ directory, if none exists
if [ ! -r ./dist ]; then
mkdir dist/
fi

# Build the unified model
docker run --rm --volume "$PWD:/src" -w "/src" capsulecorplab/asciidoctor-extended:asciidocsy-nodejs 'node m30pm/buildUnifiedModel.js && cp dist/architecture.yaml dist/architecture.yml'

# generate tetra-requirements.adoc from liquid template
docker run --rm --volume "$PWD:/src" -w "/src" capsulecorplab/asciidoctor-extended:asciidocsy-nodejs 'node m30pm/generateDoc.js --unifiedModel=dist/architecture.yaml --template=templates/tetra-requirements.adoc.liquid --out=dist/tetra-requirements.adoc'

# generate pdf-theme.yml from liquid template
docker run --rm --volume "$PWD:/src" -w "/src" capsulecorplab/asciidoctor-extended:liquidoc 'bundle exec liquidoc -d dist/architecture.yml -t templates/pdf-theme.yml.liquid -o dist/pdf-theme.yml'
#docker run --rm --volume "$PWD:/src" -w "/src" capsulecorplab/asciidoctor-extended:asciidocsy-nodejs 'bundle exec liquidoc -d dist/architecture.yml -t templates/pdf-theme.yml.liquid -o dist/pdf-theme.yml'

# generate tetra-requirements.pdf
docker run --rm --volume $PWD:/src -w "/src" capsulecorplab/asciidoctor-extended:asciidocsy-nodejs 'asciidoctor dist/tetra-requirements.adoc -o dist/tetra-requirements.pdf -r asciidoctor-pdf -r asciidoctor-diagram -b pdf -a pdf-theme=dist/pdf-theme.yml'

# build Hugo site
if [ ! -r ./node_modules ]; then
docker run --rm --volume $PWD:/src -w "/src" capsulecorplab/hugo-asciidoctor-plantuml:0.76.5-alpine 'npm ci'
fi
Expand Down
1 change: 1 addition & 0 deletions content/en/references/dist
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,4 @@ description: >
Identifying stakeholder concerns & deriving top-level requirements.
---

[plantuml, pkg-stakeholder-concerns, svg]
....
include::system-model/requirements/pkg-stakeholder-concerns.puml[]
....

[plantuml, pkg-requirements, svg]
....
include::system-model/requirements/pkg-requirements.puml[]
....
include::dist/tetra-requirements.adoc[]
1 change: 1 addition & 0 deletions m30pm
Submodule m30pm added at 06fc95
Loading