iHRIS and DHIS2 support for Terminolgy Services

Hi all,
We are working on a couple of projects to get FHIR support for terminologies added to iHRIS and DHIS2. We have pulled together some draft specifications for how this might look in DHIS2 here:
https://docs.google.com/document/d/1nN1WcrvpoMrnNchrynbvgexIdoC-5xgGDtF14wdO4Zo/edit#
For iHRIS, we would want to be able to support things like the following workflow:
https://wiki.ohie.org/display/documents/Provide+Aggregate+Health+Worker+Information+Statistics

The main concept we are pursuing is to have iHRIS and DHIS2 (as well as other systems) serve as authorities/sources directories of local code systems which may be mapped against other systems. The mapping would be accomplished in a Terminology Service.

For DHIS2 the types of code systems we are looking at are the data elements, indicators, facility types, etc. For iHRIS we would have things health worker cadres, facility types, etc.

I would appreciate any feedback.

Cheers,

-carl

hi Carl

certainly read-only is the place to start. Another easy place to start might be to sync the exposed code system and resources onto one of my servers, and see it running full terminology services on the resources

Grahame

···

On Sat, Oct 29, 2016 at 7:34 AM, Carl Leitner litlfred@gmail.com wrote:

Hi all,
We are working on a couple of projects to get FHIR support for terminologies added to iHRIS and DHIS2. We have pulled together some draft specifications for how this might look in DHIS2 here:
https://docs.google.com/document/d/1nN1WcrvpoMrnNchrynbvgexIdoC-5xgGDtF14wdO4Zo/edit#
For iHRIS, we would want to be able to support things like the following workflow:
https://wiki.ohie.org/display/documents/Provide+Aggregate+Health+Worker+Information+Statistics

The main concept we are pursuing is to have iHRIS and DHIS2 (as well as other systems) serve as authorities/sources directories of local code systems which may be mapped against other systems. The mapping would be accomplished in a Terminology Service.

For DHIS2 the types of code systems we are looking at are the data elements, indicators, facility types, etc. For iHRIS we would have things health worker cadres, facility types, etc.

I would appreciate any feedback.

Cheers,

-carl

You received this message because you are subscribed to the Google Groups “Terminology Services” group.

To unsubscribe from this group and stop receiving emails from it, send an email to terminology-services+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.


http://www.healthintersections.com.au / grahame@healthintersections.com.au / +61 411 867 065

Hi Grahame,
Thanks for this.

What do you think is the best way to structure a generic “sync” service that is a pull against a source server/directory w/ a timestamp. I was thinking of using the “history” transaction at either the resource type level or the whole system level. I suppose that we could also use the search transaction if we only need the current state.

It looks like your reference server supports some terminology service functionality (value set management). Does it also provide UIs for code system and concept map management?

Cheers,

-carl

···

On Friday, October 28, 2016 at 5:04:50 PM UTC-4, grahame wrote:

hi Carl

certainly read-only is the place to start. Another easy place to start might be to sync the exposed code system and resources onto one of my servers, and see it running full terminology services on the resources

Grahame

On Sat, Oct 29, 2016 at 7:34 AM, Carl Leitner litl...@gmail.com wrote:

Hi all,
We are working on a couple of projects to get FHIR support for terminologies added to iHRIS and DHIS2. We have pulled together some draft specifications for how this might look in DHIS2 here:
https://docs.google.com/document/d/1nN1WcrvpoMrnNchrynbvgexIdoC-5xgGDtF14wdO4Zo/edit#
For iHRIS, we would want to be able to support things like the following workflow:
https://wiki.ohie.org/display/documents/Provide+Aggregate+Health+Worker+Information+Statistics

The main concept we are pursuing is to have iHRIS and DHIS2 (as well as other systems) serve as authorities/sources directories of local code systems which may be mapped against other systems. The mapping would be accomplished in a Terminology Service.

For DHIS2 the types of code systems we are looking at are the data elements, indicators, facility types, etc. For iHRIS we would have things health worker cadres, facility types, etc.

I would appreciate any feedback.

Cheers,

-carl

You received this message because you are subscribed to the Google Groups “Terminology Services” group.

To unsubscribe from this group and stop receiving emails from it, send an email to terminology-services+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

http://www.healthintersections.com.au / gra…@healthintersections.com.au / +61 411 867 065

Carl,

We’d also be happy
to participate in discussions and provide guidance on how the TS can be used to author then publish the mappings as a FHIR resource. We have a couple servers we might be able
to make available for your proof-of-concept work.

Off the top of my head, creating CodeSystem (and ValueSet) versions might be the easiest way to handle synchronization queries, but I’d like to understand the
use-cases better before making any real recommendations.

Jack

On Behalf Of Carl Leitner

···

Hi Grahame,

Thanks for this.

What do you think is the best way to structure a generic “sync” service that is a pull against a source server/directory w/ a timestamp. I was thinking of using the “history” transaction at either the resource type level or the whole
system level. I suppose that we could also use the search transaction if we only need the current state.

It looks like your reference server supports some terminology service functionality (value set management). Does it also provide UIs for code system and concept map management?

Cheers,

-carl

On Friday, October 28, 2016 at 5:04:50 PM UTC-4, grahame wrote:

hi Carl

certainly read-only is the place to start. Another easy place to start might be to sync the exposed code system and resources onto one of my servers, and see it running full terminology services on the resources

Grahame

On Sat, Oct 29, 2016 at 7:34 AM, Carl Leitner litl...@gmail.com wrote:

Hi all,

We are working on a couple of projects to get FHIR support for terminologies added to iHRIS and DHIS2. We have pulled together some draft specifications for how this might look in DHIS2 here:

https://docs.google.com/document/d/1nN1WcrvpoMrnNchrynbvgexIdoC-5xgGDtF14wdO4Zo/edit#

For iHRIS, we would want to be able to support things like the following workflow:
https://wiki.ohie.org/display/documents/Provide+Aggregate+Health+Worker+Information+Statistics

The main concept we are pursuing is to have iHRIS and DHIS2 (as well as other systems) serve as authorities/sources directories of local code systems which may be mapped against other systems. The mapping would be accomplished in a Terminology
Service.

For DHIS2 the types of code systems we are looking at are the data elements, indicators, facility types, etc. For iHRIS we would have things health worker cadres, facility types, etc.

I would appreciate any feedback.

Cheers,

-carl

You received this message because you are subscribed to the Google Groups “Terminology Services” group.

To unsubscribe from this group and stop receiving emails from it, send an email to
terminology-services+unsubscribe@googlegroups.com.

For more options, visit
https://groups.google.com/d/optout
.


http://www.healthintersections.com.au /
gra…@healthintersections.com.au / +61 411 867 065


You received this message because you are subscribed to the Google Groups “Terminology Services” group.
To unsubscribe from this group and stop receiving emails from it, send an email to
terminology-services+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Hey Jack,
Three use cases are outlined in the google doc link below <https://docs.google.com/document/d/1nN1WcrvpoMrnNchrynbvgexIdoC-5xgGDtF14wdO4Zo/edit#>, though admittedly some of the information is a bit sparse.

Thanks for the offer of the use your TS. A couple of quick questions:
Is it STU3? We will need STU3 b/c of the code systems.
I assume that the create/update transactions are supported. Are the history transactions already supported?
We are quickly moving beyond proof of concept to needing to deploy. Do you have an estimate on the timelines for releasing the FHIR support in ApelonDTS <http://apelon-dts.sourceforge.net/>, or has it already be done?

Cheers,
-carl

···

On Nov 1, 2016, at 10:58 AM, Jack Bowie <jbowie@apelon.com> wrote:

Carl,

We’d also be happy to participate in discussions and provide guidance on how the TS can be used to author then publish the mappings as a FHIR resource. We have a couple servers we might be able to make available for your proof-of-concept work.

Off the top of my head, creating CodeSystem (and ValueSet) versions might be the easiest way to handle synchronization queries, but I’d like to understand the use-cases better before making any real recommendations.

Jack

From: terminology-services@googlegroups.com <mailto:terminology-services@googlegroups.com> [mailto:terminology-services@googlegroups.com] On Behalf Of Carl Leitner
Sent: Tuesday, November 01, 2016 10:40 AM
To: Terminology Services
Cc: lduncan@intrahealth.org <mailto:lduncan@intrahealth.org>; gbisama@intrahealth.org <mailto:gbisama@intrahealth.org>; nmijumbi@intrahealth.org <mailto:nmijumbi@intrahealth.org>; ashaban@intrahealth.org <mailto:ashaban@intrahealth.org>; bobjolliffe@gmail.com <mailto:bobjolliffe@gmail.com>; wmo7@cdc.gov <mailto:wmo7@cdc.gov>
Subject: Re: iHRIS and DHIS2 support for Terminolgy Services

Hi Grahame,
Thanks for this.

What do you think is the best way to structure a generic "sync" service that is a pull against a source server/directory w/ a timestamp. I was thinking of using the "history" transaction at either the resource type level or the whole system level. I suppose that we could also use the search transaction if we only need the current state.

It looks like your reference server supports some terminology service functionality (value set management). Does it also provide UIs for code system and concept map management?

Cheers,
-carl

On Friday, October 28, 2016 at 5:04:50 PM UTC-4, grahame wrote:
hi Carl

certainly read-only is the place to start. Another easy place to start might be to sync the exposed code system and resources onto one of my servers, and see it running full terminology services on the resources

Grahame

On Sat, Oct 29, 2016 at 7:34 AM, Carl Leitner <litl...@ <>gmail.com <http://gmail.com/>> wrote:
Hi all,
We are working on a couple of projects to get FHIR support for terminologies added to iHRIS and DHIS2. We have pulled together some draft specifications for how this might look in DHIS2 here:
  https://docs.google.com/document/d/1nN1WcrvpoMrnNchrynbvgexIdoC-5xgGDtF14wdO4Zo/edit# <https://docs.google.com/document/d/1nN1WcrvpoMrnNchrynbvgexIdoC-5xgGDtF14wdO4Zo/edit>
For iHRIS, we would want to be able to support things like the following workflow:
  https://wiki.ohie.org/display/documents/Provide+Aggregate+Health+Worker+Information+Statistics

The main concept we are pursuing is to have iHRIS and DHIS2 (as well as other systems) serve as authorities/sources directories of local code systems which may be mapped against other systems. The mapping would be accomplished in a Terminology Service.

For DHIS2 the types of code systems we are looking at are the data elements, indicators, facility types, etc. For iHRIS we would have things health worker cadres, facility types, etc.

I would appreciate any feedback.

Cheers,
-carl
--
You received this message because you are subscribed to the Google Groups "Terminology Services" group.
To unsubscribe from this group and stop receiving emails from it, send an email to <>terminology-services+unsubscribe@googlegroups.com <mailto:terminology-services+unsubscribe@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.

--
-----
http://www.healthintersections.com.au/> / gra...@ <>healthintersections.com.au <http://healthintersections.com.au/> / +61 411 867 065
--
You received this message because you are subscribed to the Google Groups "Terminology Services" group.
To unsubscribe from this group and stop receiving emails from it, send an email to terminology-services+unsubscribe@googlegroups.com <mailto:terminology-services+unsubscribe@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Terminology Services" group.
To unsubscribe from this group and stop receiving emails from it, send an email to terminology-services+unsubscribe@googlegroups.com <mailto:terminology-services+unsubscribe@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.

Hi Carl

I can’t answer for Apelon, but I’ll answer the other stuff:

···
  • I assume that the create/update transactions are supported. Are the history transactions already supported?

my server does support history. and history is intended to support pub/sub or synchronization. Note, though, that the Australian national terminology service uses Atom because it’s also able to distribute other kinds of terminology resources. (they could have used FHIR binary for that, but chose not to)

What do you think is the best way to structure a generic “sync” service that is a pull against a source server/directory w/ a timestamp. I was thinking of using the “history” transaction at either the resource type level or the whole system level. I suppose that we could also use the search transaction if we only need the current state.

the problem with search is that it isn’t robust about removing things - you never get notified about things that fall out of the search. So definitely history.

It looks like your reference server supports some terminology service functionality (value set management). Does it also provide UIs for code system and concept map management?

no. we’re intending to write a generic electron client that does those things - in fact, CSIRO already have a concept map manager ready to contribute , but it hasn’t happened yet.

Grahame

Hi

Placing myself at some risk of appearing ignorant can i ask some very general questions about terminology, ontology and FHIR?

Mostly when we see terminologies they appear as lists of one sort or another. Sometimes they can have some sort of hierarchical structure but still inherently list like.

Sometimes (often) ontology requirements demand more graph structure than simple lists. They need to express more complex relationships which will may well include reference to lists. I am thinking here of ontology service like (for a dated example, ISO Topic Maps or W3C RDF).

So my first question is to ask whether I am right in interpreting the scope of terminology service in this way. ie. as a sort of controlled vocabulary repository. Or does it or can it drift into more general ontology service?

My motivation for asking relates to the ADX use case in Carl’s document. There is a figure there called “Get Structural Metadata”. Structural metadata is a term I crib from ISO SDMX because I think it captures the notion of structural ontology quite well. But let me get even more concrete.

An ADX dataset is typically a routinely reported public health report (eg. Monthly malaria case report). It consists largely of reported dataelements (How many confirmed malaria cases? How many suspected malaria cases? How many tests performed? etc). Some of these dataelements might be further disaggregated (commonly by age and or gender but also others). So the structural metadata for an ADX dataset will contain references to various coded vocabularies but is itself a more complex ontological beast. It must refer to a list of dataelements but also indicate how each of these dataelements should be disaggregated.

So my next question is what might be a recommended FHIR way to represent such a resource? Whether or not we consider it as part of terminology service. (In fact one can view it as a hierarchical codelist though perhaps with additional attributes eg. the periodicity of the report being monthly, weekly, quarterly etc)

Sorry for basic questions. I only took a close look at Carl’s work on DHIS2 terminology recently and am hovering over inclusion into new revision of ADX profile. I am fairly confident we will be able to use FHIR (even if just for the controlled vocabularies) but I wonder about the best way of dealing with the graph that binds them together into an ontological whole.

Best regards

Bob

···

On 1 November 2016 at 19:33, Grahame Grieve grahame@healthintersections.com.au wrote:

Hi Carl

I can’t answer for Apelon, but I’ll answer the other stuff:

  • I assume that the create/update transactions are supported. Are the history transactions already supported?

my server does support history. and history is intended to support pub/sub or synchronization. Note, though, that the Australian national terminology service uses Atom because it’s also able to distribute other kinds of terminology resources. (they could have used FHIR binary for that, but chose not to)

What do you think is the best way to structure a generic “sync” service that is a pull against a source server/directory w/ a timestamp. I was thinking of using the “history” transaction at either the resource type level or the whole system level. I suppose that we could also use the search transaction if we only need the current state.

the problem with search is that it isn’t robust about removing things - you never get notified about things that fall out of the search. So definitely history.

It looks like your reference server supports some terminology service functionality (value set management). Does it also provide UIs for code system and concept map management?

no. we’re intending to write a generic electron client that does those things - in fact, CSIRO already have a concept map manager ready to contribute , but it hasn’t happened yet.

Grahame

hi Bob

From a FHIR perspective, CodeSystems define concepts that have 3 things:

  • codes that represent them to computers

  • designations that represent them to humans (one of which is the default for general use)

  • properties that define extra things about the concept

The last moves us away from simple lists towards complex multi-dimensional structures. And ‘terminologies’ can be used this way for … well, medications is the primary reason. See RxNorm, AMT, DM+D, SNAPP… there are many around the world. And also, there are code systems that use a similar approach for defining data elements - LOINC is pretty much at that point.

From our point of view in FHIR, this starts to look like elegant forms of Origami - trying to fold complex structures into generic reference models of [concept+code+designations+properties] delivered by terminology service. Rather than doing that, we define specific resources that capture the complexities of these things directly. Specifically, we have Medication and DataElement for these purposes (and a few others on the design table for next round). I recommend that you look at those 2 resources. Note that we assert (loosely, for now) a relationship between those resources and terminologies. e.g. a repository of Medication resources also implicitly defines a vocabulary summary of the medications, that you can subset etc. There’s things about that relationship that aren’t nailed down and operationalised yet - that’s where the terminology focus will be for the next version of FHIR

Grahame

···

On Thu, Nov 3, 2016 at 10:48 AM, Bob Jolliffe bobjolliffe@gmail.com wrote:

Hi

Placing myself at some risk of appearing ignorant can i ask some very general questions about terminology, ontology and FHIR?

Mostly when we see terminologies they appear as lists of one sort or another. Sometimes they can have some sort of hierarchical structure but still inherently list like.

Sometimes (often) ontology requirements demand more graph structure than simple lists. They need to express more complex relationships which will may well include reference to lists. I am thinking here of ontology service like (for a dated example, ISO Topic Maps or W3C RDF).

So my first question is to ask whether I am right in interpreting the scope of terminology service in this way. ie. as a sort of controlled vocabulary repository. Or does it or can it drift into more general ontology service?

My motivation for asking relates to the ADX use case in Carl’s document. There is a figure there called “Get Structural Metadata”. Structural metadata is a term I crib from ISO SDMX because I think it captures the notion of structural ontology quite well. But let me get even more concrete.

An ADX dataset is typically a routinely reported public health report (eg. Monthly malaria case report). It consists largely of reported dataelements (How many confirmed malaria cases? How many suspected malaria cases? How many tests performed? etc). Some of these dataelements might be further disaggregated (commonly by age and or gender but also others). So the structural metadata for an ADX dataset will contain references to various coded vocabularies but is itself a more complex ontological beast. It must refer to a list of dataelements but also indicate how each of these dataelements should be disaggregated.

So my next question is what might be a recommended FHIR way to represent such a resource? Whether or not we consider it as part of terminology service. (In fact one can view it as a hierarchical codelist though perhaps with additional attributes eg. the periodicity of the report being monthly, weekly, quarterly etc)

Sorry for basic questions. I only took a close look at Carl’s work on DHIS2 terminology recently and am hovering over inclusion into new revision of ADX profile. I am fairly confident we will be able to use FHIR (even if just for the controlled vocabularies) but I wonder about the best way of dealing with the graph that binds them together into an ontological whole.

Best regards

Bob

On 1 November 2016 at 19:33, Grahame Grieve grahame@healthintersections.com.au wrote:

Hi Carl

I can’t answer for Apelon, but I’ll answer the other stuff:

  • I assume that the create/update transactions are supported. Are the history transactions already supported?

my server does support history. and history is intended to support pub/sub or synchronization. Note, though, that the Australian national terminology service uses Atom because it’s also able to distribute other kinds of terminology resources. (they could have used FHIR binary for that, but chose not to)

What do you think is the best way to structure a generic “sync” service that is a pull against a source server/directory w/ a timestamp. I was thinking of using the “history” transaction at either the resource type level or the whole system level. I suppose that we could also use the search transaction if we only need the current state.

the problem with search is that it isn’t robust about removing things - you never get notified about things that fall out of the search. So definitely history.

It looks like your reference server supports some terminology service functionality (value set management). Does it also provide UIs for code system and concept map management?

no. we’re intending to write a generic electron client that does those things - in fact, CSIRO already have a concept map manager ready to contribute , but it hasn’t happened yet.

Grahame


http://www.healthintersections.com.au / grahame@healthintersections.com.au / +61 411 867 065

Hi Bob,

There are also ways that you can express relationships between code systems.

One place to start is looking at a Concept Map:
https://www.hl7.org/fhir/conceptmap.html

which lets you define relationships between one or more code systems (via Value Sets). They types of relationships defined are here:

https://www.hl7.org/fhir/valueset-concept-map-equivalence.html

There is another type of relationship that can be defined in the code system itself in which concepts can have children associated to them:

http://build.fhir.org/codesystem-definitions.html#CodeSystem.concept.concept (the last thing on the page)

which can have an "is-a” “contains” or “categorizes” relationship

I suppose that this gives us two ways to express hierarchy. One through the child concepts, and one (possibly) through the “narrower” equivalence in a concept map.

For the ADX stuff specifically, I was thinking you would want your indicators to be a code system and use the one or more properties to associate them to one or more sets of disaggregators.

Cheers,

-carl

···

On Thu, Nov 3, 2016 at 10:48 AM, Bob Jolliffe bobjolliffe@gmail.com wrote:

Hi

Placing myself at some risk of appearing ignorant can i ask some very general questions about terminology, ontology and FHIR?

Mostly when we see terminologies they appear as lists of one sort or another. Sometimes they can have some sort of hierarchical structure but still inherently list like.

Sometimes (often) ontology requirements demand more graph structure than simple lists. They need to express more complex relationships which will may well include reference to lists. I am thinking here of ontology service like (for a dated example, ISO Topic Maps or W3C RDF).

So my first question is to ask whether I am right in interpreting the scope of terminology service in this way. ie. as a sort of controlled vocabulary repository. Or does it or can it drift into more general ontology service?

My motivation for asking relates to the ADX use case in Carl’s document. There is a figure there called “Get Structural Metadata”. Structural metadata is a term I crib from ISO SDMX because I think it captures the notion of structural ontology quite well. But let me get even more concrete.

An ADX dataset is typically a routinely reported public health report (eg. Monthly malaria case report). It consists largely of reported dataelements (How many confirmed malaria cases? How many suspected malaria cases? How many tests performed? etc). Some of these dataelements might be further disaggregated (commonly by age and or gender but also others). So the structural metadata for an ADX dataset will contain references to various coded vocabularies but is itself a more complex ontological beast. It must refer to a list of dataelements but also indicate how each of these dataelements should be disaggregated.

So my next question is what might be a recommended FHIR way to represent such a resource? Whether or not we consider it as part of terminology service. (In fact one can view it as a hierarchical codelist though perhaps with additional attributes eg. the periodicity of the report being monthly, weekly, quarterly etc)

Sorry for basic questions. I only took a close look at Carl’s work on DHIS2 terminology recently and am hovering over inclusion into new revision of ADX profile. I am fairly confident we will be able to use FHIR (even if just for the controlled vocabularies) but I wonder about the best way of dealing with the graph that binds them together into an ontological whole.

Best regards

Bob

On 1 November 2016 at 19:33, Grahame Grieve grahame@healthintersections.com.au wrote:

Hi Carl

I can’t answer for Apelon, but I’ll answer the other stuff:

  • I assume that the create/update transactions are supported. Are the history transactions already supported?

my server does support history. and history is intended to support pub/sub or synchronization. Note, though, that the Australian national terminology service uses Atom because it’s also able to distribute other kinds of terminology resources. (they could have used FHIR binary for that, but chose not to)

What do you think is the best way to structure a generic “sync” service that is a pull against a source server/directory w/ a timestamp. I was thinking of using the “history” transaction at either the resource type level or the whole system level. I suppose that we could also use the search transaction if we only need the current state.

the problem with search is that it isn’t robust about removing things - you never get notified about things that fall out of the search. So definitely history.

It looks like your reference server supports some terminology service functionality (value set management). Does it also provide UIs for code system and concept map management?

no. we’re intending to write a generic electron client that does those things - in fact, CSIRO already have a concept map manager ready to contribute , but it hasn’t happened yet.

Grahame


http://www.healthintersections.com.au / grahame@healthintersections.com.au / +61 411 867 065

Hi all. Trying to catch up with a lot of questions. We’re in the final stages of a fairly major release of DTS and things are a little crazy :wink:

At its most basic, a Terminology Service is a repository of terminology artifacts (or assets). A FHIR Terminology Service implements the interfaces defined in
the FHIR specification, but many terminology services implementations also provide additional modeling and governance capabilities.

Regarding DTS, I believe we currently support all of the FHIR resources and interfaces described in your use-cases: Code Systems, Value Sets and Concept Maps.
In addition, DTS provides a comprehensive GUI, the DTS Editor, for modeling code systems (terminologies), value sets (subsets) and maps. Modeling capabilities extend to Description Logic (ontology) modeling similar to that supported by SNOMED CT, if you would
want to go in that direction. The associated data model supports all of the terminologies Grahame listed; a number of these are actually developed using DTS. As long as certain conventions are followed, all these artifacts can be exchanged using FHIR interfaces.
We have demonstrated this interoperability at the recent FHIR Connectathons.

Regarding Code System representation, hierarchy should always be represented using the natural broader/narrower distinctions of the terminology. (Partology can
also be used if appropriate and used consistently.) During modeling, the hierarchy can be expressed explicitly, or inferred when some automated classification process like DL is used.

Concept Map relationships, on the other hand, are generally interpreted as xross-codesystem/valueset correspondences: what is the best correspondence of local
diagnosis code ABC to a code in ICD-10?

Properties can, of course, also be used for correspondences. The decision of which to use is often stylistic, but can involve issues of governance: if the USA
wants a map between International SCT and ICD-10 (neither of which it “controls”), then defining a separate resource, a Concept Map, probably makes more sense from a management and distribution view point.

Hope this helps,

Jack

···

From: terminology-services@googlegroups.com [mailto:terminology-services@googlegroups.com]
On Behalf Of Carl Leitner
Sent: Thursday, November 03, 2016 8:00 AM
To: terminology-services@googlegroups.com
Cc: Bob Jolliffe; Luke Duncan; gbisama@intrahealth.org; nmijumbi@intrahealth.org; ashaban@intrahealth.org; wmo7@cdc.gov; Carol Macumber; John Gresh
Subject: Re: iHRIS and DHIS2 support for Terminolgy Services

Hi Bob,

There are also ways that you can express relationships between code systems.

One place to start is looking at a Concept Map:
https://www.hl7.org/fhir/conceptmap.html

which lets you define relationships between one or more code systems (via Value Sets). They types of relationships defined are here:

https://www.hl7.org/fhir/valueset-concept-map-equivalence.html

There is another type of relationship that can be defined in the code system itself in which concepts can have children associated to them:

http://build.fhir.org/codesystem-definitions.html#CodeSystem.concept.concept (the last thing on the page)

which can have an "is-a” “contains” or “categorizes” relationship

I suppose that this gives us two ways to express hierarchy. One through the child concepts, and one (possibly) through the “narrower” equivalence in a concept
map.

For the ADX stuff specifically, I was thinking you would want your indicators to be a code system and use the one or more properties to associate them to one or more sets of disaggregators.

Cheers,

-carl

On Nov 3, 2016, at 2:23 AM, Grahame Grieve grahame@healthintersections.com.au wrote:

hi Bob

From a FHIR perspective, CodeSystems define concepts that have 3 things:

  • codes that represent them to computers
  • designations that represent them to humans (one of which is the default for general use)
  • properties that define extra things about the concept

The last moves us away from simple lists towards complex multi-dimensional structures. And ‘terminologies’ can be used this way for … well, medications is the primary reason. See RxNorm, AMT, DM+D, SNAPP… there are many around the
world. And also, there are code systems that use a similar approach for defining data elements - LOINC is pretty much at that point.

From our point of view in FHIR, this starts to look like elegant forms of Origami - trying to fold complex structures into generic reference models of [concept+code+designations+properties] delivered by terminology service. Rather than
doing that, we define specific resources that capture the complexities of these things directly. Specifically, we have Medication and DataElement for these purposes (and a few others on the design table for next round). I recommend that you look at those 2
resources. Note that we assert (loosely, for now) a relationship between those resources and terminologies. e.g. a repository of Medication resources also implicitly defines a vocabulary summary of the medications, that you can subset etc. There’s things about
that relationship that aren’t nailed down and operationalised yet - that’s where the terminology focus will be for the next version of FHIR

Grahame

On Thu, Nov 3, 2016 at 10:48 AM, Bob Jolliffe bobjolliffe@gmail.com wrote:

Hi

Placing myself at some risk of appearing ignorant can i ask some very general questions about terminology, ontology and FHIR?

Mostly when we see terminologies they appear as lists of one sort or another. Sometimes they can have some sort of hierarchical structure but still inherently list like.

Sometimes (often) ontology requirements demand more graph structure than simple lists. They need to express more complex relationships which will may well include reference to lists. I am thinking here of ontology service like (for a
dated example, ISO Topic Maps or W3C RDF).

So my first question is to ask whether I am right in interpreting the scope of terminology service in this way. ie. as a sort of controlled vocabulary repository. Or does it or can it drift into more general ontology service?

My motivation for asking relates to the ADX use case in Carl’s document. There is a figure there called “Get Structural Metadata”. Structural metadata is a term I crib from ISO SDMX because I think it captures the notion of structural
ontology quite well. But let me get even more concrete.

An ADX dataset is typically a routinely reported public health report (eg. Monthly malaria case report). It consists largely of reported dataelements (How many confirmed malaria cases? How many suspected malaria cases? How many tests
performed? etc). Some of these dataelements might be further disaggregated (commonly by age and or gender but also others). So the structural metadata for an ADX dataset will contain references to various coded vocabularies but is itself a more complex
ontological beast. It must refer to a list of dataelements but also indicate how each of these dataelements should be disaggregated.

So my next question is what might be a recommended FHIR way to represent such a resource? Whether or not we consider it as part of terminology service. (In fact one can view it as a hierarchical codelist though perhaps with additional
attributes eg. the periodicity of the report being monthly, weekly, quarterly etc)

Sorry for basic questions. I only took a close look at Carl’s work on DHIS2 terminology recently and am hovering over inclusion into new revision of ADX profile. I am fairly confident we will be able to use FHIR (even if just for the
controlled vocabularies) but I wonder about the best way of dealing with the graph that binds them together into an ontological whole.

Best regards

Bob

On 1 November 2016 at 19:33, Grahame Grieve grahame@healthintersections.com.au wrote:

Hi Carl

I can’t answer for Apelon, but I’ll answer the other stuff:

  • I assume that the create/update transactions are supported. Are the history transactions already supported?

my server does support history. and history is intended to support pub/sub or synchronization. Note, though, that the Australian national terminology service uses Atom because it’s also able to distribute other kinds of terminology resources.
(they could have used FHIR binary for that, but chose not to)

What do you think is the best way to structure a generic “sync” service that is a pull against a source server/directory w/ a timestamp. I was thinking of using the “history” transaction at either the resource type level or the whole
system level. I suppose that we could also use the search transaction if we only need the current state.

the problem with search is that it isn’t robust about removing things - you never get notified about things that fall out of the search. So definitely history.

It looks like your reference server supports some terminology service functionality (value set management). Does it also provide UIs for code system and concept map management?

no. we’re intending to write a generic electron client that does those things - in fact, CSIRO already have a concept map manager ready to contribute , but it hasn’t happened yet.

Grahame


http://www.healthintersections.com.au /
grahame@healthintersections.com.au / +61 411 867 065


You received this message because you are subscribed to the Google Groups “Terminology Services” group.
To unsubscribe from this group and stop receiving emails from it, send an email to
terminology-services+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


You received this message because you are subscribed to the Google Groups “Terminology Services” group.
To unsubscribe from this group and stop receiving emails from it, send an email to
terminology-services+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Hi James,
Not always, but we were able to do that in Tanzania for a vaccine consumption report. It is basically the workflow here:
   https://github.com/TZCAT/UseCases/blob/master/TImR_to_DHIS2_reporting.png

There are two things we needed:
that there is a FHIR resource that captures the data needed for the indicator
that the FHIR server support the optional "_summary=count” parameter for the search transaction: https://www.hl7.org/fhir/search.html#summary
   
Beyond the aggregation(counting) of total FHIR resources, there is a also a second level of aggregation that can occur. This would be when raw data for an indicator can be pulled from a FHIR server but the disaggregators are too granular for the required indicator. Here we may need to sum up the counts across different disaggergators. This is outlined in an HRH use case here:
   https://wiki.ohie.org/display/documents/Provide+Aggregate+Health+Worker+Information+Statistics

Cheers,
-carl

···

On Nov 3, 2016, at 9:46 AM, Kariuki, James M. (CDC/CGH/DGHT) <wmo7@cdc.gov> wrote:

Hi Bob/Carl,

Here is a graphic I created to illustrate the mapping/relationship between indicator (numerators, denominators and disaggregation) with the patient level data elements.

Is there a way to represent the logic for calculating/aggregating indicator values from patient level data as FIHR resources?

Thanks
James

<>
From: Carl Leitner [mailto:litlfred@gmail.com]
Sent: Thursday, November 03, 2016 8:00 AM
To: terminology-services@googlegroups.com <mailto:terminology-services@googlegroups.com>
Cc: Bob Jolliffe <bobjolliffe@gmail.com <mailto:bobjolliffe@gmail.com>>; Luke Duncan <lduncan@intrahealth.org <mailto:lduncan@intrahealth.org>>; gbisama@intrahealth.org <mailto:gbisama@intrahealth.org>; nmijumbi@intrahealth.org <mailto:nmijumbi@intrahealth.org>; ashaban@intrahealth.org <mailto:ashaban@intrahealth.org>; Kariuki, James M. (CDC/CGH/DGHT) <wmo7@cdc.gov <mailto:wmo7@cdc.gov>>; Carol Macumber <cmacumber@apelon.com <mailto:cmacumber@apelon.com>>; John Gresh <jgresh@apelon.com <mailto:jgresh@apelon.com>>
Subject: Re: iHRIS and DHIS2 support for Terminolgy Services

Hi Bob,

There are also ways that you can express relationships between code systems.

One place to start is looking at a Concept Map:
   https://www.hl7.org/fhir/conceptmap.html
which lets you define relationships between one or more code systems (via Value Sets). They types of relationships defined are here:
   https://www.hl7.org/fhir/valueset-concept-map-equivalence.html

There is another type of relationship that can be defined in the code system itself in which concepts can have children associated to them:
    http://build.fhir.org/codesystem-definitions.html#CodeSystem.concept.concept (the last thing on the page)
which can have an "is-a” “contains” or “categorizes” relationship
           
I suppose that this gives us two ways to express hierarchy. One through the child concepts, and one (possibly) through the “narrower” equivalence in a concept map.

For the ADX stuff specifically, I was thinking you would want your indicators to be a code system and use the one or more properties to associate them to one or more sets of disaggregators.

Cheers,
-carl

On Nov 3, 2016, at 2:23 AM, Grahame Grieve <grahame@healthintersections.com.au <mailto:grahame@healthintersections.com.au>> wrote:

hi Bob

From a FHIR perspective, CodeSystems define concepts that have 3 things:
- codes that represent them to computers
- designations that represent them to humans (one of which is the default for general use)
- properties that define extra things about the concept

The last moves us away from simple lists towards complex multi-dimensional structures. And 'terminologies' can be used this way for .... well, medications is the primary reason. See RxNorm, AMT, DM+D, SNAPP... there are many around the world. And also, there are code systems that use a similar approach for defining data elements - LOINC is pretty much at that point.

From our point of view in FHIR, this starts to look like elegant forms of Origami - trying to fold complex structures into generic reference models of [concept+code+designations+properties] delivered by terminology service. Rather than doing that, we define specific resources that capture the complexities of these things directly. Specifically, we have Medication and DataElement for these purposes (and a few others on the design table for next round). I recommend that you look at those 2 resources. Note that we assert (loosely, for now) a relationship between those resources and terminologies. e.g. a repository of Medication resources also implicitly defines a vocabulary summary of the medications, that you can subset etc. There's things about that relationship that aren't nailed down and operationalised yet - that's where the terminology focus will be for the next version of FHIR

Grahame

On Thu, Nov 3, 2016 at 10:48 AM, Bob Jolliffe <bobjolliffe@gmail.com <mailto:bobjolliffe@gmail.com>> wrote:
Hi

Placing myself at some risk of appearing ignorant can i ask some very general questions about terminology, ontology and FHIR?

Mostly when we see terminologies they appear as lists of one sort or another. Sometimes they can have some sort of hierarchical structure but still inherently list like.

Sometimes (often) ontology requirements demand more graph structure than simple lists. They need to express more complex relationships which will may well include reference to lists. I am thinking here of ontology service like (for a dated example, ISO Topic Maps or W3C RDF).

So my first question is to ask whether I am right in interpreting the scope of terminology service in this way. ie. as a sort of controlled vocabulary repository. Or does it or can it drift into more general ontology service?

My motivation for asking relates to the ADX use case in Carl's document. There is a figure there called "Get Structural Metadata". Structural metadata is a term I crib from ISO SDMX because I think it captures the notion of structural ontology quite well. But let me get even more concrete.

An ADX dataset is typically a routinely reported public health report (eg. Monthly malaria case report). It consists largely of reported dataelements (How many confirmed malaria cases? How many suspected malaria cases? How many tests performed? etc). Some of these dataelements might be further disaggregated (commonly by age and or gender but also others). So the structural metadata for an ADX dataset will contain references to various coded vocabularies but is itself a more complex ontological beast. It must refer to a list of dataelements but also indicate how each of these dataelements should be disaggregated.

So my next question is what might be a recommended FHIR way to represent such a resource? Whether or not we consider it as part of terminology service. (In fact one can view it as a hierarchical codelist though perhaps with additional attributes eg. the periodicity of the report being monthly, weekly, quarterly etc)

Sorry for basic questions. I only took a close look at Carl's work on DHIS2 terminology recently and am hovering over inclusion into new revision of ADX profile. I am fairly confident we will be able to use FHIR (even if just for the controlled vocabularies) but I wonder about the best way of dealing with the graph that binds them together into an ontological whole.

Best regards
Bob

On 1 November 2016 at 19:33, Grahame Grieve <grahame@healthintersections.com.au <mailto:grahame@healthintersections.com.au>> wrote:
Hi Carl

I can't answer for Apelon, but I'll answer the other stuff:
I assume that the create/update transactions are supported. Are the history transactions already supported?
my server does support history. and history is intended to support pub/sub or synchronization. Note, though, that the Australian national terminology service uses Atom because it's also able to distribute other kinds of terminology resources. (they could have used FHIR binary for that, but chose not to)
What do you think is the best way to structure a generic "sync" service that is a pull against a source server/directory w/ a timestamp. I was thinking of using the "history" transaction at either the resource type level or the whole system level. I suppose that we could also use the search transaction if we only need the current state.
the problem with search is that it isn't robust about removing things - you never get notified about things that fall out of the search. So definitely history.

It looks like your reference server supports some terminology service functionality (value set management). Does it also provide UIs for code system and concept map management?

no. we're intending to write a generic electron client that does those things - in fact, CSIRO already have a concept map manager ready to contribute , but it hasn't happened yet.

Grahame

--
-----
http://www.healthintersections.com.au/> / grahame@healthintersections.com.au <mailto:grahame@healthintersections.com.au> / +61 411 867 065

--
You received this message because you are subscribed to the Google Groups "Terminology Services" group.
To unsubscribe from this group and stop receiving emails from it, send an email toterminology-services+unsubscribe@googlegroups.com <mailto:terminology-services+unsubscribe@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.

<Indicator_patient level data element mapping.png>