Why using expressions in workflow is wrong

(Figure from ModernAnalyst.com)

One of the basic elements of design common to all workflow languages, including YAWL and BPMN, is the inclusion of logical expressions on decision nodes. This seems harmless, and we followed it in openEHR’s Task Planning specifications. However, it is clear that this is a basic error, and that any workflow containing such expressions is unmaintainable and semantically unreliable.

Continue reading
Posted in openehr, standards, workflow | Tagged , , , , , | 3 Comments

A Lingua Franca for e-health takes shape with GraphiteHealth

Colleagues in e-health often say to me: why don’t you make openEHR easier to map to <insert popular interop standard> (used to be HL7v3, then HL7 CDA, now, HL7 FHIR… DSTU2/3/4/5?).

To which I usually reply: if you are implying there is any easy way to connect to today’s favourite message formalism, there’s not, there are only moderately difficult ways – which is why no-one has an automatic converter.

Continue reading
Posted in FHIR, Health Informatics, openehr, standards | Tagged , , , | 4 Comments

The Health IT Platform – a definition

Following on from various posts in the past, including my 2014 post What is an open platform?, I thought it might be time to post a succinct (as possible) definition of the platform idea, for e-health.

As stated in that post, the key thing to understand about a platform is that it represents progress away from being locked-in to a monolith of fixed commitments, toward an open ecosystem. This is true both technologically and economically.

Continue reading
Posted in Health Informatics, standards | Tagged , , | 1 Comment

What is interoperability?

There are some rather obscure definitions of health IT’s favourite term interoperability floating around, for example:

Continue reading
Posted in Computing, Health Informatics, openehr, standards | Tagged | 6 Comments

Directions in clinical guideline programming – CHA2DS2-VASc

CHA2DS2-VASc score calculator, by Gregory Lip MD

The above shows a typical web form calculator for the CHA2DS2-VASc score, used for estimating the risk of stroke in patients with non-rheumatic atrial fibrillation (AF), primarily for the purpose of deciding the use of anti-coagulant therapy [Wikipedia].

How would such a score be programmed?

Continue reading
Posted in Computing, decision support, Health Informatics, openehr, standards | Tagged , , , | 2 Comments

Design-by-Contract (DbC) v Test-Driven Design (TDD)

A software contract in the Eiffel language

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 reading
Posted in Computing | 8 Comments

Software – from Development to Use and Ownership

Here’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 reading
Posted in Computing | Tagged , | Leave a comment

Nominalism versus Ontology

Lafon-Rochet 2005 … does it exist?

Nominalism 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 reading
Posted in Philosophy | Tagged | 3 Comments

Aide Memoire for Computable Domain Models

Sometimes 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.

Posted in Health Informatics, openehr | Tagged , , | Leave a comment

Clinical Decision Logic Fun

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:

  • the problem of ‘subject variables’ (aka ‘curly braces’ or data access problem);
  • getting the cognitive level of the language as close as possible to the cognitive level of the source materials and authors’ thinking.

As background, our conceptual basics here.

Continue reading
Posted in Computing, decision support, Health Informatics, openehr, standards | Tagged , , , | Leave a comment