
Another bit of software engineering knowledge from my archive relates to two well-known formal quality methods used in software development. This is from a presentation made at ETH Zurich in 2010.
Continue readingAnother bit of software engineering knowledge from my archive relates to two well-known formal quality methods used in software development. This is from a presentation made at ETH Zurich in 2010.
Continue readingHere’s an infographic (alright, it’s just a diagram) I created over a decade ago, randomly extracted from the archives. I think it’s almost self-explanatory.
Here’s a few more slides using this. I wouldn’t adjust too much today, but note that devops and continuous integration had not assumed the importance they have today.
Continue readingNominalism is a philosophical doctrine usually understood to entail a rejection of universals, in favour of the belief that only the concrete exists. Universals are understood as instantiable entities, i.e. something like types. Another flavour of nominalism involves rejection of abstracta, such as mathematical entities, propositions, fictional entities (including possible worlds). You may read about them in the SEP’s rather dull entry on Nominalism in metaphysics.
Continue readingSometimes a graphic is worth more than words. This is an attempt to capture all the salient features of multi-level modelling, the openEHR way. See the openEHR primer for the story.
Although this is ‘our way’ of doing it, I contend that the general scheme is universally needed – see the bullet list after the cartoons in this older post on openEHR for HL7 FHIR users.
Comments welcome.
How close can we get to making a clinical decision logic language look like the published guidelines which it is used to encode?
Below is an openEHR Decision Logic Module (DLM) example, in the current form of the openEHR Decision Language specification currently under development. Why another language? Well I’ll answer that with: show me a language that does this, and we’ll use it instead (e.g. why not ProForma, Arden, GLIF etc?).
Of course this language doesn’t yet solve all the problems, but we are taking two particular challenges seriously:
As background, our conceptual basics here.
Continue readingWhy don’t we have widespread clinical decision support (CDS), computable guidelines, clinical workflow (plans), and why don’t the pieces we do have talk to the health record? The first time I heard such challenges framed was around 2000, and even at that moment there were experts who had been working on modern versions of the problem for at least a decade, not to mention earlier generations of ‘classical’ AI systems such as MYCIN. So it’s not for lack of time.
After 20 years of staying out of this particular kitchen, I took the plunge in 2015, with a number of projects including Activity-Based Design at Intermountain Healthcare, a major openEHR development project called Task Planning (partly funded by Better.care in central Europe and DIPS in Norway), as well as some minor involvement in recent OMG BPM+ activities. We already had within the openEHR community the Guideline Definition Language (GDL), a fully operational decision support capability originally developed by Rong Chen at Cambio in Sweden (resources site). This provided us with a lot of useful prior experience for building a next generation combined plan/guideline facility.
Here I will talk about what I think has been conceptually missing for so long.
Continue readingI have posted before on the FHIR ‘choice’ construct, particularly here, where I have explained the problems of the choice construct (essentially: it’s an ad hoc constraint construct that subverts the type system, and doesn’t belong in typed formalisms; none use it, except XSD, well known as a poor formalism of little use for modelling). In this post I look into the details of the problem and some possible solutions.
Much of what I report here is connected to discussions I have participated in on the FHIR zulip site, methodology stream.
TL;DR spoiler: the main analysis here.
Continue readingOne of the principal reasons for why I and others are proposing (some) type hierarchy in the FHIR Admin resources is as follows (my earlier post on this). Working Groups (i.e. committees) building Resources are currently in the situation of defining Elements in a Resource, i.e. defining name, type, cardinality etc. The Resources are a typed system. Now, in places where Reference()
is used, typing is being subverted; they are no longer stating a necessary type, they are trying to think of all possible use cases, and stating a corresponding list of types of instances in those use cases.
As described in some detail in this earlier post on the FHIR formalism, a number of FHIR Resources contain ‘choice’ attributes of the form attribute[x]
, such as the one shown above in Observation. These are mapped in the FHIR UML to a ‘Type’ type, as follows.
This is not particularly helpful to developers and does not make for software that can easily treat the value field as a ‘data value’, which is the clear intention. The problem occurs because, even though there is a well defined collection of FHIR data types, there is no parent type for them to use in other contexts. This post provides a proposal for how to fix this.
Continue readingIn this post I revisit the issues with the FHIR Resources described in the earlier post – A FHIR experience: models or just definitions? To summarise:
However, there are changes that can be made that will greatly improve these characteristics, making life much easier for developers and Resource maintainers alike, and extending the life of FHIR. There would be some impact on current profiling efforts, but not a great deal, and certainly worth considering with respect to the long run, which is the next 10+ years of FHIR adoption and implementation around the world.
Some FHIR purists may take exception to the proposal below; I would urge them to consider firstly the value of standard modelling techniques properly applied, and secondly to seriously consider the challenges in maintenance, evolution, implementation and data processing of the next 10 years and just ask the simple question: can we make FHIR significantly better than it is today, reducing costs and improving interoperability for everyone?
What follows is proposed not in the expectation that it will be implemented, but as a basis for thinking about what might be possible at this stage.
(Ed. note: RelatedPerson fixed 12-09-2019 17:40 BST)
Continue reading