Terminology Server - FHIR APIs - DM+D Code system - missing property values

Just started using https://ontology.nhs.uk/production1/fhir/ to try to obtain the full set of codes for DM+D, rather than manually using the TRUD web site to download zip files periodically and decode them.

When we submit the query CodeSystem/CodeSystem-dmd-202306.0.0 , back comes a full set of all codes and properties. In all cases however, in the “property” part of each record, the “parent” property appears to be populated but all other properties, although present in the response, have no valueCode with them.

For example, the response includes the code 526311000001106 , with parents of AMP (the coding it belongs to) and 318248001 (the coding of the parent VMP) - but the properties NM, SUPPCD, LIC_AUTHCD, AVAIL_RESTRICTCD and ROUTECD are all present but blank,.

Is this a bug or does the request need some parameters?

Emailed api.management@nhs.net but no response or even acknowledgement after 9 days.

Hello James

Sorry it is confusing where to get support on these things. For the terminology server you need to raise a call at information.standards@nhs.net.

Kind regards

Bill Lush

Hi Again James

I am restricted to replies that only contain 2 links.

Generic information about the terminology server is available here: The NHS England Terminology Server - NHS Digital

Detailed documentation about dm+d data in the terminology server is available here: https://www.nhsbsa.nhs.uk/sites/default/files/2023-03/dm_d%20Code%20System%20Structure%20Feb%202023.docx

Kind regards
Bill Lush

Thanks Bill. Not confusing, just not stated!

Just to be clear if you need further help (questions or issues) with the terminology server please raise a call with information.standards@nhs.net.

Kind regards
Bill Lush

Thanks James for letting us know, I am looking at getting the API pages updated with contact details.

Just remembered there is another useful page with additional information: dictionary of medicines and devices (dm+d) - NHS Digital

If you go to the header “Accessing dm+d” ( dictionary of medicines and devices (dm+d) - NHS Digital) there is a video that shows how to query dm+d on the Terminology Server. That is me on the video so any feedback is welcome.

That’s a really helpful video, thanks - I wish I had seen it before playing with the API.
I think this is because I tend to ignore videos in favour of documents, so I can go at my own speed.
But I would say to anyone planning to use DM+D via this FHIR interface, Bill’s video is worth 32 minutes of your time.

(However, it didn’t address my specific problem so I submitted a help request.)

I will probably pick this up when the request makes its way through our system.

Hi James

I have not seen a support request come through. Can you let me know details of your issue and I will see if I can help :slight_smile:

Cheers

Bill

Just re-read your original issue.

I have created a query to return all the properties for the AMP 526311000001106. Details of the query is listed below. This can be run from postman which will display the response (sorry for stating the obvious). All properties that are present will be displayed. All properties you describe are present, with relevant codes, you might need to review the response to see how the data is returned.

The call to the terminology server is a POST request.
URL: https://ontology.nhs.uk/staging/fhir/ValueSet/$expand
Body (JSON):
{
“resourceType”: “Parameters”,
“parameter”: [
{
“name”: “valueSet”,
“resource”: {
“resourceType”: “ValueSet”,
“compose”: {
“include”: [
{
“system”: “https://dmd.nhs.uk”,
“filter”: [
{
“property”: “concept”,
“op”: “=”,
“value”: “526311000001106”
}
]
}
]
}
}
},
{
“name”: “count”,
“valueInteger”: “10”
},
{
“name”: “property”,
“valueString”: “*”
}
]
}

Thanks for following up (my support ref was allocated: CS0364887 - but see below).

I will try the example API call you have constructed. I hadn’t tried a requesting an individual item; I was requesting the whole value set (in fact, the whole code set, without pagination).

Will continue this thread with my progress later today.

Thanks for your help. This json has given me the basis of some hopefully working code.

(This method does require me to implement pagination to pick up the entire result set, which is not a huge deal. The original call I was using didn’t seem to complain if asked for an entire result set, although it was missing properties. However, as I need to implement and move on, I won’t worry about fixing the original.)

“name”: “property”
“valueString”: “*”
will get all properties.
You can get a single property for example ROUTECD by entering:
“name”: “property”
“valueString”: “ROUTECD”

if you want to specifically select 2 or more properties you would have to do multiple property name value pairs. I hope that makes sense :).