Using Github to share openEHR content

Done thank you for reminding me.

2 Likes

Yes locally hosted AD does support full readwrite access but the problem is that afaik, there is no standard approach to searchable metadata akin to Github. The idea was that anyone creating opnehr model content coukd very easily make that repo searchable.

Ive not so far found anything comporable though interestingly the forked norwegian ckm repo does serm have a topic still attached @siljelb . I can’t see any way to add them in Codeberg but perhaps this is work in progress.

It took me a while to find it too:

I will bring in some other Ideas around this. Recently I have explored how to make multi-repo documentation using Antora. It seems promising so far. The idea is to be able to write project specific documentation in each repo and then be able to aggregate and present one web page with all information searchable and readable. For Templates I use the adciidoc output from AD. This is Inspired by the work we did @ian.mcnicoll .

We might be able write some software to automate the docs from openEHR artifacts…

IMHO this will be important to be able to share our modelling projects around the world.

I think @SevKohler also have some ideas on s project index for transparency.

I would love to se some joint efforts on this. First we will, as @siljelb mentions, try out how to share inter-regional projects in Norway.

Can we come back to the original topic?

I’m not wedded to openehr-content . I’d be happy with openehr-knowledge-resources.

The nice thing about Github search (I know!!) is that all that need to happen is for someone to tag the repo with that topic ands it becomes globally searchable, including via the Github API.

That allows folks to easily contribute peer-produced archetypes and templates with minimal overhead, especially if you use a standard repo template like GitHub - freshehrteam/_-freshEHR-project-folder: Standards folder structure for freshEHR projects where the topic label can be preset.

@bna - I’m really interested in this Antora idea. We use that along with our variant of the asciidoc builder to build Implementation guidance for a client. I’m also interested in how we might make use of the FHIR IG build stack.

I’m very open to alternative ideas on how to easily share ā€˜peer’ content but so far I cant see anything that matches the simplicity of using Github topics.

@siulje - it does look as if Codeberg has imported the GH topic but I could not find any way to edit that or add one. Also Codeberg for now does not have an API that would allow search. Looks very interesting however.

Correction - I found how to edit Topic in Codeberg. You have ot have code there first

1 Like

Nice -we can search Codeberg for openehr-knowledge-resources topics

even better if it was api-backed so we could combine with GH search.

ah!!!

2 Likes

Can we agree on

openehr-knowledge-resources

@bna @vanessap @siljelb @Paulmiller @LindaAulin @amanda.herbrand @sebastian.garde

Would it help to have that endorsed by e.g CPB ?

Also do you think we can agree a standard-ish folder structure as per

2 Likes

openehr-knowledge-resources makes sense to me, but I think we should define it. Does this mean archetypes and templates in their original format, or also OPTs, forms, and other downstream artefacts?

I also agree it would be useful to have a common folder structure, but I’d suggest something like this:

Required:

src/ # source artefacts like archetypes, templates, aql files, and source code for logic/scripts/etc
build/ # any downstream artefacts like OPTs, form packages, compiled/interpreted code, etc
doc/ # documentation for the repo

Optional:

test/  # well, tests
data/  # sample data
dep/ # any dependencies
tools/ # any qol tools etc
LICENSES/ # for when a single LICENCE file isn't enough

Ref: GitHub Repository Structure Best Practices | by Soulaiman Ghanem | Code Factory Berlin | Medium

Edit: This is what our current repos look like, but we’re looking at making changes to clean it up like in my suggestion above: openEHR-no/templat-repo: Templat for Ć„ opprette nye repositorier. - Codeberg.org

1 Like

I realise I’m late to this discussion but I just wanted to strongly +1 @Seref’s suggestion here simply because it works for anything that has a URL/URI, not just some content in some code forges.

GitHub tags are ā€˜sort of OK I guess’, and I can see a decent amount of thought has already gone into the plan to use openehr-knowledge-resources. The problem is that (as the Norwegian team have done) if someone uses another code forge site (Bitbucket, Codeberg, GitLab, whatever) then:

  • We are reliant on there being a ā€˜repository tag’ feature in all possible code-forges, and that it is searchable. (I guess this is quite likely to be true for most code forges though)

  • It soon becomes necessary to search all of those forges in order to get a comprehensive list of all resources.

  • If someone, anywhere in the world, on any code forge, decides to inappropriately tag a thing with openehr-knowledge-resourcesthen that repo will inappropriately show up in your search results and there’s nothing you can do about it.

An awesome-openehrrepository has the following advantages:

  • Total simplicity and robustness - it can list any resource anywhere as long as it has a URL/URI, even if not in a code forge (eg it is on a simple web file server), or if the code forge doesn’t have tagging.

  • The list can be curated so we can trust the content of it. Managing it in Git-tracked Markdown and pushing it to a codeforge means we get revision control for free as well, and the full commit history.

  • OK, so I admit the fact it needs to be curated is also a disadvantage since somebody has got to do this, but firstly I don’t see this stuff changing on a very frequent basis, so it’s not a huge task, and secondly Merge Requests/Pull Requests are our friend here, those wishing to include new content can submit a PR and the curator simply accepts if appropriate.

  • It is probably not that hard to parse the URLs out of MD/text if automated/CLI tools are desired, as per @ian.mcnicoll’s gh CLI search. (We are eventually going to need an openEHR Knowledge Artefacts Package Manager of some kind anyway, and at that point we might want to publish more structured metadata about each artefact, but that feels a way off if we don’t yet have a canonical folder structure in widespread use.

There’s nothing stopping us from doing both things - tags and an awesomelist - but I’d reckon the Markdown/plain text awesomelist version would be more likely to remain canonical - as 2025’s frankly bonkers geopolitical daily comic strip shifts the perception of using GitHub and other US-based services.

2 Likes

Yes let’s do both. My main concern is the governance of what is ā€˜awesome’. If it’s really awesome it should probably be in CKM anyways. Other than that it’s super arbitrary. We could make sections in the list off course. And even automated additions based on GitHub/code berg tags, assuming it’s available over api (codeberg doesn’t support this I understood?).

1 Like

It does, Ian posted the link to the API doc:
Forgejo API

2 Likes