diff --git a/catalog/brands.json b/catalog/brands.json index 27cd5dcd8..4c34d2423 100644 --- a/catalog/brands.json +++ b/catalog/brands.json @@ -8070,6 +8070,24 @@ "0140ca6f-a2e2-4c23-a5b1-ec849a6c6d61" ] }, + "01489768-a98d-459f-8acf-f928fd6b4f94": { + "id": "01489768-a98d-459f-8acf-f928fd6b4f94", + "identifiers": [ + { + "use": "fasten-sandbox-mode", + "system": "fasten-sandbox-mode", + "value": "true" + } + ], + "last_updated": "2024-01-13T11:12:44-08:00", + "name": "NHS", + "portal_ids": [ + "eee62c93-02f8-44f8-b9fc-4db000f26898" + ], + "brand_ids": [ + "01489768-a98d-459f-8acf-f928fd6b4f94" + ] + }, "014c21e2-2882-48a7-b749-e027da148d4a": { "id": "014c21e2-2882-48a7-b749-e027da148d4a", "identifiers": [ diff --git a/catalog/endpoints.json b/catalog/endpoints.json index e8255e6e0..c837efc2e 100644 --- a/catalog/endpoints.json +++ b/catalog/endpoints.json @@ -111598,6 +111598,23 @@ "smart_configuration_url": "https://fhir-myrecord.cerner.com/r4/8e2ece22-3efe-4cb1-860b-5b67b6cf3ea9/.well-known/smart-configuration", "fhir_capabilities_url": "https://fhir-myrecord.cerner.com/r4/8e2ece22-3efe-4cb1-860b-5b67b6cf3ea9/metadata" }, + "982b218a-ce90-4869-a33a-aa4231547fe8": { + "id": "982b218a-ce90-4869-a33a-aa4231547fe8", + "identifiers": [ + { + "use": "fasten-sandbox-mode", + "system": "fasten-sandbox-mode", + "value": "true" + } + ], + "last_updated": "2024-01-13T11:12:44-08:00", + "status": "active", + "connection_type": "hl7-fhir-rest", + "platform_type": "nhs", + "url": "https://int.api.service.nhs.uk/personal-demographics/FHIR/R4/", + "authorization_endpoint": "https://int.api.service.nhs.uk/oauth2-mock/authorize", + "token_endpoint": "https://int.api.service.nhs.uk/oauth2-mock/token" + }, "9841ea48-7ca7-4eeb-89b3-f1439aea27d6": { "id": "9841ea48-7ca7-4eeb-89b3-f1439aea27d6", "identifiers": [ diff --git a/catalog/portals.json b/catalog/portals.json index db69be8d5..f81daa6a5 100644 --- a/catalog/portals.json +++ b/catalog/portals.json @@ -715423,6 +715423,22 @@ "c80fbbc2-ad04-4a3c-90a3-f94ebeb9f34e" ] }, + "eee62c93-02f8-44f8-b9fc-4db000f26898": { + "id": "eee62c93-02f8-44f8-b9fc-4db000f26898", + "identifiers": [ + { + "use": "fasten-sandbox-mode", + "system": "fasten-sandbox-mode", + "value": "true" + } + ], + "last_updated": "2024-01-13T11:12:44-08:00", + "name": "NHS (Sandbox)", + "description": "Warning: Under Development", + "endpoint_ids": [ + "982b218a-ce90-4869-a33a-aa4231547fe8" + ] + }, "eee66830-6801-4261-8203-48edd76a3b9a": { "id": "eee66830-6801-4261-8203-48edd76a3b9a", "identifiers": [ diff --git a/definitions/models/lighthouse_endpoint_definition.go b/definitions/models/lighthouse_endpoint_definition.go index 3378d7e83..7de3e3c09 100644 --- a/definitions/models/lighthouse_endpoint_definition.go +++ b/definitions/models/lighthouse_endpoint_definition.go @@ -91,7 +91,8 @@ func (def *LighthouseSourceDefinition) Populate( def.PlatformType == pkg.PlatformTypeNetsmart || def.PlatformType == pkg.PlatformTypeQualifactsCredible || def.PlatformType == pkg.PlatformTypeQualifactsCareLogic || - def.PlatformType == pkg.PlatformTypeQualifactsInSync { + def.PlatformType == pkg.PlatformTypeQualifactsInSync || + def.PlatformType == pkg.PlatformTypeNHS { //remove trailing slash for audience for CareEvolution & Anthem def.Audience = strings.TrimSuffix(def.Audience, "/") } diff --git a/definitions/platform/nhs.yaml b/definitions/platform/nhs.yaml new file mode 100644 index 000000000..7d8af2336 --- /dev/null +++ b/definitions/platform/nhs.yaml @@ -0,0 +1,38 @@ +# MANUALLY POPULATED +platform_type: nhs + +# https://digital.nhs.uk/developer/api-catalogue/personal-demographics-service-fhir +scopes_supported: + - 'nhs-login' +grant_types_supported: + - authorization_code +response_types_supported: + - code +response_modes_supported: + - query +code_challenge_methods_supported: [] +# - S256 +confidential: true +cors_relay_required: false +documentation: | + developer forums - https://developer.community.nhs.uk/ + test user ids - https://digital.nhs.uk/developer/guides-and-documentation/security-and-authorisation/testing-apis-with-our-mock-authorisation-service#test-users-for-nhs-login + Existing Apps - https://digital.nhs.uk/developer/api-catalogue/personal-demographics-service-fhir/integrated-products + Developer Portal - https://onboarding.prod.api.platform.nhs.uk/MyApplications + Standard Test Data - https://digital.nhs.uk/services/path-to-live-environments/setting-up-test-data-in-our-path-to-live-environments + PDS Test Data - https://digital.nhs.uk/developer/api-catalogue/personal-demographics-service-fhir/pds-fhir-api-test-data#production-smoke-testing + Integration testing auth options - https://digital.nhs.uk/developer/guides-and-documentation/testing#integration-testing-with-our-restful-apis + Contact Information - https://digital.nhs.uk/developer/help-and-support + Auth Environmnets - https://digital.nhs.uk/developer/guides-and-documentation/security-and-authorisation/user-restricted-restful-apis-nhs-login-combined-authentication-and-authorisation + Scopes - https://nhsconnect.github.io/nhslogin/scopes-and-claims/ + + The available test users are: + User ID Proofing level + 9912003071 High - P9 + 9912003072 Medium - P5 + 9912003073 Low - P0 + +client_headers: + Accept: "application/json+fhir" +missing_op_patient_everything: true +client_supported_resources: [] diff --git a/pkg/platform_type.go b/pkg/platform_type.go index ee1ce81ea..5b86e553e 100644 --- a/pkg/platform_type.go +++ b/pkg/platform_type.go @@ -11,9 +11,9 @@ const ( PlatformTypeAdvancedmd PlatformType = "advancedmd" PlatformTypeAetna PlatformType = "aetna" PlatformTypeAllscripts PlatformType = "allscripts" + PlatformTypeAnthem PlatformType = "anthem" PlatformTypeAthena PlatformType = "athena" PlatformTypeBcbsal PlatformType = "bcbsal" - PlatformTypeAnthem PlatformType = "anthem" PlatformTypeCareevolution PlatformType = "careevolution" PlatformTypeCerner PlatformType = "cerner" PlatformTypeCigna PlatformType = "cigna" @@ -28,11 +28,12 @@ const ( PlatformTypeMedicare PlatformType = "medicare" PlatformTypeMeditech PlatformType = "meditech" PlatformTypeMeldrx PlatformType = "meldrx" + PlatformTypeNHS PlatformType = "nhs" PlatformTypeNetsmart PlatformType = "netsmart" PlatformTypeNextgen PlatformType = "nextgen" PlatformTypePracticeFusion PlatformType = "practicefusion" - PlatformTypeQualifactsCredible PlatformType = "qualifacts-credible" PlatformTypeQualifactsCareLogic PlatformType = "qualifacts-carelogic" + PlatformTypeQualifactsCredible PlatformType = "qualifacts-credible" PlatformTypeQualifactsInSync PlatformType = "qualifacts-insync" PlatformTypeUnitedhealthcare PlatformType = "unitedhealthcare" @@ -51,9 +52,9 @@ func GetPlatformTypes() []PlatformType { PlatformTypeAdvancedmd, PlatformTypeAetna, PlatformTypeAllscripts, + PlatformTypeAnthem, PlatformTypeAthena, PlatformTypeBcbsal, - PlatformTypeAnthem, PlatformTypeCareevolution, PlatformTypeCerner, PlatformTypeCigna, @@ -68,11 +69,12 @@ func GetPlatformTypes() []PlatformType { PlatformTypeMedicare, PlatformTypeMeditech, PlatformTypeMeldrx, + PlatformTypeNHS, PlatformTypeNetsmart, PlatformTypeNextgen, PlatformTypePracticeFusion, - PlatformTypeQualifactsCredible, PlatformTypeQualifactsCareLogic, + PlatformTypeQualifactsCredible, PlatformTypeQualifactsInSync, PlatformTypeUnitedhealthcare, PlatformTypeVahealth, diff --git a/testutils/html/index.html b/testutils/html/index.html index 491e38dae..5b6faee98 100644 --- a/testutils/html/index.html +++ b/testutils/html/index.html @@ -218,6 +218,7 @@

+