We’re currently in the process of writing integration tests against the PDS FHIR API (Application Restricted), using the test data packs provided: PDS FHIR API test data
Using the General Tests: All PDS data (all-pds-data2.xlsx), we haven’t gotten very far before running into inconsistencies between the test packs and the data returned by the integration API. It states that it is read-only, but some of the inconsistencies with names suggest that it they may have been modified.
It also states that it should be used to test retrievals by NHS number, which I would assume means that each row should return a valid patient.
We’ve only done some very brief testing so far, gotten as far as ensuring we’re parsing the responses correctly, and checking the names for each record.
I guess we have two questions:
- Are the data packs meant to differ this much from the integration API? It makes verifying the tests very tedious.
- Where non-spec compliant responses are returned, is this likely to happen in the production API also? Do we need to make affordances for these cases?
Findings below:
- 6 resources are returning INVALIDATED_RESOURCE, that aren’t noted as invalidated in the pack
- 9449306699
- 9449305102
- 9449310378
- 9449310718
- 9449310599
- 9449310408
- 18 have family names that are not present in the names returned by the API
- e.g.
9449304424
: test pack = “AINDOW”, API responds with “Jones” (no history) - 9449304424
- 9449306583
- 9449306559
- 9449306044
- 9449306508
- 9449308136
- 9449303371
- 9449303282
- 9449303274
- 9449303231
- 9449303363
- 9449303355
- 9449303347
- 9449303339
- 9449303320
- 9449303312
- 9449303304
- 9449303290
- e.g.
- 6 patients are returning the
text
“Usual address for patient X” for each address, instead of one of the cases defined in the OpenAPI spec- 9449310351
- 9449310343
- 9449310688
- 9449310432
- 9449310572
- 9449303266
- Unknown number with mismatching given names
Many thanks,
Dec