# Practitioner-relationship-instance questions

**URL:** <https://developer.community.nhs.uk/t/practitioner-relationship-instance-questions/12860>\
**Category:** Organisation Data Service (ODS)\
**Created:** [19 June 2026 08:25 UTC](https://developer.community.nhs.uk/t/practitioner-relationship-instance-questions/12860 "2026-06-19T08:25:23Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![as140](https://avatars.discourse-cdn.com/v4/letter/a/3da27b/32.png) [@as140](https://developer.community.nhs.uk/u/as140)\
**Post date:** [19 June 2026 08:25 UTC](https://developer.community.nhs.uk/t/practitioner-relationship-instance-questions/12860/1 "2026-06-19T08:25:23Z")

</div>

I’m working on using the APIs to get the content of the egpcur file.

I’m using the practitioner and practitioner-relationship-instance codesystems which I think is the best way to do it?

The results I’m getting from practitioner-relationship-instance include practitioner codes in a few different formats. Some examples are:

98I2980E  
82A3657E  
ZW821700  
G6368744

I think those starting with G are GP codes and others relate to other job roles?

Does the API allow filtering so that it only returns GP codes? It’s not a problem, if not, I can just filter the results after download. Apologies if I missed it in the documentation. My current api request is as follows:

{  
“resourceType”: “Parameters”,  
“parameter”: [  
{  
“name”: “valueSet”,  
“resource”: {  
“resourceType”: “ValueSet”,  
“compose”: {  
“inactive”: true,  
“include”: [  
{  
“system”: “[https://digital.nhs.uk/services/organisation-data-service/CodeSystem/practitioner-relationship-instance](https://digital.nhs.uk/services/organisation-data-service/CodeSystem/practitioner-relationship-instance)”  
}  
]  
}  
}  
},  
{  
“name”: “activeOnly”,  
“valueBoolean”: false  
},  
{  
“name”: “property”,  
“valueString”: “\*”  
},  
{  
“name”: “count”,  
“valueInteger”: 100  
}  
]  
}

Also does the practitioner-relationship-instance support requesting records that have been updated since a certain date?

Thanks

---

<div class="post-metadata">

**Author:** ![laura.reeves](https://avatars.discourse-cdn.com/v4/letter/l/d26b3c/32.png) [@laura.reeves](https://developer.community.nhs.uk/u/laura.reeves)\
**Post date:** [19 June 2026 15:06 UTC](https://developer.community.nhs.uk/t/practitioner-relationship-instance-questions/12860/2 "2026-06-19T15:06:04Z")

</div>

Hi  
You can limit the practitioner records returned using the practitioner type code of ‘PGP’ and use the Last Change Date parameter to return only amended records since a specific date.

The parent practice code is available from the practitioner codesystem, you only need the practitioner-relationship-instance codesystem if you need join/left dates. Further info here:  
[Organisation Data Service : Practitioner Membership](https://www.odsdatasearchandexport.nhs.uk/referenceDataCatalogue/Practitioner-Membership_587381382.html)

For example:

Post: [https://sandbox.api.service.nhs.uk/organisation-data-terminology-api/fhir/ValueSet/$expand](https://sandbox.api.service.nhs.uk/organisation-data-terminology-api/fhir/ValueSet/$expand)  
Body:  
{  
“resourceType”: “Parameters”,  
“parameter”: [  
{  
“name”: “valueSet”,  
“resource”: {  
“resourceType”: “ValueSet”,  
“compose”: {  
“inactive”: false,  
“include”: [  
{  
“system”: “[https://digital.nhs.uk/services/organisation-data-service/CodeSystem/practitioner](https://digital.nhs.uk/services/organisation-data-service/CodeSystem/practitioner)”,  
“filter”: [  
{  
“property”: “type”,  
“op”: “=”,  
“value”: “PGP”  
},  
{  
“property”: “ME1”,  
“op”: “=”,  
“value”: “L83016”  
},  
{  
“property”: “lastChangeDate”,  
“op”: “=”,  
“value”: “gt2026-01-01”  
}

```
                        ]
                    }
                ]
            }
        }
    },
    {
        "name": "activeOnly",
        "valueBoolean": true
    },
    {
        "name": "property",
        "valueString": "*"
    }
]

```

}

Thanks, Laura

---

<div class="post-metadata">

**Author:** ![as140](https://avatars.discourse-cdn.com/v4/letter/a/3da27b/32.png) [@as140](https://developer.community.nhs.uk/u/as140)\
**Post date:** [22 June 2026 09:19 UTC](https://developer.community.nhs.uk/t/practitioner-relationship-instance-questions/12860/3 "2026-06-22T09:19:34Z")

</div>

> [@as140](#):
>
> practitioner

Thanks for your help.

I am trying to get the join/left dates. If a practitioner-relationship-instance record changes does the lastupdated field on the associated practitioner record get updated?

---

<div class="post-metadata">

**Author:** ![laura.reeves](https://avatars.discourse-cdn.com/v4/letter/l/d26b3c/32.png) [@laura.reeves](https://developer.community.nhs.uk/u/laura.reeves)\
**Post date:** [22 June 2026 12:09 UTC](https://developer.community.nhs.uk/t/practitioner-relationship-instance-questions/12860/4 "2026-06-22T12:09:56Z")

</div>

Yes, if any part of the practitioner record is changed (name, parent affiliation etc) the LastChangeDate will be updated.

---

<div class="post-metadata">

**Author:** ![as140](https://avatars.discourse-cdn.com/v4/letter/a/3da27b/32.png) [@as140](https://developer.community.nhs.uk/u/as140)\
**Post date:** [22 June 2026 12:29 UTC](https://developer.community.nhs.uk/t/practitioner-relationship-instance-questions/12860/5 "2026-06-22T12:29:38Z")

</div>

Thanks for your help.

---

<div class="post-metadata">

**Author:** ![as140](https://avatars.discourse-cdn.com/v4/letter/a/3da27b/32.png) [@as140](https://developer.community.nhs.uk/u/as140)\
**Post date:** [28 July 2026 12:55 UTC](https://developer.community.nhs.uk/t/practitioner-relationship-instance-questions/12860/6 "2026-07-28T12:55:52Z")

</div>

Thanks for your help with this so far. Apologies, I have another question.

I’m using this call to get the startdate for the practitioner:

{  
“resourceType”: “Parameters”,  
“parameter”: [  
{  
“name”: “valueSet”,  
“resource”: {  
“resourceType”: “ValueSet”,  
“compose”: {  
“inactive”: true,  
“include”: [  
{  
“system”: “[https://digital.nhs.uk/services/organisation-data-service/CodeSystem/practitioner-additional-attribute](https://digital.nhs.uk/services/organisation-data-service/CodeSystem/practitioner-additional-attribute)”,  
“filter”:[  
{  
“property”: “practitionerID”,  
“op”: “=”,  
“value”: “G3505742”  
}  
]  
}  
]  
}  
}  
},  
{  
“name”: “activeOnly”,  
“valueBoolean”: false  
},  
{  
“name”: “property”,  
“valueString”: “\*”  
},  
{  
“name”: “count”,  
“valueInteger”: 1  
}  
]  
}

I think that’s the correct field for the ‘open date’ column from the EGPCur report?

For some practitionerIDs, including G3505742, I get a startdate in the API response and it looks to match the EGPCUR report exported from [https://www.odsdatasearchandexport.nhs.uk/](https://www.odsdatasearchandexport.nhs.uk/)

For some records, for example practitionerID G3505766, there doesn’t look to be a start date in the API response but there is a date in the EGPCUR report.

Can you advise what I’m doing wrong?

Thanks

---

<div class="post-metadata">

**Author:** ![laura.reeves](https://avatars.discourse-cdn.com/v4/letter/l/d26b3c/32.png) [@laura.reeves](https://developer.community.nhs.uk/u/laura.reeves)\
**Post date:** [30 July 2026 12:51 UTC](https://developer.community.nhs.uk/t/practitioner-relationship-instance-questions/12860/7 "2026-07-30T12:51:31Z")

</div>

Hi  
The GP practitioner start date (as per egpcur) is taken from the GNC (additional attribute) start date. You will need to set an additional parameter as well as practitionerID:

“property”: “practitionerAttributeID”,  
“op”: “=”,  
“value”: “1”

[Organisation Data Service : General Practitioners](https://www.odsdatasearchandexport.nhs.uk/referenceDataCatalogue/General-Practitioners_571320285.html#GeneralPractitioners-egpcur.csv)
