...
Programme | |||
---|---|---|---|
Thursday 11 Feb | Who | Actions | |
09:30 - 10:00 | Informal - get set up with Jira, screens, GTM | All | |
10:00 - 10:30 | Tooling Git strategy / workflow Review workflow - BN | All | |
10:30 - 11:00 | Documentation tooling update - show everyone how tooling is working at the moment; solicit suggestions for improvement. MagicDraw?! | Thomas Beale | |
11:00 - 11:30 | Global review
| ||
11:45 - 12:15 | ITS release strategy | All | |
12:15 - 13:15 | LUNCH | ||
13:15 - 14:15 | ITS release strategy - Sebastian Iancu
| Sebastian | |
14:15 - 15:15 | Specifications Releases
| ||
15:15 - 15:30 | C O F F E E | ||
15:30 - 16:30 | Specifications Releases
| ||
16:30 - 17:30 | ADL2 migration strategy | TB | |
17:30 - 18:00 | Cambio - GDL state of the art | Rong | |
20:30 - | Dinner | ||
Friday 12 Feb | |||
09:00 - 10:15 | TDS3 | ||
10:15 - 10:30 | C O F F E E | ||
10:30 - 11:00 | REST APIs | ||
11:30 - 12:00 | AQL - functions - Bjørn Næss | ||
12:00 - 12:30 | Demographics model general model issues - Sebastian Iancu | ||
12:15 - 13:15 | LUNCH | ||
13:15 - 14:30 | release specifics - dates, agree forward plan | ||
14:30 - 15:00 | GDL / ADL rules | ||
15:00 - 15:30 | Next gen ADL tooling ; user experience for e.g. nurses; ADL2 adoption | ||
15:30 - 16:00 | |||
drinks? :) |
Actions
Vagrant
Create list of instructions for vagrant provisioning script for documentation / publishing env. Sebastian to build and test.
MagicDraw
Do a test to see if MD XMI includes all model content including diagrams.
Do a test to transfer full model to another tool.
GDL
ROng - send TB XMI of GDL model.
Publishing / Workflow
Asciidoc or other generic small types - use a 'collector' CR on each release e.g. 'Correct Asciidoc syntax errors' - e.g. SPECPUB JIRA project.
Signficant CR-driven changes:
- agree on private fork + change + pull request + merge
- Changes is done one personal fork
- Pull request is sent to main repository
- Owner of that specification Git repo will do the merge
- Each commit must be assigned with a prefix for the JIRA item (e.g. SPECRM-35)
UML changes - discuss/agree in JIRA, then component owner does or delegates UML changes to one person - avoid competing UML model changes.
Review workflow options - e.g. external reviewers:
- Component owner does
- AsciidoctorFX export to ODT
- generate HTML in the normal Asciidoctor way
- reviewer uses e.g. OpenOffice to markup - comments & changes, then returns to owner who then processes manually.
Git branch philosophy
- option #1 - single master
- option #2 - master = dev branch; create interim branches on demand if need to apply selected later commits at an earlier point.
ITS strategy
Per-component ITS-RM, ITS-AM, etc Git repos with file structures like:
ITS-RM repo:
- tag point: 1.0.2
- CHANGELOG.txt
- xml
- xsd
- CHANGELOG.txt
- tag point: 1.0.3
- CHANGELOG.txt
- xml
- xsd
- 6 files
- xslt
- xsd
- CHANGELOG.txt
- tag point: 1.0.4
- CHANGELOG.txt
- doc
- sdfsdfdf
- xml
- xsd
- 6 files
- schematron
- 2 files
- xslt
- xxx
- examples
- xxxx
- xsd
- json
- xxx
Each repo would use same tags as SPECIFICATION-xx repos, e.g. 'Release-1.0.3'.
To add updates to an earlier release, e.g. fix 1.0.2 XSD bug, or add JSON schema to 1.0.2, then do a branch off the relevant tag point and use tags like 'Release-1.0.3-R2' etc.
Can also add secondary 'bundle-based' tags e.g. '2016.3', '2017.6' etc.
Manually maintained CHANGELOG.txt file in root - enables consumers to easily find out what has changed.
Long term release?
Additionally, a 'whole of system' ITS repo containing e.g. whole of system documentation, packaging scripts etc.
Conformance
Release naming: use e.g. openEHR-2016.3?
Question: how to connect conformance resources/test plans etc to ITS artifacts.
Idea of 'conformance to openEHR-2016.3'...
AQL functions
Generic need for 'functions' in AQL / extension mechanism
Need to show how to define RM-independent functions e.g. math functions,
Then need ability to define RM-specific functions e.g. instruction-aggregate-state() , etc see pres from Bjørn Næss
Functions defined as:
- instruction-aggregate-state(instruction_identifier)
- Returns the aggregated state of the given INSTRUCTION as a String
- current-state(activity_identifier)
- Returns the current state of the given ACTIVITY as a String
Some examples:
SELECT i
FROM INSTRUCTION i
WHERE instruction-aggregate-state(i) = 'ACTIVE'
SELECT ac
FROM INSTRUCTION i CONTAINS ACTIVITY ac
WHERE current-state(ac) = 'ACTIVE'
Latter would be specified .... where?
Implementation guidance for AQL service implementers
also consider 'service view' of functions, i.e. REST access as well as AQL access.