From dc7c834b3d424b2a5b24faccf8614dd531eed934 Mon Sep 17 00:00:00 2001 From: Hauke Hund Date: Wed, 29 Oct 2025 00:55:58 +0100 Subject: [PATCH 01/16] DSF 2.0.0 FHIR resources - Changed version for all resources to 2.0.0. - Added new profiles for all supported resources. - Added new profile for complex type Meta to validate read access tags. - Updated urn:ietf:bcp:13 CodeSystem with latest values from IANA. - Added all old 1.0.0 resources to resources.delete file. - Removed Questionnaire 1.0.0 and 1.5.0 profiles, new 2.0.0 profiles will be the only one supported by DSF 2.0.0. - Changed the profile url for the abstract Task profile from .../task-base to .../task - Changes abstract=true to false in QuestionnaireResponse profile - Resources from existing process plugins will be modified to comply with the Questionnaire 2.0.0 and Task 2.0.0 profiles during deployment and resource already in the database will be modified by startup migration jobs. Needed changes not part of this commit - Fixed min cardinalities for sliced values to be equal to slices min sum --- .../CodeSystem/dsf-bpmn-message-1.0.0.xml | 45 - .../dsf-bpmn-message-1.0.0.xml.post | 1 - .../CodeSystem/dsf-bpmn-message-2.0.0.xml | 44 + .../dsf-bpmn-message-2.0.0.xml.post | 1 + .../dsf-organization-role-1.0.0.xml | 60 - .../dsf-organization-role-1.0.0.xml.post | 1 - .../dsf-organization-role-2.0.0.xml | 60 + .../dsf-organization-role-2.0.0.xml.post | 1 + .../dsf-practitioner-role-1.0.0.xml | 64 - .../dsf-practitioner-role-1.0.0.xml.post | 1 - .../dsf-practitioner-role-2.0.0.xml | 64 + .../dsf-practitioner-role-2.0.0.xml.post | 1 + .../dsf-process-authorization-1.0.0.xml | 69 - .../dsf-process-authorization-2.0.0.xml | 76 + ... dsf-process-authorization-2.0.0.xml.post} | 2 +- .../CodeSystem/dsf-read-access-tag-1.0.0.xml | 44 - .../dsf-read-access-tag-1.0.0.xml.post | 1 - .../CodeSystem/dsf-read-access-tag-2.0.0.xml | 46 + .../dsf-read-access-tag-2.0.0.xml.post | 1 + .../fhir/CodeSystem/urn_ietf_bcp_13.xml | 13204 ++++++++-------- .../fhir/NamingSystem/dsf-endpoint.xml | 28 +- .../fhir/NamingSystem/dsf-organization.xml | 28 +- .../fhir/NamingSystem/dsf-practitioner.xml | 26 +- .../resources/fhir/NamingSystem/dsf-task.xml | 26 +- .../dsf-activity-definition-2.0.0.xml | 10 +- .../StructureDefinition/dsf-binary-2.0.0.xml | 171 + .../dsf-binary-2.0.0.xml.post | 1 + .../StructureDefinition/dsf-bundle-2.0.0.xml | 31 + .../dsf-bundle-2.0.0.xml.post | 1 + .../dsf-code-system-1.0.0.xml | 32 - .../dsf-code-system-2.0.0.xml | 43 + ...ml.post => dsf-code-system-2.0.0.xml.post} | 2 +- ...-process-authorization-local-all-2.0.0.xml | 3 +- ...orization-local-all-practitioner-2.0.0.xml | 4 +- ...authorization-local-organization-2.0.0.xml | 4 +- ...-local-organization-practitioner-2.0.0.xml | 4 +- ...n-local-parent-organization-role-2.0.0.xml | 4 +- ...t-organization-role-practitioner-2.0.0.xml | 4 +- ...process-authorization-remote-all-2.0.0.xml | 3 +- ...uthorization-remote-organization-2.0.0.xml | 4 +- ...-remote-parent-organization-role-2.0.0.xml | 4 +- .../dsf-document-reference-2.0.0.xml | 31 + .../dsf-document-reference-2.0.0.xml.post | 1 + .../dsf-endpoint-2.0.0.xml | 10 +- ...extension-certificate-thumbprint-2.0.0.xml | 3 +- ...xtension-check-logical-reference-1.0.0.xml | 48 - ...xtension-check-logical-reference-2.0.0.xml | 48 + ...on-check-logical-reference-2.0.0.xml.post} | 2 +- ...-extension-process-authorization-2.0.0.xml | 11 +- ...ocess-authorization-organization-2.0.0.xml | 3 +- ...zation-organization-practitioner-2.0.0.xml | 4 +- ...ization-parent-organization-role-2.0.0.xml | 4 +- ...t-organization-role-practitioner-2.0.0.xml | 4 +- ...ocess-authorization-practitioner-2.0.0.xml | 3 +- ...sion-questionnaire-authorization-2.0.0.xml | 4 +- ...tension-read-access-organization-1.0.0.xml | 48 - ...tension-read-access-organization-2.0.0.xml | 48 + ...n-read-access-organization-2.0.0.xml.post} | 2 +- ...-access-parent-organization-role-1.0.0.xml | 97 - ...-access-parent-organization-role-2.0.0.xml | 98 + ...s-parent-organization-role-2.0.0.xml.post} | 2 +- .../StructureDefinition/dsf-group-2.0.0.xml | 31 + .../dsf-group-2.0.0.xml.post | 1 + .../dsf-healthcare-service-2.0.0.xml | 31 + .../dsf-healthcare-service-2.0.0.xml.post | 1 + .../StructureDefinition/dsf-library-2.0.0.xml | 31 + .../dsf-library-2.0.0.xml.post | 1 + .../dsf-location-2.0.0.xml | 31 + .../dsf-location-2.0.0.xml.post | 1 + .../StructureDefinition/dsf-measure-2.0.0.xml | 31 + .../dsf-measure-2.0.0.xml.post | 1 + .../dsf-measure-report-2.0.0.xml | 31 + .../dsf-measure-report-2.0.0.xml.post | 1 + .../StructureDefinition/dsf-meta-2.0.0.xml | 166 + .../dsf-meta-2.0.0.xml.post | 1 + .../dsf-naming-system-2.0.0.xml | 39 + .../dsf-naming-system-2.0.0.xml.post | 1 + .../dsf-organization-2.0.0.xml | 10 +- .../dsf-organization-affiliation-2.0.0.xml | 10 +- .../dsf-organization-parent-2.0.0.xml | 10 +- .../dsf-organization-reference-1.0.0.xml | 45 - .../dsf-organization-reference-1.0.0.xml.post | 1 - .../StructureDefinition/dsf-patient-2.0.0.xml | 31 + .../dsf-patient-2.0.0.xml.post | 1 + .../dsf-practitioner-2.0.0.xml | 31 + .../dsf-practitioner-2.0.0.xml.post | 1 + .../dsf-practitioner-role-2.0.0.xml | 31 + .../dsf-practitioner-role-2.0.0.xml.post | 1 + .../dsf-provenance-2.0.0.xml | 31 + .../dsf-provenance-2.0.0.xml.post | 1 + .../dsf-questionnaire-1.0.0.xml | 204 - .../dsf-questionnaire-1.5.0.xml | 218 - .../dsf-questionnaire-1.5.0.xml.post | 1 - .../dsf-questionnaire-2.0.0.xml | 225 + ....post => dsf-questionnaire-2.0.0.xml.post} | 2 +- .../dsf-questionnaire-response-2.0.0.xml | 26 +- .../dsf-research-study-2.0.0.xml | 31 + .../dsf-research-study-2.0.0.xml.post | 1 + .../dsf-structure-definition-2.0.0.xml | 43 + .../dsf-structure-definition-2.0.0.xml.post | 1 + .../dsf-subscription-2.0.0.xml | 44 + .../dsf-subscription-2.0.0.xml.post | 1 + ...task-base-2.0.0.xml => dsf-task-2.0.0.xml} | 39 +- .../dsf-task-2.0.0.xml.post | 1 + .../dsf-task-base-2.0.0.xml.post | 1 - .../dsf-value-set-1.0.0.xml | 32 - .../dsf-value-set-1.0.0.xml.post | 1 - .../dsf-value-set-2.0.0.xml | 43 + .../dsf-value-set-2.0.0.xml.post | 1 + ...mn-questionnaire-response-subscription.xml | 20 +- .../dsf-bpmn-task-subscription.xml | 20 +- .../fhir/ValueSet/dsf-bpmn-message-1.0.0.xml | 27 - .../ValueSet/dsf-bpmn-message-1.0.0.xml.post | 1 - .../fhir/ValueSet/dsf-bpmn-message-2.0.0.xml | 26 + .../ValueSet/dsf-bpmn-message-2.0.0.xml.post | 1 + .../dsf-organization-role-1.0.0.xml.post | 1 - ....0.xml => dsf-organization-role-2.0.0.xml} | 7 +- .../dsf-organization-role-2.0.0.xml.post | 1 + .../dsf-practitioner-role-1.0.0.xml.post | 1 - ....0.xml => dsf-practitioner-role-2.0.0.xml} | 7 +- .../dsf-practitioner-role-2.0.0.xml.post | 1 + ...process-authorization-recipient-2.0.0.xml} | 7 +- ...ss-authorization-recipient-2.0.0.xml.post} | 2 +- ...process-authorization-requester-2.0.0.xml} | 7 +- ...ss-authorization-requester-2.0.0.xml.post} | 2 +- .../dsf-read-access-tag-1.0.0.xml.post | 1 - ....0.0.xml => dsf-read-access-tag-2.0.0.xml} | 7 +- .../dsf-read-access-tag-2.0.0.xml.post | 1 + .../fhir/ValueSet/valueset-mimetypes.xml | 3 +- .../src/main/resources/fhir/resources.delete | 27 +- 130 files changed, 8719 insertions(+), 7659 deletions(-) delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-bpmn-message-1.0.0.xml delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-bpmn-message-1.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-bpmn-message-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-bpmn-message-2.0.0.xml.post delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-1.0.0.xml delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-1.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-2.0.0.xml.post delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-1.0.0.xml delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-1.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-2.0.0.xml.post delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-process-authorization-1.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-process-authorization-2.0.0.xml rename dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/{dsf-process-authorization-1.0.0.xml.post => dsf-process-authorization-2.0.0.xml.post} (91%) delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-read-access-tag-1.0.0.xml delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-read-access-tag-1.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-read-access-tag-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-read-access-tag-2.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-binary-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-binary-2.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-bundle-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-bundle-2.0.0.xml.post delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-code-system-1.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-code-system-2.0.0.xml rename dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/{dsf-code-system-1.0.0.xml.post => dsf-code-system-2.0.0.xml.post} (92%) create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-document-reference-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-document-reference-2.0.0.xml.post delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-check-logical-reference-1.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-check-logical-reference-2.0.0.xml rename dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/{dsf-extension-check-logical-reference-1.0.0.xml.post => dsf-extension-check-logical-reference-2.0.0.xml.post} (70%) delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-organization-1.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-organization-2.0.0.xml rename dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/{dsf-extension-read-access-organization-1.0.0.xml.post => dsf-extension-read-access-organization-2.0.0.xml.post} (69%) delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-parent-organization-role-1.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-parent-organization-role-2.0.0.xml rename dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/{dsf-extension-read-access-parent-organization-role-1.0.0.xml.post => dsf-extension-read-access-parent-organization-role-2.0.0.xml.post} (61%) create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-group-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-group-2.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-healthcare-service-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-healthcare-service-2.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-library-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-library-2.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-location-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-location-2.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-measure-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-measure-2.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-measure-report-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-measure-report-2.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-meta-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-meta-2.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-naming-system-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-naming-system-2.0.0.xml.post delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-reference-1.0.0.xml delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-reference-1.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-patient-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-patient-2.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-practitioner-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-practitioner-2.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-practitioner-role-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-practitioner-role-2.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-provenance-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-provenance-2.0.0.xml.post delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-1.0.0.xml delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-1.5.0.xml delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-1.5.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-2.0.0.xml rename dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/{dsf-questionnaire-1.0.0.xml.post => dsf-questionnaire-2.0.0.xml.post} (90%) create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-research-study-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-research-study-2.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-structure-definition-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-structure-definition-2.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-subscription-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-subscription-2.0.0.xml.post rename dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/{dsf-task-base-2.0.0.xml => dsf-task-2.0.0.xml} (83%) create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-2.0.0.xml.post delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-base-2.0.0.xml.post delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-value-set-1.0.0.xml delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-value-set-1.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-value-set-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-value-set-2.0.0.xml.post delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-bpmn-message-1.0.0.xml delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-bpmn-message-1.0.0.xml.post create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-bpmn-message-2.0.0.xml create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-bpmn-message-2.0.0.xml.post delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-organization-role-1.0.0.xml.post rename dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/{dsf-organization-role-1.0.0.xml => dsf-organization-role-2.0.0.xml} (83%) create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-organization-role-2.0.0.xml.post delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-practitioner-role-1.0.0.xml.post rename dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/{dsf-practitioner-role-1.0.0.xml => dsf-practitioner-role-2.0.0.xml} (83%) create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-practitioner-role-2.0.0.xml.post rename dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/{dsf-process-authorization-recipient-1.0.0.xml => dsf-process-authorization-recipient-2.0.0.xml} (87%) rename dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/{dsf-process-authorization-recipient-1.0.0.xml.post => dsf-process-authorization-recipient-2.0.0.xml.post} (82%) rename dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/{dsf-process-authorization-requester-1.0.0.xml => dsf-process-authorization-requester-2.0.0.xml} (91%) rename dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/{dsf-process-authorization-requester-1.0.0.xml.post => dsf-process-authorization-requester-2.0.0.xml.post} (82%) delete mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-read-access-tag-1.0.0.xml.post rename dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/{dsf-read-access-tag-1.0.0.xml => dsf-read-access-tag-2.0.0.xml} (82%) create mode 100644 dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-read-access-tag-2.0.0.xml.post diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-bpmn-message-1.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-bpmn-message-1.0.0.xml deleted file mode 100644 index 1151a2666..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-bpmn-message-1.0.0.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - <status value="active"/> - <experimental value="false"/> - <date value="2023-06-28"/> - <publisher value="DSF"/> - <description value="CodeSystem with standard BPMN message values for Task resources"/> - <caseSensitive value="true"/> - <hierarchyMeaning value="grouped-by"/> - <versionNeeded value="false"/> - <content value="complete"/> - <count value="4"/> - <concept> - <code value="message-name"/> - <display value="Message Name"/> - <definition value="BPMN 2.0 message event name"/> - </concept> - <concept> - <code value="business-key"/> - <display value="Business Key"/> - <definition value="Camunda business key used to identify process instances"/> - </concept> - <concept> - <code value="correlation-key"/> - <display value="Correlation Key"/> - <definition - value="DSF BPE correlation key used to identify multi-instance instances used for messaging multiple targets"/> - </concept> - <concept> - <code value="error"/> - <display value="Error"/> - <definition value="Explaining why this task failed"/> - </concept> -</CodeSystem> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-bpmn-message-1.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-bpmn-message-1.0.0.xml.post deleted file mode 100644 index 26b40acec..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-bpmn-message-1.0.0.xml.post +++ /dev/null @@ -1 +0,0 @@ -url=http://dsf.dev/fhir/CodeSystem/bpmn-message&version=1.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-bpmn-message-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-bpmn-message-2.0.0.xml new file mode 100644 index 000000000..0fa097890 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-bpmn-message-2.0.0.xml @@ -0,0 +1,44 @@ +<CodeSystem xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/code-system" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/CodeSystem/bpmn-message" /> + <version value="2.0.0" /> + <name value="DsfBpmnMessage" /> + <title value="DSF BPMN message values" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <publisher value="DSF" /> + <description value="CodeSystem with standard BPMN message values for Task resources" /> + <caseSensitive value="true" /> + <hierarchyMeaning value="grouped-by" /> + <versionNeeded value="false" /> + <content value="complete" /> + <count value="4" /> + <concept> + <code value="message-name" /> + <display value="Message Name" /> + <definition value="BPMN 2.0 message event name" /> + </concept> + <concept> + <code value="business-key" /> + <display value="Business Key" /> + <definition value="Camunda business key used to identify process instances" /> + </concept> + <concept> + <code value="correlation-key" /> + <display value="Correlation Key" /> + <definition value="DSF BPE correlation key used to identify multi-instance instances used for messaging multiple targets" /> + </concept> + <concept> + <code value="error" /> + <display value="Error" /> + <definition value="Explaining why this task failed" /> + </concept> +</CodeSystem> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-bpmn-message-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-bpmn-message-2.0.0.xml.post new file mode 100644 index 000000000..9185c0184 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-bpmn-message-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/CodeSystem/bpmn-message&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-1.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-1.0.0.xml deleted file mode 100644 index 7774eda8d..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-1.0.0.xml +++ /dev/null @@ -1,60 +0,0 @@ -<CodeSystem xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> - <meta> - <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> - <code value="ALL"/> - </tag> - </meta> - <url value="http://dsf.dev/fhir/CodeSystem/organization-role"/> - <version value="1.0.0"/> - <name value="DSF_Organization_Role"/> - <title value="DSF Organization Role"/> - <status value="active"/> - <experimental value="false"/> - <date value="2023-06-28"/> - <publisher value="DSF"/> - <description value="CodeSystem with DSF organization roles used in OrganizationAffiliation resources"/> - <caseSensitive value="true"/> - <hierarchyMeaning value="grouped-by"/> - <versionNeeded value="false"/> - <content value="complete"/> - <count value="9"/> - <concept> - <code value="UAC"/> - <display value="Use-and-Access Committee"/> - </concept> - <concept> - <code value="COS"/> - <display value="Coordinating Site"/> - </concept> - <concept> - <code value="CRR"/> - <display value="Central Research Repository"/> - </concept> - <concept> - <code value="DIC"/> - <display value="Data Integration Center"/> - </concept> - <concept> - <code value="DMS"/> - <display value="Data Management Site"/> - </concept> - <concept> - <code value="DTS"/> - <display value="Data Transfer Site"/> - </concept> - <concept> - <code value="HRP"/> - <display value="Health Research Platform"/> - </concept> - <concept> - <code value="TTP"/> - <display value="Trusted Third Party"/> - </concept> - <concept> - <code value="AMS"/> - <display value="Allowlist Management Site"/> - </concept> -</CodeSystem> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-1.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-1.0.0.xml.post deleted file mode 100644 index 5b9a23843..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-1.0.0.xml.post +++ /dev/null @@ -1 +0,0 @@ -url=http://dsf.dev/fhir/CodeSystem/organization-role&version=1.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-2.0.0.xml new file mode 100644 index 000000000..76ef87bef --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-2.0.0.xml @@ -0,0 +1,60 @@ +<CodeSystem xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/code-system" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/CodeSystem/organization-role" /> + <version value="2.0.0" /> + <name value="DSF_Organization_Role" /> + <title value="DSF Organization Role" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <publisher value="DSF" /> + <description value="CodeSystem with DSF organization roles used in OrganizationAffiliation resources" /> + <caseSensitive value="true" /> + <hierarchyMeaning value="grouped-by" /> + <versionNeeded value="false" /> + <content value="complete" /> + <count value="9" /> + <concept> + <code value="UAC" /> + <display value="Use-and-Access Committee" /> + </concept> + <concept> + <code value="COS" /> + <display value="Coordinating Site" /> + </concept> + <concept> + <code value="CRR" /> + <display value="Central Research Repository" /> + </concept> + <concept> + <code value="DIC" /> + <display value="Data Integration Center" /> + </concept> + <concept> + <code value="DMS" /> + <display value="Data Management Site" /> + </concept> + <concept> + <code value="DTS" /> + <display value="Data Transfer Site" /> + </concept> + <concept> + <code value="HRP" /> + <display value="Health Research Platform" /> + </concept> + <concept> + <code value="TTP" /> + <display value="Trusted Third Party" /> + </concept> + <concept> + <code value="AMS" /> + <display value="Allowlist Management Site" /> + </concept> +</CodeSystem> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-2.0.0.xml.post new file mode 100644 index 000000000..4a6353d05 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/CodeSystem/organization-role&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-1.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-1.0.0.xml deleted file mode 100644 index 32315632e..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-1.0.0.xml +++ /dev/null @@ -1,64 +0,0 @@ -<CodeSystem xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> - <meta> - <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> - <code value="ALL"/> - </tag> - </meta> - <url value="http://dsf.dev/fhir/CodeSystem/practitioner-role"/> - <version value="1.0.0"/> - <name value="DSF_Practitioner_Role"/> - <title value="DSF Practitioner Role"/> - <status value="active"/> - <experimental value="false"/> - <date value="2023-06-28"/> - <publisher value="DSF"/> - <description value="CodeSystem with DSF practitioner roles"/> - <caseSensitive value="true"/> - <hierarchyMeaning value="grouped-by"/> - <versionNeeded value="false"/> - <content value="complete"/> - <count value="10"/> - <concept> - <code value="UAC_USER"/> - <display value="Use-and-Access Committee Member"/> - </concept> - <concept> - <code value="COS_USER"/> - <display value="Coordinating Site Member"/> - </concept> - <concept> - <code value="CRR_USER"/> - <display value="Central Research Repository Member"/> - </concept> - <concept> - <code value="DIC_USER"/> - <display value="Data Integration Center Member"/> - </concept> - <concept> - <code value="DMS_USER"/> - <display value="Data Management Site Member"/> - </concept> - <concept> - <code value="DTS_USER"/> - <display value="Data Transfer Site Member"/> - </concept> - <concept> - <code value="HRP_USER"/> - <display value="Health Research Platform Member"/> - </concept> - <concept> - <code value="TTP_USER"/> - <display value="Trusted Third Party Member"/> - </concept> - <concept> - <code value="AMS_USER"/> - <display value="Allowlist Management Site Member"/> - </concept> - <concept> - <code value="DSF_ADMIN" /> - <display value="DSF Administrator"/> - </concept> -</CodeSystem> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-1.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-1.0.0.xml.post deleted file mode 100644 index 5b9a23843..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-1.0.0.xml.post +++ /dev/null @@ -1 +0,0 @@ -url=http://dsf.dev/fhir/CodeSystem/organization-role&version=1.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-2.0.0.xml new file mode 100644 index 000000000..e6e21a570 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-2.0.0.xml @@ -0,0 +1,64 @@ +<CodeSystem xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/code-system" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/CodeSystem/practitioner-role" /> + <version value="2.0.0" /> + <name value="DSF_Practitioner_Role" /> + <title value="DSF Practitioner Role" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <publisher value="DSF" /> + <description value="CodeSystem with DSF practitioner roles" /> + <caseSensitive value="true" /> + <hierarchyMeaning value="grouped-by" /> + <versionNeeded value="false" /> + <content value="complete" /> + <count value="10" /> + <concept> + <code value="UAC_USER" /> + <display value="Use-and-Access Committee Member" /> + </concept> + <concept> + <code value="COS_USER" /> + <display value="Coordinating Site Member" /> + </concept> + <concept> + <code value="CRR_USER" /> + <display value="Central Research Repository Member" /> + </concept> + <concept> + <code value="DIC_USER" /> + <display value="Data Integration Center Member" /> + </concept> + <concept> + <code value="DMS_USER" /> + <display value="Data Management Site Member" /> + </concept> + <concept> + <code value="DTS_USER" /> + <display value="Data Transfer Site Member" /> + </concept> + <concept> + <code value="HRP_USER" /> + <display value="Health Research Platform Member" /> + </concept> + <concept> + <code value="TTP_USER" /> + <display value="Trusted Third Party Member" /> + </concept> + <concept> + <code value="AMS_USER" /> + <display value="Allowlist Management Site Member" /> + </concept> + <concept> + <code value="DSF_ADMIN" /> + <display value="DSF Administrator" /> + </concept> +</CodeSystem> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-2.0.0.xml.post new file mode 100644 index 000000000..fe33bf37c --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/CodeSystem/practitioner-role&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-process-authorization-1.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-process-authorization-1.0.0.xml deleted file mode 100644 index bb15acebe..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-process-authorization-1.0.0.xml +++ /dev/null @@ -1,69 +0,0 @@ -<CodeSystem xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> - <meta> - <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> - <code value="ALL"/> - </tag> - </meta> - <url value="http://dsf.dev/fhir/CodeSystem/process-authorization"/> - <version value="1.0.0"/> - <name value="DSF_Process_Authorization"/> - <title value="DSF Process Authorization"/> - <status value="active"/> - <experimental value="false"/> - <date value="2023-06-28"/> - <publisher value="DSF"/> - <description value="CodeSystem with proces authorization codes"/> - <caseSensitive value="true"/> - <hierarchyMeaning value="grouped-by"/> - <versionNeeded value="false"/> - <content value="complete"/> - <count value="9"/> - <concept> - <code value="LOCAL_ORGANIZATION"/> - <display value="LOCAL_ORGANIZATION"/> - <definition value="Process authorization for a local organization specified via extension http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-organization"/> - </concept> - <concept> - <code value="LOCAL_ORGANIZATION_PRACTITIONER"/> - <display value="LOCAL_ORGANIZATION_PRACTITIONER"/> - <definition value="Process authorization for local users with a specific practitioner role in an organization specified via extension http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-organization-practitioner"/> - </concept> - <concept> - <code value="REMOTE_ORGANIZATION"/> - <display value="REMOTE_ORGANIZATION"/> - <definition value="Process authorization for a remote organization specified via extension http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-organization"/> - </concept> - <concept> - <code value="LOCAL_ROLE"/> - <display value="LOCAL_ROLE"/> - <definition value="Process authorization for a local parent organization member with a role specified via extension http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-parent-organization-role"/> - </concept> - <concept> - <code value="LOCAL_ROLE_PRACTITIONER"/> - <display value="LOCAL_ROLE_PRACTITIONER"/> - <definition value="Process authorization for local users with a specific practitioner role in a parent organization member with a role specified via extension http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-parent-organization-role-practitioner"/> - </concept> - <concept> - <code value="REMOTE_ROLE"/> - <display value="REMOTE_ROLE"/> - <definition value="Process authorization for a remote parent organization member with a role specified via extension http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-parent-organization-role"/> - </concept> - <concept> - <code value="LOCAL_ALL"/> - <display value="LOCAL_ALL"/> - <definition value="Process authorization for all local organizations"/> - </concept> - <concept> - <code value="LOCAL_ALL_PRACTITIONER"/> - <display value="LOCAL_ALL_PRACTITIONER"/> - <definition value="Process authorization for all local users with a specific practitioner role specified via extension http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-practitioner"/> - </concept> - <concept> - <code value="REMOTE_ALL"/> - <display value="REMOTE_ALL"/> - <definition value="Process authorization for all remote organizations"/> - </concept> -</CodeSystem> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-process-authorization-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-process-authorization-2.0.0.xml new file mode 100644 index 000000000..ed01a4515 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-process-authorization-2.0.0.xml @@ -0,0 +1,76 @@ +<CodeSystem xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/code-system" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/CodeSystem/process-authorization" /> + <version value="2.0.0" /> + <name value="DSF_Process_Authorization" /> + <title value="DSF Process Authorization" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <publisher value="DSF" /> + <description value="CodeSystem with proces authorization codes" /> + <caseSensitive value="true" /> + <hierarchyMeaning value="grouped-by" /> + <versionNeeded value="false" /> + <content value="complete" /> + <count value="9" /> + <concept> + <code value="LOCAL_ORGANIZATION" /> + <display value="LOCAL_ORGANIZATION" /> + <definition + value="Process authorization for a local organization specified via extension http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-organization" /> + </concept> + <concept> + <code value="LOCAL_ORGANIZATION_PRACTITIONER" /> + <display value="LOCAL_ORGANIZATION_PRACTITIONER" /> + <definition + value="Process authorization for local users with a specific practitioner role in an organization specified via extension http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-organization-practitioner" /> + </concept> + <concept> + <code value="REMOTE_ORGANIZATION" /> + <display value="REMOTE_ORGANIZATION" /> + <definition + value="Process authorization for a remote organization specified via extension http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-organization" /> + </concept> + <concept> + <code value="LOCAL_ROLE" /> + <display value="LOCAL_ROLE" /> + <definition + value="Process authorization for a local parent organization member with a role specified via extension http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-parent-organization-role" /> + </concept> + <concept> + <code value="LOCAL_ROLE_PRACTITIONER" /> + <display value="LOCAL_ROLE_PRACTITIONER" /> + <definition + value="Process authorization for local users with a specific practitioner role in a parent organization member with a role specified via extension http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-parent-organization-role-practitioner" /> + </concept> + <concept> + <code value="REMOTE_ROLE" /> + <display value="REMOTE_ROLE" /> + <definition + value="Process authorization for a remote parent organization member with a role specified via extension http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-parent-organization-role" /> + </concept> + <concept> + <code value="LOCAL_ALL" /> + <display value="LOCAL_ALL" /> + <definition value="Process authorization for all local organizations" /> + </concept> + <concept> + <code value="LOCAL_ALL_PRACTITIONER" /> + <display value="LOCAL_ALL_PRACTITIONER" /> + <definition + value="Process authorization for all local users with a specific practitioner role specified via extension http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-practitioner" /> + </concept> + <concept> + <code value="REMOTE_ALL" /> + <display value="REMOTE_ALL" /> + <definition value="Process authorization for all remote organizations" /> + </concept> +</CodeSystem> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-process-authorization-1.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-process-authorization-2.0.0.xml.post similarity index 91% rename from dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-process-authorization-1.0.0.xml.post rename to dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-process-authorization-2.0.0.xml.post index 40793ce51..0aafb1bd4 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-process-authorization-1.0.0.xml.post +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-process-authorization-2.0.0.xml.post @@ -1 +1 @@ -url=http://dsf.dev/fhir/CodeSystem/process-authorization&version=1.0.0 \ No newline at end of file +url=http://dsf.dev/fhir/CodeSystem/process-authorization&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-read-access-tag-1.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-read-access-tag-1.0.0.xml deleted file mode 100644 index 14eee4327..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-read-access-tag-1.0.0.xml +++ /dev/null @@ -1,44 +0,0 @@ -<CodeSystem xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> - <meta> - <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> - <code value="ALL"/> - </tag> - </meta> - <url value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> - <version value="1.0.0"/> - <name value="DSF_Read_Access_Tag"/> - <title value="DSF Read Access Tag"/> - <status value="active"/> - <experimental value="false"/> - <date value="2023-06-28"/> - <publisher value="DSF"/> - <description value="CodeSystem with read access tags"/> - <caseSensitive value="true"/> - <hierarchyMeaning value="grouped-by"/> - <versionNeeded value="false"/> - <content value="complete"/> - <count value="4"/> - <concept> - <code value="LOCAL"/> - <display value="Local"/> - <definition value="Read access for local users"/> - </concept> - <concept> - <code value="ORGANIZATION"/> - <display value="Organization"/> - <definition value="Read access for organization specified via extension http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization"/> - </concept> - <concept> - <code value="ROLE"/> - <display value="Role"/> - <definition value="Read access for member organizations with role in consortium (parent organization) specified via extension http://dsf.dev/fhir/StructureDefinition/extension-read-access-consortium-role"/> - </concept> - <concept> - <code value="ALL"/> - <display value="All"/> - <definition value="Read access for remote and local users"/> - </concept> -</CodeSystem> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-read-access-tag-1.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-read-access-tag-1.0.0.xml.post deleted file mode 100644 index 166e6c22c..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-read-access-tag-1.0.0.xml.post +++ /dev/null @@ -1 +0,0 @@ -url=http://dsf.dev/fhir/CodeSystem/read-access-tag&version=1.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-read-access-tag-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-read-access-tag-2.0.0.xml new file mode 100644 index 000000000..63ed65b8f --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-read-access-tag-2.0.0.xml @@ -0,0 +1,46 @@ +<CodeSystem xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/code-system" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <version value="2.0.0" /> + <name value="DSF_Read_Access_Tag" /> + <title value="DSF Read Access Tag" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <publisher value="DSF" /> + <description value="CodeSystem with read access tags" /> + <caseSensitive value="true" /> + <hierarchyMeaning value="grouped-by" /> + <versionNeeded value="false" /> + <content value="complete" /> + <count value="4" /> + <concept> + <code value="LOCAL" /> + <display value="Local" /> + <definition value="Read access for local users" /> + </concept> + <concept> + <code value="ORGANIZATION" /> + <display value="Organization" /> + <definition + value="Read access for organization specified via extension http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization" /> + </concept> + <concept> + <code value="ROLE" /> + <display value="Role" /> + <definition + value="Read access for member organizations with role in consortium (parent organization) specified via extension http://dsf.dev/fhir/StructureDefinition/extension-read-access-consortium-role" /> + </concept> + <concept> + <code value="ALL" /> + <display value="All" /> + <definition value="Read access for remote and local users" /> + </concept> +</CodeSystem> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-read-access-tag-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-read-access-tag-2.0.0.xml.post new file mode 100644 index 000000000..4ec750f28 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-read-access-tag-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/CodeSystem/read-access-tag&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/urn_ietf_bcp_13.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/urn_ietf_bcp_13.xml index 1121d2360..e950f22f6 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/urn_ietf_bcp_13.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/urn_ietf_bcp_13.xml @@ -1,10769 +1,11043 @@ -<CodeSystem xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<CodeSystem xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/code-system" /> <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> - <code value="ALL"/> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> </tag> </meta> - <url value="urn:ietf:bcp:13"/> - <version value="4.0.1"/> - <name value="IANA_Media_Types"/> - <title value="IANA Media Types"/> - <status value="active"/> - <experimental value="false"/> - <date value="2025-01-16"/> - <publisher value="IANA"/> - <description value="Multipurpose Internet Mail Extensions (MIME) and Media Types as published by IANA at https://www.iana.org/assignments/media-types/media-types.xml"/> - <caseSensitive value="true"/> - <hierarchyMeaning value="grouped-by"/> - <versionNeeded value="false"/> - <content value="complete"/> - <count value="2149"/> + <url value="urn:ietf:bcp:13" /> + <version value="4.0.1" /> + <name value="IANA_Media_Types" /> + <title value="IANA Media Types" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-17" /> + <publisher value="IANA" /> + <description + value="Multipurpose Internet Mail Extensions (MIME) and Media Types as published by IANA at https://www.iana.org/assignments/media-types/media-types.xml" /> + <caseSensitive value="true" /> + <hierarchyMeaning value="grouped-by" /> + <versionNeeded value="false" /> + <content value="complete" /> + <count value="2203" /> <concept> - <code value="application/1d-interleaved-parityfec"/> - <display value="1d-interleaved-parityfec"/> - <definition value="As defined by rfc6015"/> + <code value="application/1d-interleaved-parityfec" /> + <display value="1d-interleaved-parityfec" /> + <definition value="As defined by rfc6015" /> </concept> <concept> - <code value="application/3gpdash-qoe-report+xml"/> - <display value="3gpdash-qoe-report+xml"/> - <definition value="As defined by 3GPP, and Ozgur Oyman"/> + <code value="application/3gpdash-qoe-report+xml" /> + <display value="3gpdash-qoe-report+xml" /> + <definition value="As defined by 3GPP, and Ozgur Oyman" /> </concept> <concept> - <code value="application/3gppHal+json"/> - <display value="3gppHal+json"/> - <definition value="As defined by 3GPP, and Ulrich Wiehe"/> + <code value="application/3gppHal+json" /> + <display value="3gppHal+json" /> + <definition value="As defined by 3GPP, and Ulrich Wiehe" /> </concept> <concept> - <code value="application/3gppHalForms+json"/> - <display value="3gppHalForms+json"/> - <definition value="As defined by 3GPP, and Ulrich Wiehe"/> + <code value="application/3gppHalForms+json" /> + <display value="3gppHalForms+json" /> + <definition value="As defined by 3GPP, and Ulrich Wiehe" /> </concept> <concept> - <code value="application/3gpp-ims+xml"/> - <display value="3gpp-ims+xml"/> - <definition value="As defined by 3GPP, and John M Meredith"/> + <code value="application/3gpp-ims+xml" /> + <display value="3gpp-ims+xml" /> + <definition value="As defined by 3GPP, and John M Meredith" /> </concept> <concept> - <code value="application/A2L"/> - <display value="A2L"/> - <definition value="As defined by ASAM, and Thomas Thomsen"/> + <code value="application/3gpp-mbs-object-manifest+json" /> + <display value="3gpp-mbs-object-manifest+json" /> + <definition value="As defined by 3GPP TSG SA WG4, and Dongwook Kim" /> </concept> <concept> - <code value="application/ace-groupcomm+cbor"/> - <display value="ace-groupcomm+cbor"/> - <definition value="As defined by rfc9594"/> + <code value="application/3gpp-mbs-user-service-descriptions+json" /> + <display value="3gpp-mbs-user-service-descriptions+json" /> + <definition value="As defined by 3GPP TSG SA WG4, and Dongwook Kim" /> </concept> <concept> - <code value="application/ace-trl+cbor"/> - <display value="ace-trl+cbor"/> - <definition value="As defined by RFC-ietf-ace-revoked-token-notification-09"/> + <code value="application/A2L" /> + <display value="A2L" /> + <definition value="As defined by ASAM, and Thomas Thomsen" /> </concept> <concept> - <code value="application/ace+cbor"/> - <display value="ace+cbor"/> - <definition value="As defined by rfc9200"/> + <code value="application/ace-groupcomm+cbor" /> + <display value="ace-groupcomm+cbor" /> + <definition value="As defined by rfc9594" /> </concept> <concept> - <code value="application/ace+json"/> - <display value="ace+json"/> - <definition value="As defined by rfc9431"/> + <code value="application/ace-trl+cbor" /> + <display value="ace-trl+cbor" /> + <definition value="As defined by rfc9770" /> </concept> <concept> - <code value="application/activemessage"/> - <display value="activemessage"/> - <definition value="As defined by Ehud Shapiro"/> + <code value="application/ace+cbor" /> + <display value="ace+cbor" /> + <definition value="As defined by rfc9200" /> </concept> <concept> - <code value="application/activity+json"/> - <display value="activity+json"/> - <definition value="As defined by W3C, and Benjamin Goering"/> + <code value="application/ace+json" /> + <display value="ace+json" /> + <definition value="As defined by rfc9431" /> </concept> <concept> - <code value="application/aif+cbor"/> - <display value="aif+cbor"/> - <definition value="As defined by rfc9237"/> + <code value="application/activemessage" /> + <display value="activemessage" /> + <definition value="As defined by Ehud Shapiro" /> </concept> <concept> - <code value="application/aif+json"/> - <display value="aif+json"/> - <definition value="As defined by rfc9237"/> + <code value="application/activity+json" /> + <display value="activity+json" /> + <definition value="As defined by W3C, and Benjamin Goering" /> </concept> <concept> - <code value="application/alto-cdni+json"/> - <display value="alto-cdni+json"/> - <definition value="As defined by rfc9241"/> + <code value="application/aif+cbor" /> + <display value="aif+cbor" /> + <definition value="As defined by rfc9237" /> </concept> <concept> - <code value="application/alto-cdnifilter+json"/> - <display value="alto-cdnifilter+json"/> - <definition value="As defined by rfc9241"/> + <code value="application/aif+json" /> + <display value="aif+json" /> + <definition value="As defined by rfc9237" /> </concept> <concept> - <code value="application/alto-costmap+json"/> - <display value="alto-costmap+json"/> - <definition value="As defined by rfc7285"/> + <code value="application/alto-cdni+json" /> + <display value="alto-cdni+json" /> + <definition value="As defined by rfc9241" /> </concept> <concept> - <code value="application/alto-costmapfilter+json"/> - <display value="alto-costmapfilter+json"/> - <definition value="As defined by rfc7285"/> + <code value="application/alto-cdnifilter+json" /> + <display value="alto-cdnifilter+json" /> + <definition value="As defined by rfc9241" /> </concept> <concept> - <code value="application/alto-directory+json"/> - <display value="alto-directory+json"/> - <definition value="As defined by rfc7285"/> + <code value="application/alto-costmap+json" /> + <display value="alto-costmap+json" /> + <definition value="As defined by rfc7285" /> </concept> <concept> - <code value="application/alto-endpointprop+json"/> - <display value="alto-endpointprop+json"/> - <definition value="As defined by rfc7285"/> + <code value="application/alto-costmapfilter+json" /> + <display value="alto-costmapfilter+json" /> + <definition value="As defined by rfc7285" /> </concept> <concept> - <code value="application/alto-endpointpropparams+json"/> - <display value="alto-endpointpropparams+json"/> - <definition value="As defined by rfc7285"/> + <code value="application/alto-directory+json" /> + <display value="alto-directory+json" /> + <definition value="As defined by rfc7285" /> </concept> <concept> - <code value="application/alto-endpointcost+json"/> - <display value="alto-endpointcost+json"/> - <definition value="As defined by rfc7285"/> + <code value="application/alto-endpointprop+json" /> + <display value="alto-endpointprop+json" /> + <definition value="As defined by rfc7285" /> </concept> <concept> - <code value="application/alto-endpointcostparams+json"/> - <display value="alto-endpointcostparams+json"/> - <definition value="As defined by rfc7285"/> + <code value="application/alto-endpointpropparams+json" /> + <display value="alto-endpointpropparams+json" /> + <definition value="As defined by rfc7285" /> </concept> <concept> - <code value="application/alto-error+json"/> - <display value="alto-error+json"/> - <definition value="As defined by rfc7285"/> + <code value="application/alto-endpointcost+json" /> + <display value="alto-endpointcost+json" /> + <definition value="As defined by rfc7285" /> </concept> <concept> - <code value="application/alto-networkmapfilter+json"/> - <display value="alto-networkmapfilter+json"/> - <definition value="As defined by rfc7285"/> + <code value="application/alto-endpointcostparams+json" /> + <display value="alto-endpointcostparams+json" /> + <definition value="As defined by rfc7285" /> </concept> <concept> - <code value="application/alto-networkmap+json"/> - <display value="alto-networkmap+json"/> - <definition value="As defined by rfc7285"/> + <code value="application/alto-error+json" /> + <display value="alto-error+json" /> + <definition value="As defined by rfc7285" /> </concept> <concept> - <code value="application/alto-propmap+json"/> - <display value="alto-propmap+json"/> - <definition value="As defined by rfc9240"/> + <code value="application/alto-networkmapfilter+json" /> + <display value="alto-networkmapfilter+json" /> + <definition value="As defined by rfc7285" /> </concept> <concept> - <code value="application/alto-propmapparams+json"/> - <display value="alto-propmapparams+json"/> - <definition value="As defined by rfc9240"/> + <code value="application/alto-networkmap+json" /> + <display value="alto-networkmap+json" /> + <definition value="As defined by rfc7285" /> </concept> <concept> - <code value="application/alto-tips+json"/> - <display value="alto-tips+json"/> - <definition value="As defined by rfc9569"/> + <code value="application/alto-propmap+json" /> + <display value="alto-propmap+json" /> + <definition value="As defined by rfc9240" /> </concept> <concept> - <code value="application/alto-tipsparams+json"/> - <display value="alto-tipsparams+json"/> - <definition value="As defined by rfc9569"/> + <code value="application/alto-propmapparams+json" /> + <display value="alto-propmapparams+json" /> + <definition value="As defined by rfc9240" /> </concept> <concept> - <code value="application/alto-updatestreamcontrol+json"/> - <display value="alto-updatestreamcontrol+json"/> - <definition value="As defined by rfc8895"/> + <code value="application/alto-tips+json" /> + <display value="alto-tips+json" /> + <definition value="As defined by rfc9569" /> </concept> <concept> - <code value="application/alto-updatestreamparams+json"/> - <display value="alto-updatestreamparams+json"/> - <definition value="As defined by rfc8895"/> + <code value="application/alto-tipsparams+json" /> + <display value="alto-tipsparams+json" /> + <definition value="As defined by rfc9569" /> </concept> <concept> - <code value="application/AML"/> - <display value="AML"/> - <definition value="As defined by ASAM, and Thomas Thomsen"/> + <code value="application/alto-updatestreamcontrol+json" /> + <display value="alto-updatestreamcontrol+json" /> + <definition value="As defined by rfc8895" /> </concept> <concept> - <code value="application/andrew-inset"/> - <display value="andrew-inset"/> - <definition value="As defined by Nathaniel Borenstein"/> + <code value="application/alto-updatestreamparams+json" /> + <display value="alto-updatestreamparams+json" /> + <definition value="As defined by rfc8895" /> </concept> <concept> - <code value="application/applefile"/> - <display value="applefile"/> - <definition value="As defined by Patrik Faltstrom"/> + <code value="application/AML" /> + <display value="AML" /> + <definition value="As defined by ASAM, and Thomas Thomsen" /> </concept> <concept> - <code value="application/at+jwt"/> - <display value="at+jwt"/> - <definition value="As defined by rfc9068"/> + <code value="application/andrew-inset" /> + <display value="andrew-inset" /> + <definition value="As defined by Nathaniel Borenstein" /> </concept> <concept> - <code value="application/ATF"/> - <display value="ATF"/> - <definition value="As defined by ASAM, and Thomas Thomsen"/> + <code value="application/applefile" /> + <display value="applefile" /> + <definition value="As defined by Patrik Faltstrom" /> </concept> <concept> - <code value="application/ATFX"/> - <display value="ATFX"/> - <definition value="As defined by ASAM, and Thomas Thomsen"/> + <code value="application/at+jwt" /> + <display value="at+jwt" /> + <definition value="As defined by rfc9068" /> </concept> <concept> - <code value="application/atom+xml"/> - <display value="atom+xml"/> - <definition value="As defined by rfc4287, and rfc5023"/> + <code value="application/ATF" /> + <display value="ATF" /> + <definition value="As defined by ASAM, and Thomas Thomsen" /> </concept> <concept> - <code value="application/atomcat+xml"/> - <display value="atomcat+xml"/> - <definition value="As defined by rfc5023"/> + <code value="application/ATFX" /> + <display value="ATFX" /> + <definition value="As defined by ASAM, and Thomas Thomsen" /> </concept> <concept> - <code value="application/atomdeleted+xml"/> - <display value="atomdeleted+xml"/> - <definition value="As defined by rfc6721"/> + <code value="application/atom+xml" /> + <display value="atom+xml" /> + <definition value="As defined by rfc4287, and rfc5023" /> </concept> <concept> - <code value="application/atomicmail"/> - <display value="atomicmail"/> - <definition value="As defined by Nathaniel Borenstein"/> + <code value="application/atomcat+xml" /> + <display value="atomcat+xml" /> + <definition value="As defined by rfc5023" /> </concept> <concept> - <code value="application/atomsvc+xml"/> - <display value="atomsvc+xml"/> - <definition value="As defined by rfc5023"/> + <code value="application/atomdeleted+xml" /> + <display value="atomdeleted+xml" /> + <definition value="As defined by rfc6721" /> </concept> <concept> - <code value="application/atsc-dwd+xml"/> - <display value="atsc-dwd+xml"/> - <definition value="As defined by ATSC"/> + <code value="application/atomicmail" /> + <display value="atomicmail" /> + <definition value="As defined by Nathaniel Borenstein" /> </concept> <concept> - <code value="application/atsc-dynamic-event-message"/> - <display value="atsc-dynamic-event-message"/> - <definition value="As defined by ATSC"/> + <code value="application/atomsvc+xml" /> + <display value="atomsvc+xml" /> + <definition value="As defined by rfc5023" /> </concept> <concept> - <code value="application/atsc-held+xml"/> - <display value="atsc-held+xml"/> - <definition value="As defined by ATSC"/> + <code value="application/atsc-dwd+xml" /> + <display value="atsc-dwd+xml" /> + <definition value="As defined by ATSC" /> </concept> <concept> - <code value="application/atsc-rdt+json"/> - <display value="atsc-rdt+json"/> - <definition value="As defined by ATSC"/> + <code value="application/atsc-dynamic-event-message" /> + <display value="atsc-dynamic-event-message" /> + <definition value="As defined by ATSC" /> </concept> <concept> - <code value="application/atsc-rsat+xml"/> - <display value="atsc-rsat+xml"/> - <definition value="As defined by ATSC"/> + <code value="application/atsc-held+xml" /> + <display value="atsc-held+xml" /> + <definition value="As defined by ATSC" /> </concept> <concept> - <code value="application/ATXML"/> - <display value="ATXML"/> - <definition value="As defined by ASAM, and Thomas Thomsen"/> + <code value="application/atsc-rdt+json" /> + <display value="atsc-rdt+json" /> + <definition value="As defined by ATSC" /> </concept> <concept> - <code value="application/auth-policy+xml"/> - <display value="auth-policy+xml"/> - <definition value="As defined by rfc4745"/> + <code value="application/atsc-rsat+xml" /> + <display value="atsc-rsat+xml" /> + <definition value="As defined by ATSC" /> </concept> <concept> - <code value="application/automationml-aml+xml"/> - <display value="automationml-aml+xml"/> - <definition value="As defined by AutomationML e.V."/> + <code value="application/ATXML" /> + <display value="ATXML" /> + <definition value="As defined by ASAM, and Thomas Thomsen" /> </concept> <concept> - <code value="application/automationml-amlx+zip"/> - <display value="automationml-amlx+zip"/> - <definition value="As defined by AutomationML e.V."/> + <code value="application/auth-policy+xml" /> + <display value="auth-policy+xml" /> + <definition value="As defined by rfc4745" /> </concept> <concept> - <code value="application/bacnet-xdd+zip"/> - <display value="bacnet-xdd+zip"/> - <definition value="As defined by ASHRAE, and Dave Robin"/> + <code value="application/automationml-aml+xml" /> + <display value="automationml-aml+xml" /> + <definition value="As defined by AutomationML e.V." /> </concept> <concept> - <code value="application/batch-SMTP"/> - <display value="batch-SMTP"/> - <definition value="As defined by rfc2442"/> + <code value="application/automationml-amlx+zip" /> + <display value="automationml-amlx+zip" /> + <definition value="As defined by AutomationML e.V." /> </concept> <concept> - <code value="application/beep+xml"/> - <display value="beep+xml"/> - <definition value="As defined by rfc3080"/> + <code value="application/bacnet-xdd+zip" /> + <display value="bacnet-xdd+zip" /> + <definition value="As defined by ASHRAE, and Dave Robin" /> </concept> <concept> - <code value="application/bufr"/> - <display value="bufr"/> - <definition value="As defined by World Meterological Organization, and Anna Milan"/> + <code value="application/batch-SMTP" /> + <display value="batch-SMTP" /> + <definition value="As defined by rfc2442" /> </concept> <concept> - <code value="application/c2pa"/> - <display value="c2pa"/> - <definition value="As defined by C2PA, and Leonard Rosenthol"/> + <code value="application/beep+xml" /> + <display value="beep+xml" /> + <definition value="As defined by rfc3080" /> </concept> <concept> - <code value="application/calendar+json"/> - <display value="calendar+json"/> - <definition value="As defined by rfc7265"/> + <code value="application/bufr" /> + <display value="bufr" /> + <definition value="As defined by World Meterological Organization, and Anna Milan" /> </concept> <concept> - <code value="application/calendar+xml"/> - <display value="calendar+xml"/> - <definition value="As defined by rfc6321"/> + <code value="application/c2pa" /> + <display value="c2pa" /> + <definition value="As defined by C2PA, and Leonard Rosenthol" /> </concept> <concept> - <code value="application/call-completion"/> - <display value="call-completion"/> - <definition value="As defined by rfc6910"/> + <code value="application/calendar+json" /> + <display value="calendar+json" /> + <definition value="As defined by rfc7265" /> </concept> <concept> - <code value="application/CALS-1840"/> - <display value="CALS-1840"/> - <definition value="As defined by rfc1895"/> + <code value="application/calendar+xml" /> + <display value="calendar+xml" /> + <definition value="As defined by rfc6321" /> </concept> <concept> - <code value="application/captive+json"/> - <display value="captive+json"/> - <definition value="As defined by rfc8908"/> + <code value="application/call-completion" /> + <display value="call-completion" /> + <definition value="As defined by rfc6910" /> </concept> <concept> - <code value="application/cbor"/> - <display value="cbor"/> - <definition value="As defined by rfc8949"/> + <code value="application/CALS-1840" /> + <display value="CALS-1840" /> + <definition value="As defined by rfc1895" /> </concept> <concept> - <code value="application/cbor-seq"/> - <display value="cbor-seq"/> - <definition value="As defined by rfc8742"/> + <code value="application/captive+json" /> + <display value="captive+json" /> + <definition value="As defined by rfc8908" /> </concept> <concept> - <code value="application/cccex"/> - <display value="cccex"/> - <definition value="As defined by 3GPP"/> + <code value="application/cbor" /> + <display value="cbor" /> + <definition value="As defined by rfc8949" /> </concept> <concept> - <code value="application/ccmp+xml"/> - <display value="ccmp+xml"/> - <definition value="As defined by rfc6503"/> + <code value="application/cbor-seq" /> + <display value="cbor-seq" /> + <definition value="As defined by rfc8742" /> </concept> <concept> - <code value="application/ccxml+xml"/> - <display value="ccxml+xml"/> - <definition value="As defined by rfc4267"/> + <code value="application/cccex" /> + <display value="cccex" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="application/cda+xml"/> - <display value="cda+xml"/> - <definition value="As defined by HL7, and Marc Duteau"/> + <code value="application/ccmp+xml" /> + <display value="ccmp+xml" /> + <definition value="As defined by rfc6503" /> </concept> <concept> - <code value="application/CDFX+XML"/> - <display value="CDFX+XML"/> - <definition value="As defined by ASAM, and Thomas Thomsen"/> + <code value="application/ccxml+xml" /> + <display value="ccxml+xml" /> + <definition value="As defined by rfc4267" /> </concept> <concept> - <code value="application/cdmi-capability"/> - <display value="cdmi-capability"/> - <definition value="As defined by rfc6208"/> + <code value="application/cda+xml" /> + <display value="cda+xml" /> + <definition value="As defined by HL7, and Marc Duteau" /> </concept> <concept> - <code value="application/cdmi-container"/> - <display value="cdmi-container"/> - <definition value="As defined by rfc6208"/> + <code value="application/CDFX+XML" /> + <display value="CDFX+XML" /> + <definition value="As defined by ASAM, and Thomas Thomsen" /> </concept> <concept> - <code value="application/cdmi-domain"/> - <display value="cdmi-domain"/> - <definition value="As defined by rfc6208"/> + <code value="application/cdmi-capability" /> + <display value="cdmi-capability" /> + <definition value="As defined by rfc6208" /> </concept> <concept> - <code value="application/cdmi-object"/> - <display value="cdmi-object"/> - <definition value="As defined by rfc6208"/> + <code value="application/cdmi-container" /> + <display value="cdmi-container" /> + <definition value="As defined by rfc6208" /> </concept> <concept> - <code value="application/cdmi-queue"/> - <display value="cdmi-queue"/> - <definition value="As defined by rfc6208"/> + <code value="application/cdmi-domain" /> + <display value="cdmi-domain" /> + <definition value="As defined by rfc6208" /> </concept> <concept> - <code value="application/cdni"/> - <display value="cdni"/> - <definition value="As defined by rfc7736"/> + <code value="application/cdmi-object" /> + <display value="cdmi-object" /> + <definition value="As defined by rfc6208" /> </concept> <concept> - <code value="application/ce+cbor"/> - <display value="ce+cbor"/> - <definition value="As defined by TCG DICE, and Ned M. Smith"/> + <code value="application/cdmi-queue" /> + <display value="cdmi-queue" /> + <definition value="As defined by rfc6208" /> </concept> <concept> - <code value="application/CEA"/> - <display value="CEA"/> - <definition value="As defined by ASAM, and Thomas Thomsen"/> + <code value="application/cdni" /> + <display value="cdni" /> + <definition value="As defined by rfc7736" /> </concept> <concept> - <code value="application/cea-2018+xml"/> - <display value="cea-2018+xml"/> - <definition value="As defined by Gottfried Zimmermann"/> + <code value="application/ce+cbor" /> + <display value="ce+cbor" /> + <definition + value="As defined by https://trustedcomputinggroup.org/wp-content/uploads/TCG-DICE-Concise-Evidence-Binding-for-SPDM-Version-1.1-RC1 10April25.pdf, TCG DICE WG, and Ned M. Smith" /> </concept> <concept> - <code value="application/cellml+xml"/> - <display value="cellml+xml"/> - <definition value="As defined by rfc4708"/> + <code value="application/CEA" /> + <display value="CEA" /> + <definition value="As defined by ASAM, and Thomas Thomsen" /> </concept> <concept> - <code value="application/cfw"/> - <display value="cfw"/> - <definition value="As defined by rfc6230"/> + <code value="application/cea-2018+xml" /> + <display value="cea-2018+xml" /> + <definition value="As defined by Gottfried Zimmermann" /> </concept> <concept> - <code value="application/cid-edhoc+cbor-seq"/> - <display value="cid-edhoc+cbor-seq"/> - <definition value="As defined by rfc9528"/> + <code value="application/cellml+xml" /> + <display value="cellml+xml" /> + <definition value="As defined by rfc4708" /> </concept> <concept> - <code value="application/city+json"/> - <display value="city+json"/> - <definition value="As defined by OGC, and Scott Simmons"/> + <code value="application/cfw" /> + <display value="cfw" /> + <definition value="As defined by rfc6230" /> </concept> <concept> - <code value="application/city+json-seq"/> - <display value="city+json-seq"/> - <definition value="As defined by OGC, and Scott Simmons"/> + <code value="application/cid" /> + <display value="cid" /> + <definition value="As defined by W3C Verifiable Credentials WG, and Michael B Jones" /> </concept> <concept> - <code value="application/clr"/> - <display value="clr"/> - <definition value="As defined by IMS Global, and Andy Miller"/> + <code value="application/cid-edhoc+cbor-seq" /> + <display value="cid-edhoc+cbor-seq" /> + <definition value="As defined by rfc9528" /> </concept> <concept> - <code value="application/clue_info+xml"/> - <display value="clue_info+xml"/> - <definition value="As defined by rfc8846"/> + <code value="application/city+json" /> + <display value="city+json" /> + <definition value="As defined by OGC, and Scott Simmons" /> </concept> <concept> - <code value="application/clue+xml"/> - <display value="clue+xml"/> - <definition value="As defined by rfc8847"/> + <code value="application/city+json-seq" /> + <display value="city+json-seq" /> + <definition value="As defined by OGC, and Scott Simmons" /> </concept> <concept> - <code value="application/cms"/> - <display value="cms"/> - <definition value="As defined by rfc7193"/> + <code value="application/clr" /> + <display value="clr" /> + <definition value="As defined by IMS Global, and Andy Miller" /> </concept> <concept> - <code value="application/cnrp+xml"/> - <display value="cnrp+xml"/> - <definition value="As defined by rfc3367"/> + <code value="application/clue_info+xml" /> + <display value="clue_info+xml" /> + <definition value="As defined by rfc8846" /> </concept> <concept> - <code value="application/coap-group+json"/> - <display value="coap-group+json"/> - <definition value="As defined by rfc7390"/> + <code value="application/clue+xml" /> + <display value="clue+xml" /> + <definition value="As defined by rfc8847" /> </concept> <concept> - <code value="application/coap-payload"/> - <display value="coap-payload"/> - <definition value="As defined by rfc8075"/> + <code value="application/cms" /> + <display value="cms" /> + <definition value="As defined by rfc7193" /> </concept> <concept> - <code value="application/commonground"/> - <display value="commonground"/> - <definition value="As defined by David Glazer"/> + <code value="application/cnrp+xml" /> + <display value="cnrp+xml" /> + <definition value="As defined by rfc3367" /> </concept> <concept> - <code value="application/concise-problem-details+cbor"/> - <display value="concise-problem-details+cbor"/> - <definition value="As defined by rfc9290"/> + <code value="application/coap-eap" /> + <display value="coap-eap" /> + <definition value="As defined by rfc9820" /> </concept> <concept> - <code value="application/conference-info+xml"/> - <display value="conference-info+xml"/> - <definition value="As defined by rfc4575"/> + <code value="application/coap-group+json" /> + <display value="coap-group+json" /> + <definition value="As defined by rfc7390" /> </concept> <concept> - <code value="application/cpl+xml"/> - <display value="cpl+xml"/> - <definition value="As defined by rfc3880"/> + <code value="application/coap-payload" /> + <display value="coap-payload" /> + <definition value="As defined by rfc8075" /> </concept> <concept> - <code value="application/cose"/> - <display value="cose"/> - <definition value="As defined by rfc9052"/> + <code value="application/commonground" /> + <display value="commonground" /> + <definition value="As defined by David Glazer" /> </concept> <concept> - <code value="application/cose-key"/> - <display value="cose-key"/> - <definition value="As defined by rfc9052"/> + <code value="application/concise-problem-details+cbor" /> + <display value="concise-problem-details+cbor" /> + <definition value="As defined by rfc9290" /> </concept> <concept> - <code value="application/cose-key-set"/> - <display value="cose-key-set"/> - <definition value="As defined by rfc9052"/> + <code value="application/conference-info+xml" /> + <display value="conference-info+xml" /> + <definition value="As defined by rfc4575" /> </concept> <concept> - <code value="application/cose-x509"/> - <display value="cose-x509"/> - <definition value="As defined by rfc9360"/> + <code value="application/cpl+xml" /> + <display value="cpl+xml" /> + <definition value="As defined by rfc3880" /> </concept> <concept> - <code value="application/csrattrs"/> - <display value="csrattrs"/> - <definition value="As defined by rfc7030"/> + <code value="application/cose" /> + <display value="cose" /> + <definition value="As defined by rfc9052" /> </concept> <concept> - <code value="application/csta+xml"/> - <display value="csta+xml"/> - <definition value="As defined by Ecma International Helpdesk"/> + <code value="application/cose-key" /> + <display value="cose-key" /> + <definition value="As defined by rfc9052" /> </concept> <concept> - <code value="application/CSTAdata+xml"/> - <display value="CSTAdata+xml"/> - <definition value="As defined by Ecma International Helpdesk"/> + <code value="application/cose-key-set" /> + <display value="cose-key-set" /> + <definition value="As defined by rfc9052" /> </concept> <concept> - <code value="application/csvm+json"/> - <display value="csvm+json"/> - <definition value="As defined by W3C, and Ivan Herman"/> + <code value="application/cose-x509" /> + <display value="cose-x509" /> + <definition value="As defined by rfc9360" /> </concept> <concept> - <code value="application/cwl"/> - <display value="cwl"/> - <definition value="As defined by CWL Project, and Michael R. Crusoe"/> + <code value="application/csrattrs" /> + <display value="csrattrs" /> + <definition value="As defined by rfc7030" /> </concept> <concept> - <code value="application/cwl+json"/> - <display value="cwl+json"/> - <definition value="As defined by CWL Project, and Michael R. Crusoe"/> + <code value="application/csta+xml" /> + <display value="csta+xml" /> + <definition value="As defined by Ecma International Helpdesk" /> </concept> <concept> - <code value="application/cwl+yaml"/> - <display value="cwl+yaml"/> - <definition value="As defined by CWL Project, and Michael R. Crusoe"/> + <code value="application/CSTAdata+xml" /> + <display value="CSTAdata+xml" /> + <definition value="As defined by Ecma International Helpdesk" /> </concept> <concept> - <code value="application/cwt"/> - <display value="cwt"/> - <definition value="As defined by rfc8392"/> + <code value="application/csvm+json" /> + <display value="csvm+json" /> + <definition value="As defined by W3C, and Ivan Herman" /> </concept> <concept> - <code value="application/cybercash"/> - <display value="cybercash"/> - <definition value="As defined by Donald E. Eastlake 3rd"/> + <code value="application/cwl" /> + <display value="cwl" /> + <definition value="As defined by CWL Project, and Michael R. Crusoe" /> </concept> <concept> - <code value="application/dash+xml"/> - <display value="dash+xml"/> - <definition value="As defined by ISO-IEC JTC 1, and Thomas Stockhammer"/> + <code value="application/cwl+json" /> + <display value="cwl+json" /> + <definition value="As defined by CWL Project, and Michael R. Crusoe" /> </concept> <concept> - <code value="application/dash-patch+xml"/> - <display value="dash-patch+xml"/> - <definition value="As defined by ISO-IEC JTC 1"/> + <code value="application/cwl+yaml" /> + <display value="cwl+yaml" /> + <definition value="As defined by CWL Project, and Michael R. Crusoe" /> </concept> <concept> - <code value="application/dashdelta"/> - <display value="dashdelta"/> - <definition value="As defined by David Furbeck"/> + <code value="application/cwt" /> + <display value="cwt" /> + <definition value="As defined by rfc8392" /> </concept> <concept> - <code value="application/davmount+xml"/> - <display value="davmount+xml"/> - <definition value="As defined by rfc4709"/> + <code value="application/cybercash" /> + <display value="cybercash" /> + <definition value="As defined by Donald E. Eastlake 3rd" /> </concept> <concept> - <code value="application/dca-rft"/> - <display value="dca-rft"/> - <definition value="As defined by Larry Campbell"/> + <code value="application/dash+xml" /> + <display value="dash+xml" /> + <definition value="As defined by ISO-IEC JTC 1, and Thomas Stockhammer" /> </concept> <concept> - <code value="application/DCD"/> - <display value="DCD"/> - <definition value="As defined by ASAM, and Thomas Thomsen"/> + <code value="application/dash-patch+xml" /> + <display value="dash-patch+xml" /> + <definition value="As defined by ISO-IEC JTC 1" /> </concept> <concept> - <code value="application/dec-dx"/> - <display value="dec-dx"/> - <definition value="As defined by Larry Campbell"/> + <code value="application/dashdelta" /> + <display value="dashdelta" /> + <definition value="As defined by David Furbeck" /> </concept> <concept> - <code value="application/dialog-info+xml"/> - <display value="dialog-info+xml"/> - <definition value="As defined by rfc4235"/> + <code value="application/davmount+xml" /> + <display value="davmount+xml" /> + <definition value="As defined by rfc4709" /> </concept> <concept> - <code value="application/dicom"/> - <display value="dicom"/> - <definition value="As defined by rfc3240"/> + <code value="application/dca-rft" /> + <display value="dca-rft" /> + <definition value="As defined by Larry Campbell" /> </concept> <concept> - <code value="application/dicom+json"/> - <display value="dicom+json"/> - <definition value="As defined by DICOM Standard Committee, and David Clunie"/> + <code value="application/DCD" /> + <display value="DCD" /> + <definition value="As defined by ASAM, and Thomas Thomsen" /> </concept> <concept> - <code value="application/dicom+xml"/> - <display value="dicom+xml"/> - <definition value="As defined by DICOM Standard Committee, and David Clunie"/> + <code value="application/dec-dx" /> + <display value="dec-dx" /> + <definition value="As defined by Larry Campbell" /> </concept> <concept> - <code value="application/DII"/> - <display value="DII"/> - <definition value="As defined by ASAM, and Thomas Thomsen"/> + <code value="application/dialog-info+xml" /> + <display value="dialog-info+xml" /> + <definition value="As defined by rfc4235" /> </concept> <concept> - <code value="application/DIT"/> - <display value="DIT"/> - <definition value="As defined by ASAM, and Thomas Thomsen"/> + <code value="application/dicom" /> + <display value="dicom" /> + <definition value="As defined by rfc3240" /> </concept> <concept> - <code value="application/dns"/> - <display value="dns"/> - <definition value="As defined by rfc4027"/> + <code value="application/dicom+json" /> + <display value="dicom+json" /> + <definition value="As defined by DICOM Standard Committee, and David Clunie" /> </concept> <concept> - <code value="application/dns+json"/> - <display value="dns+json"/> - <definition value="As defined by rfc8427"/> + <code value="application/dicom+xml" /> + <display value="dicom+xml" /> + <definition value="As defined by DICOM Standard Committee, and David Clunie" /> </concept> <concept> - <code value="application/dns-message"/> - <display value="dns-message"/> - <definition value="As defined by rfc8484"/> + <code value="application/did" /> + <display value="did" /> + <definition value="As defined by W3C DID WG" /> </concept> <concept> - <code value="application/dots+cbor"/> - <display value="dots+cbor"/> - <definition value="As defined by rfc9132"/> + <code value="application/DII" /> + <display value="DII" /> + <definition value="As defined by ASAM, and Thomas Thomsen" /> </concept> <concept> - <code value="application/dpop+jwt"/> - <display value="dpop+jwt"/> - <definition value="As defined by rfc9449"/> + <code value="application/DIT" /> + <display value="DIT" /> + <definition value="As defined by ASAM, and Thomas Thomsen" /> </concept> <concept> - <code value="application/dskpp+xml"/> - <display value="dskpp+xml"/> - <definition value="As defined by rfc6063"/> + <code value="application/dns" /> + <display value="dns" /> + <definition value="As defined by rfc4027" /> </concept> <concept> - <code value="application/dssc+der"/> - <display value="dssc+der"/> - <definition value="As defined by rfc5698"/> + <code value="application/dns+json" /> + <display value="dns+json" /> + <definition value="As defined by rfc8427" /> </concept> <concept> - <code value="application/dssc+xml"/> - <display value="dssc+xml"/> - <definition value="As defined by rfc5698"/> + <code value="application/dns-message" /> + <display value="dns-message" /> + <definition value="As defined by rfc8484" /> </concept> <concept> - <code value="application/dvcs"/> - <display value="dvcs"/> - <definition value="As defined by rfc3029"/> + <code value="application/dots+cbor" /> + <display value="dots+cbor" /> + <definition value="As defined by rfc9132" /> </concept> <concept> - <code value="application/eat+cwt"/> - <display value="eat+cwt"/> - <definition value="As defined by RFC-ietf-rats-eat-media-type-12"/> + <code value="application/dpop+jwt" /> + <display value="dpop+jwt" /> + <definition value="As defined by rfc9449" /> </concept> <concept> - <code value="application/eat+jwt"/> - <display value="eat+jwt"/> - <definition value="As defined by RFC-ietf-rats-eat-media-type-12"/> + <code value="application/dskpp+xml" /> + <display value="dskpp+xml" /> + <definition value="As defined by rfc6063" /> </concept> <concept> - <code value="application/eat-bun+cbor"/> - <display value="eat-bun+cbor"/> - <definition value="As defined by RFC-ietf-rats-eat-media-type-12"/> + <code value="application/dssc+der" /> + <display value="dssc+der" /> + <definition value="As defined by rfc5698" /> </concept> <concept> - <code value="application/eat-bun+json"/> - <display value="eat-bun+json"/> - <definition value="As defined by RFC-ietf-rats-eat-media-type-12"/> + <code value="application/dssc+xml" /> + <display value="dssc+xml" /> + <definition value="As defined by rfc5698" /> </concept> <concept> - <code value="application/eat-ucs+cbor"/> - <display value="eat-ucs+cbor"/> - <definition value="As defined by RFC-ietf-rats-eat-media-type-12"/> + <code value="application/dvcs" /> + <display value="dvcs" /> + <definition value="As defined by rfc3029" /> </concept> <concept> - <code value="application/eat-ucs+json"/> - <display value="eat-ucs+json"/> - <definition value="As defined by RFC-ietf-rats-eat-media-type-12"/> + <code value="application/eat+cwt" /> + <display value="eat+cwt" /> + <definition value="As defined by rfc9782" /> </concept> <concept> - <code value="application/edhoc+cbor-seq"/> - <display value="edhoc+cbor-seq"/> - <definition value="As defined by rfc9528"/> + <code value="application/eat+jwt" /> + <display value="eat+jwt" /> + <definition value="As defined by rfc9782" /> </concept> <concept> - <code value="application/EDI-consent"/> - <display value="EDI-consent"/> - <definition value="As defined by rfc1767"/> + <code value="application/eat-bun+cbor" /> + <display value="eat-bun+cbor" /> + <definition value="As defined by rfc9782" /> </concept> <concept> - <code value="application/EDIFACT"/> - <display value="EDIFACT"/> - <definition value="As defined by rfc1767"/> + <code value="application/eat-bun+json" /> + <display value="eat-bun+json" /> + <definition value="As defined by rfc9782" /> </concept> <concept> - <code value="application/EDI-X12"/> - <display value="EDI-X12"/> - <definition value="As defined by rfc1767"/> + <code value="application/eat-ucs+cbor" /> + <display value="eat-ucs+cbor" /> + <definition value="As defined by rfc9782" /> </concept> <concept> - <code value="application/efi"/> - <display value="efi"/> - <definition value="As defined by UEFI Forum, and Samer El-Haj-Mahmoud"/> + <code value="application/eat-ucs+json" /> + <display value="eat-ucs+json" /> + <definition value="As defined by rfc9782" /> </concept> <concept> - <code value="application/elm+json"/> - <display value="elm+json"/> - <definition value="As defined by HL7, and Bryn Rhodes"/> + <code value="application/edhoc+cbor-seq" /> + <display value="edhoc+cbor-seq" /> + <definition value="As defined by rfc9528" /> </concept> <concept> - <code value="application/elm+xml"/> - <display value="elm+xml"/> - <definition value="As defined by HL7, and Bryn Rhodes"/> + <code value="application/EDI-consent" /> + <display value="EDI-consent" /> + <definition value="As defined by rfc1767" /> </concept> <concept> - <code value="application/EmergencyCallData.cap+xml"/> - <display value="EmergencyCallData.cap+xml"/> - <definition value="As defined by rfc8876"/> + <code value="application/EDIFACT" /> + <display value="EDIFACT" /> + <definition value="As defined by rfc1767" /> </concept> <concept> - <code value="application/EmergencyCallData.Comment+xml"/> - <display value="EmergencyCallData.Comment+xml"/> - <definition value="As defined by rfc7852"/> + <code value="application/EDI-X12" /> + <display value="EDI-X12" /> + <definition value="As defined by rfc1767" /> </concept> <concept> - <code value="application/EmergencyCallData.Control+xml"/> - <display value="EmergencyCallData.Control+xml"/> - <definition value="As defined by rfc8147"/> + <code value="application/efi" /> + <display value="efi" /> + <definition value="As defined by UEFI Forum, and Samer El-Haj-Mahmoud" /> </concept> <concept> - <code value="application/EmergencyCallData.DeviceInfo+xml"/> - <display value="EmergencyCallData.DeviceInfo+xml"/> - <definition value="As defined by rfc7852"/> + <code value="application/elm+json" /> + <display value="elm+json" /> + <definition value="As defined by HL7, and Bryn Rhodes" /> </concept> <concept> - <code value="application/EmergencyCallData.eCall.MSD"/> - <display value="EmergencyCallData.eCall.MSD"/> - <definition value="As defined by rfc8147"/> + <code value="application/elm+xml" /> + <display value="elm+xml" /> + <definition value="As defined by HL7, and Bryn Rhodes" /> </concept> <concept> - <code value="application/EmergencyCallData.LegacyESN+json"/> - <display value="EmergencyCallData.LegacyESN+json"/> - <definition value="As defined by NENA, and Randall Gellens"/> + <code value="application/EmergencyCallData.cap+xml" /> + <display value="EmergencyCallData.cap+xml" /> + <definition value="As defined by rfc8876" /> </concept> <concept> - <code value="application/EmergencyCallData.ProviderInfo+xml"/> - <display value="EmergencyCallData.ProviderInfo+xml"/> - <definition value="As defined by rfc7852"/> + <code value="application/EmergencyCallData.Comment+xml" /> + <display value="EmergencyCallData.Comment+xml" /> + <definition value="As defined by rfc7852" /> </concept> <concept> - <code value="application/EmergencyCallData.ServiceInfo+xml"/> - <display value="EmergencyCallData.ServiceInfo+xml"/> - <definition value="As defined by rfc7852"/> + <code value="application/EmergencyCallData.Control+xml" /> + <display value="EmergencyCallData.Control+xml" /> + <definition value="As defined by rfc8147" /> </concept> <concept> - <code value="application/EmergencyCallData.SubscriberInfo+xml"/> - <display value="EmergencyCallData.SubscriberInfo+xml"/> - <definition value="As defined by rfc7852"/> + <code value="application/EmergencyCallData.DeviceInfo+xml" /> + <display value="EmergencyCallData.DeviceInfo+xml" /> + <definition value="As defined by rfc7852" /> </concept> <concept> - <code value="application/EmergencyCallData.VEDS+xml"/> - <display value="EmergencyCallData.VEDS+xml"/> - <definition value="As defined by rfc8148, and 6500"/> + <code value="application/EmergencyCallData.eCall.MSD" /> + <display value="EmergencyCallData.eCall.MSD" /> + <definition value="As defined by rfc8147" /> </concept> <concept> - <code value="application/emma+xml"/> - <display value="emma+xml"/> - <definition value="As defined by W3C, http://www.w3.org/TR/2007/CR-emma-20071211/#media-type-registration, and ISO-IEC JTC 1"/> + <code value="application/EmergencyCallData.LegacyESN+json" /> + <display value="EmergencyCallData.LegacyESN+json" /> + <definition value="As defined by NENA, and Randall Gellens" /> </concept> <concept> - <code value="application/emotionml+xml"/> - <display value="emotionml+xml"/> - <definition value="As defined by W3C, and Kazuyuki Ashimura"/> + <code value="application/EmergencyCallData.ProviderInfo+xml" /> + <display value="EmergencyCallData.ProviderInfo+xml" /> + <definition value="As defined by rfc7852" /> </concept> <concept> - <code value="application/encaprtp"/> - <display value="encaprtp"/> - <definition value="As defined by rfc6849"/> + <code value="application/EmergencyCallData.ServiceInfo+xml" /> + <display value="EmergencyCallData.ServiceInfo+xml" /> + <definition value="As defined by rfc7852" /> </concept> <concept> - <code value="application/entity-statement+jwt"/> - <display value="entity-statement+jwt"/> - <definition value="As defined by OpenID Foundation Artifact Binding WG"/> + <code value="application/EmergencyCallData.SubscriberInfo+xml" /> + <display value="EmergencyCallData.SubscriberInfo+xml" /> + <definition value="As defined by rfc7852" /> </concept> <concept> - <code value="application/epp+xml"/> - <display value="epp+xml"/> - <definition value="As defined by rfc5730"/> + <code value="application/EmergencyCallData.VEDS+xml" /> + <display value="EmergencyCallData.VEDS+xml" /> + <definition value="As defined by rfc8148, and 6500" /> </concept> <concept> - <code value="application/epub+zip"/> - <display value="epub+zip"/> - <definition value="As defined by W3C, and EPUB 3 WG"/> + <code value="application/emma+xml" /> + <display value="emma+xml" /> + <definition value="As defined by W3C, http://www.w3.org/TR/2007/CR-emma-20071211/#media-type-registration, and ISO-IEC JTC 1" /> </concept> <concept> - <code value="application/eshop"/> - <display value="eshop"/> - <definition value="As defined by Steve Katz"/> + <code value="application/emotionml+xml" /> + <display value="emotionml+xml" /> + <definition value="As defined by W3C, and Kazuyuki Ashimura" /> </concept> <concept> - <code value="application/example"/> - <display value="example"/> - <definition value="As defined by rfc4735"/> + <code value="application/encaprtp" /> + <display value="encaprtp" /> + <definition value="As defined by rfc6849" /> </concept> <concept> - <code value="application/exi"/> - <display value="exi"/> - <definition value="As defined by W3C, and http://www.w3.org/TR/2009/CR-exi-20091208/#mediaTypeRegistration"/> + <code value="application/entity-statement+jwt" /> + <display value="entity-statement+jwt" /> + <definition value="As defined by OpenID Foundation Artifact Binding WG" /> </concept> <concept> - <code value="application/expect-ct-report+json"/> - <display value="expect-ct-report+json"/> - <definition value="As defined by rfc9163"/> + <code value="application/epp+xml" /> + <display value="epp+xml" /> + <definition value="As defined by rfc5730" /> </concept> <concept> - <code value="application/express"/> - <display value="express"/> - <definition value="As defined by ISO-TC 184-SC 4, and Dana Tripp"/> + <code value="application/epub+zip" /> + <display value="epub+zip" /> + <definition value="As defined by W3C, and EPUB 3 WG" /> </concept> <concept> - <code value="application/fastinfoset"/> - <display value="fastinfoset"/> - <definition value="As defined by ITU-T ASN.1 Rapporteur, and ISO-IEC JTC 1 SC 6 ASN.1 Rapporteur"/> + <code value="application/eshop" /> + <display value="eshop" /> + <definition value="As defined by Steve Katz" /> </concept> <concept> - <code value="application/fastsoap"/> - <display value="fastsoap"/> - <definition value="As defined by ITU-T ASN.1 Rapporteur, and ISO-IEC JTC 1 SC 6 ASN.1 Rapporteur"/> + <code value="application/example" /> + <display value="example" /> + <definition value="As defined by rfc4735" /> </concept> <concept> - <code value="application/fdf"/> - <display value="fdf"/> - <definition value="As defined by ISO-TC 171-SC 2, and Betsy Fanning"/> + <code value="application/exi" /> + <display value="exi" /> + <definition value="As defined by W3C, and http://www.w3.org/TR/2009/CR-exi-20091208/#mediaTypeRegistration" /> </concept> <concept> - <code value="application/fdt+xml"/> - <display value="fdt+xml"/> - <definition value="As defined by rfc6726"/> + <code value="application/expect-ct-report+json" /> + <display value="expect-ct-report+json" /> + <definition value="As defined by rfc9163" /> </concept> <concept> - <code value="application/fhir+json"/> - <display value="fhir+json"/> - <definition value="As defined by HL7, and Grahame Grieve"/> + <code value="application/express" /> + <display value="express" /> + <definition value="As defined by ISO-TC 184-SC 4, and Dana Tripp" /> </concept> <concept> - <code value="application/fhir+xml"/> - <display value="fhir+xml"/> - <definition value="As defined by HL7, and Grahame Grieve"/> + <code value="application/fastinfoset" /> + <display value="fastinfoset" /> + <definition value="As defined by ITU-T ASN.1 Rapporteur, and ISO-IEC JTC 1 SC 6 ASN.1 Rapporteur" /> </concept> <concept> - <code value="application/fits"/> - <display value="fits"/> - <definition value="As defined by rfc4047"/> + <code value="application/fastsoap" /> + <display value="fastsoap" /> + <definition value="As defined by ITU-T ASN.1 Rapporteur, and ISO-IEC JTC 1 SC 6 ASN.1 Rapporteur" /> </concept> <concept> - <code value="application/flexfec"/> - <display value="flexfec"/> - <definition value="As defined by rfc8627"/> + <code value="application/fdf" /> + <display value="fdf" /> + <definition value="As defined by ISO-TC 171-SC 2, and Betsy Fanning" /> </concept> <concept> - <code value="application/font-sfnt - DEPRECATED in favor of font/sfnt"/> - <display value="font-sfnt - DEPRECATED in favor of font/sfnt"/> - <definition value="As defined by Levantovsky, ISO-IEC JTC 1, and rfc8081"/> + <code value="application/fdt+xml" /> + <display value="fdt+xml" /> + <definition value="As defined by rfc6726" /> </concept> <concept> - <code value="application/font-tdpfr"/> - <display value="font-tdpfr"/> - <definition value="As defined by rfc3073"/> + <code value="application/fhir+json" /> + <display value="fhir+json" /> + <definition value="As defined by HL7, and Grahame Grieve" /> </concept> <concept> - <code value="application/font-woff - DEPRECATED in favor of font/woff"/> - <display value="font-woff - DEPRECATED in favor of font/woff"/> - <definition value="As defined by W3C, and rfc8081"/> + <code value="application/fhir+xml" /> + <display value="fhir+xml" /> + <definition value="As defined by HL7, and Grahame Grieve" /> </concept> <concept> - <code value="application/framework-attributes+xml"/> - <display value="framework-attributes+xml"/> - <definition value="As defined by rfc6230"/> + <code value="application/fits" /> + <display value="fits" /> + <definition value="As defined by rfc4047" /> </concept> <concept> - <code value="application/geo+json"/> - <display value="geo+json"/> - <definition value="As defined by rfc7946"/> + <code value="application/flexfec" /> + <display value="flexfec" /> + <definition value="As defined by rfc8627" /> </concept> <concept> - <code value="application/geo+json-seq"/> - <display value="geo+json-seq"/> - <definition value="As defined by rfc8142"/> + <code value="application/font-sfnt - DEPRECATED in favor of font/sfnt" /> + <display value="font-sfnt - DEPRECATED in favor of font/sfnt" /> + <definition value="As defined by Levantovsky, ISO-IEC JTC 1, and rfc8081" /> </concept> <concept> - <code value="application/geopackage+sqlite3"/> - <display value="geopackage+sqlite3"/> - <definition value="As defined by OGC, and Scott Simmons"/> + <code value="application/font-tdpfr" /> + <display value="font-tdpfr" /> + <definition value="As defined by rfc3073" /> </concept> <concept> - <code value="application/geopose+json"/> - <display value="geopose+json"/> - <definition value="As defined by OGC, and Scott Simmons"/> + <code value="application/font-woff - DEPRECATED in favor of font/woff" /> + <display value="font-woff - DEPRECATED in favor of font/woff" /> + <definition value="As defined by W3C, and rfc8081" /> </concept> <concept> - <code value="application/geoxacml+json"/> - <display value="geoxacml+json"/> - <definition value="As defined by OGC, and Scott Simmons"/> + <code value="application/framework-attributes+xml" /> + <display value="framework-attributes+xml" /> + <definition value="As defined by rfc6230" /> </concept> <concept> - <code value="application/geoxacml+xml"/> - <display value="geoxacml+xml"/> - <definition value="As defined by OGC, and Scott Simmons"/> + <code value="application/geo+json" /> + <display value="geo+json" /> + <definition value="As defined by rfc7946" /> </concept> <concept> - <code value="application/gltf-buffer"/> - <display value="gltf-buffer"/> - <definition value="As defined by Khronos, and Saurabh Bhatia"/> + <code value="application/geo+json-seq" /> + <display value="geo+json-seq" /> + <definition value="As defined by rfc8142" /> </concept> <concept> - <code value="application/gml+xml"/> - <display value="gml+xml"/> - <definition value="As defined by OGC, and Clemens Portele"/> + <code value="application/geofeed+csv" /> + <display value="geofeed+csv" /> + <definition value="As defined by rfc9877" /> </concept> <concept> - <code value="application/gnap-binding-jws"/> - <display value="gnap-binding-jws"/> - <definition value="As defined by rfc9635"/> + <code value="application/geopackage+sqlite3" /> + <display value="geopackage+sqlite3" /> + <definition value="As defined by OGC, and Scott Simmons" /> </concept> <concept> - <code value="application/gnap-binding-jwsd"/> - <display value="gnap-binding-jwsd"/> - <definition value="As defined by rfc9635"/> + <code value="application/geopose+json" /> + <display value="geopose+json" /> + <definition value="As defined by OGC, and Scott Simmons" /> </concept> <concept> - <code value="application/gnap-binding-rotation-jws"/> - <display value="gnap-binding-rotation-jws"/> - <definition value="As defined by rfc9635"/> + <code value="application/geoxacml+json" /> + <display value="geoxacml+json" /> + <definition value="As defined by OGC, and Scott Simmons" /> </concept> <concept> - <code value="application/gnap-binding-rotation-jwsd"/> - <display value="gnap-binding-rotation-jwsd"/> - <definition value="As defined by rfc9635"/> + <code value="application/geoxacml+xml" /> + <display value="geoxacml+xml" /> + <definition value="As defined by OGC, and Scott Simmons" /> </concept> <concept> - <code value="application/grib"/> - <display value="grib"/> - <definition value="As defined by World Meterological Organization, and Anna Milan"/> + <code value="application/gltf-buffer" /> + <display value="gltf-buffer" /> + <definition value="As defined by Khronos, and Saurabh Bhatia" /> </concept> <concept> - <code value="application/gzip"/> - <display value="gzip"/> - <definition value="As defined by rfc6713"/> + <code value="application/gml+xml" /> + <display value="gml+xml" /> + <definition value="As defined by OGC, and Clemens Portele" /> </concept> <concept> - <code value="application/H224"/> - <display value="H224"/> - <definition value="As defined by rfc4573"/> + <code value="application/gnap-binding-jws" /> + <display value="gnap-binding-jws" /> + <definition value="As defined by rfc9635" /> </concept> <concept> - <code value="application/held+xml"/> - <display value="held+xml"/> - <definition value="As defined by rfc5985"/> + <code value="application/gnap-binding-jwsd" /> + <display value="gnap-binding-jwsd" /> + <definition value="As defined by rfc9635" /> </concept> <concept> - <code value="application/hl7v2+xml"/> - <display value="hl7v2+xml"/> - <definition value="As defined by HL7, and Marc Duteau"/> + <code value="application/gnap-binding-rotation-jws" /> + <display value="gnap-binding-rotation-jws" /> + <definition value="As defined by rfc9635" /> </concept> <concept> - <code value="application/http"/> - <display value="http"/> - <definition value="As defined by rfc9112"/> + <code value="application/gnap-binding-rotation-jwsd" /> + <display value="gnap-binding-rotation-jwsd" /> + <definition value="As defined by rfc9635" /> </concept> <concept> - <code value="application/hyperstudio"/> - <display value="hyperstudio"/> - <definition value="As defined by Michael Domino"/> + <code value="application/grib" /> + <display value="grib" /> + <definition value="As defined by World Meterological Organization, and Anna Milan" /> </concept> <concept> - <code value="application/ibe-key-request+xml"/> - <display value="ibe-key-request+xml"/> - <definition value="As defined by rfc5408"/> + <code value="application/gzip" /> + <display value="gzip" /> + <definition value="As defined by rfc6713" /> </concept> <concept> - <code value="application/ibe-pkg-reply+xml"/> - <display value="ibe-pkg-reply+xml"/> - <definition value="As defined by rfc5408"/> + <code value="application/H224" /> + <display value="H224" /> + <definition value="As defined by rfc4573" /> </concept> <concept> - <code value="application/ibe-pp-data"/> - <display value="ibe-pp-data"/> - <definition value="As defined by rfc5408"/> + <code value="application/held+xml" /> + <display value="held+xml" /> + <definition value="As defined by rfc5985" /> </concept> <concept> - <code value="application/iges"/> - <display value="iges"/> - <definition value="As defined by Curtis Parks"/> + <code value="application/hl7v2+xml" /> + <display value="hl7v2+xml" /> + <definition value="As defined by HL7, and Marc Duteau" /> </concept> <concept> - <code value="application/im-iscomposing+xml"/> - <display value="im-iscomposing+xml"/> - <definition value="As defined by rfc3994"/> + <code value="application/http" /> + <display value="http" /> + <definition value="As defined by rfc9112" /> </concept> <concept> - <code value="application/index"/> - <display value="index"/> - <definition value="As defined by rfc2652"/> + <code value="application/hyperstudio" /> + <display value="hyperstudio" /> + <definition value="As defined by Michael Domino" /> </concept> <concept> - <code value="application/index.cmd"/> - <display value="index.cmd"/> - <definition value="As defined by rfc2652"/> + <code value="application/ibe-key-request+xml" /> + <display value="ibe-key-request+xml" /> + <definition value="As defined by rfc5408" /> </concept> <concept> - <code value="application/index.obj"/> - <display value="index.obj"/> - <definition value="As defined by rfc2652"/> + <code value="application/ibe-pkg-reply+xml" /> + <display value="ibe-pkg-reply+xml" /> + <definition value="As defined by rfc5408" /> </concept> <concept> - <code value="application/index.response"/> - <display value="index.response"/> - <definition value="As defined by rfc2652"/> + <code value="application/ibe-pp-data" /> + <display value="ibe-pp-data" /> + <definition value="As defined by rfc5408" /> </concept> <concept> - <code value="application/index.vnd"/> - <display value="index.vnd"/> - <definition value="As defined by rfc2652"/> + <code value="application/iges" /> + <display value="iges" /> + <definition value="As defined by Curtis Parks" /> </concept> <concept> - <code value="application/inkml+xml"/> - <display value="inkml+xml"/> - <definition value="As defined by Kazuyuki Ashimura"/> + <code value="application/im-iscomposing+xml" /> + <display value="im-iscomposing+xml" /> + <definition value="As defined by rfc3994" /> </concept> <concept> - <code value="application/IOTP"/> - <display value="IOTP"/> - <definition value="As defined by rfc2935"/> + <code value="application/index" /> + <display value="index" /> + <definition value="As defined by rfc2652" /> </concept> <concept> - <code value="application/ipfix"/> - <display value="ipfix"/> - <definition value="As defined by rfc5655"/> + <code value="application/index.cmd" /> + <display value="index.cmd" /> + <definition value="As defined by rfc2652" /> </concept> <concept> - <code value="application/ipp"/> - <display value="ipp"/> - <definition value="As defined by rfc8010"/> + <code value="application/index.obj" /> + <display value="index.obj" /> + <definition value="As defined by rfc2652" /> </concept> <concept> - <code value="application/ISUP"/> - <display value="ISUP"/> - <definition value="As defined by rfc3204"/> + <code value="application/index.response" /> + <display value="index.response" /> + <definition value="As defined by rfc2652" /> </concept> <concept> - <code value="application/its+xml"/> - <display value="its+xml"/> - <definition value="As defined by W3C, and ITS-IG-W3C"/> + <code value="application/index.vnd" /> + <display value="index.vnd" /> + <definition value="As defined by rfc2652" /> </concept> <concept> - <code value="application/java-archive"/> - <display value="java-archive"/> - <definition value="As defined by JCP, and Iris Clark"/> + <code value="application/inkml+xml" /> + <display value="inkml+xml" /> + <definition value="As defined by Kazuyuki Ashimura" /> </concept> <concept> - <code value="application/jf2feed+json"/> - <display value="jf2feed+json"/> - <definition value="As defined by W3C, and Ivan Herman"/> + <code value="application/IOTP" /> + <display value="IOTP" /> + <definition value="As defined by rfc2935" /> </concept> <concept> - <code value="application/jose"/> - <display value="jose"/> - <definition value="As defined by rfc7515"/> + <code value="application/ipfix" /> + <display value="ipfix" /> + <definition value="As defined by rfc5655" /> </concept> <concept> - <code value="application/jose+json"/> - <display value="jose+json"/> - <definition value="As defined by rfc7515"/> + <code value="application/ipp" /> + <display value="ipp" /> + <definition value="As defined by rfc8010" /> </concept> <concept> - <code value="application/jrd+json"/> - <display value="jrd+json"/> - <definition value="As defined by rfc7033"/> + <code value="application/ISUP" /> + <display value="ISUP" /> + <definition value="As defined by rfc3204" /> </concept> <concept> - <code value="application/jscalendar+json"/> - <display value="jscalendar+json"/> - <definition value="As defined by rfc8984"/> + <code value="application/its+xml" /> + <display value="its+xml" /> + <definition value="As defined by W3C, and ITS-IG-W3C" /> </concept> <concept> - <code value="application/jscontact+json"/> - <display value="jscontact+json"/> - <definition value="As defined by rfc9553"/> + <code value="application/java-archive" /> + <display value="java-archive" /> + <definition value="As defined by JCP, and Iris Clark" /> </concept> <concept> - <code value="application/json"/> - <display value="json"/> - <definition value="As defined by rfc8259"/> + <code value="application/jf2feed+json" /> + <display value="jf2feed+json" /> + <definition value="As defined by W3C, and Ivan Herman" /> </concept> <concept> - <code value="application/json-patch+json"/> - <display value="json-patch+json"/> - <definition value="As defined by rfc6902"/> + <code value="application/jose" /> + <display value="jose" /> + <definition value="As defined by rfc7515" /> </concept> <concept> - <code value="application/json-seq"/> - <display value="json-seq"/> - <definition value="As defined by rfc7464"/> + <code value="application/jose+json" /> + <display value="jose+json" /> + <definition value="As defined by rfc7515" /> </concept> <concept> - <code value="application/jsonpath"/> - <display value="jsonpath"/> - <definition value="As defined by rfc9535"/> + <code value="application/jrd+json" /> + <display value="jrd+json" /> + <definition value="As defined by rfc7033" /> </concept> <concept> - <code value="application/jwk+json"/> - <display value="jwk+json"/> - <definition value="As defined by rfc7517"/> + <code value="application/jscalendar+json" /> + <display value="jscalendar+json" /> + <definition value="As defined by rfc8984" /> </concept> <concept> - <code value="application/jwk-set+json"/> - <display value="jwk-set+json"/> - <definition value="As defined by rfc7517"/> + <code value="application/jscontact+json" /> + <display value="jscontact+json" /> + <definition value="As defined by rfc9553" /> </concept> <concept> - <code value="application/application/jwk-set+jwt"/> - <display value="application/jwk-set+jwt"/> - <definition value="As defined by OpenID Foundation Artifact Binding WG"/> + <code value="application/json" /> + <display value="json" /> + <definition value="As defined by rfc8259" /> </concept> <concept> - <code value="application/jwt"/> - <display value="jwt"/> - <definition value="As defined by rfc7519"/> + <code value="application/json-patch+json" /> + <display value="json-patch+json" /> + <definition value="As defined by rfc6902" /> </concept> <concept> - <code value="application/kpml-request+xml"/> - <display value="kpml-request+xml"/> - <definition value="As defined by rfc4730"/> + <code value="application/json-patch-query+json" /> + <display value="json-patch-query+json" /> + <definition value="As defined by TM Forum, and Lorna Mitchell" /> </concept> <concept> - <code value="application/kpml-response+xml"/> - <display value="kpml-response+xml"/> - <definition value="As defined by rfc4730"/> + <code value="application/json-seq" /> + <display value="json-seq" /> + <definition value="As defined by rfc7464" /> </concept> <concept> - <code value="application/ld+json"/> - <display value="ld+json"/> - <definition value="As defined by W3C, and Ivan Herman"/> + <code value="application/jsonpath" /> + <display value="jsonpath" /> + <definition value="As defined by rfc9535" /> </concept> <concept> - <code value="application/lgr+xml"/> - <display value="lgr+xml"/> - <definition value="As defined by rfc7940"/> + <code value="application/jwk+json" /> + <display value="jwk+json" /> + <definition value="As defined by rfc7517" /> </concept> <concept> - <code value="application/link-format"/> - <display value="link-format"/> - <definition value="As defined by rfc6690"/> + <code value="application/jwk-set+json" /> + <display value="jwk-set+json" /> + <definition value="As defined by rfc7517" /> </concept> <concept> - <code value="application/linkset"/> - <display value="linkset"/> - <definition value="As defined by rfc9264"/> + <code value="application/jwk-set+jwt" /> + <display value="jwk-set+jwt" /> + <definition value="As defined by OpenID Foundation Artifact Binding WG" /> </concept> <concept> - <code value="application/linkset+json"/> - <display value="linkset+json"/> - <definition value="As defined by rfc9264"/> + <code value="application/jwt" /> + <display value="jwt" /> + <definition value="As defined by rfc7519" /> </concept> <concept> - <code value="application/load-control+xml"/> - <display value="load-control+xml"/> - <definition value="As defined by rfc7200"/> + <code value="application/kb+jwt" /> + <display value="kb+jwt" /> + <definition value="As defined by RFC-ietf-oauth-selective-disclosure-jwt-22" /> </concept> <concept> - <code value="application/logout+jwt"/> - <display value="logout+jwt"/> - <definition value="As defined by OpenID Foundation Artifact Binding WG"/> + <code value="application/kbl+xml" /> + <display value="kbl+xml" /> + <definition value="As defined by prostep ivip, and Nora Tazir" /> </concept> <concept> - <code value="application/lost+xml"/> - <display value="lost+xml"/> - <definition value="As defined by rfc5222"/> + <code value="application/kpml-request+xml" /> + <display value="kpml-request+xml" /> + <definition value="As defined by rfc4730" /> </concept> <concept> - <code value="application/lostsync+xml"/> - <display value="lostsync+xml"/> - <definition value="As defined by rfc6739"/> + <code value="application/kpml-response+xml" /> + <display value="kpml-response+xml" /> + <definition value="As defined by rfc4730" /> </concept> <concept> - <code value="application/lpf+zip"/> - <display value="lpf+zip"/> - <definition value="As defined by W3C, and Ivan Herman"/> + <code value="application/ld+json" /> + <display value="ld+json" /> + <definition value="As defined by W3C, and Ivan Herman" /> </concept> <concept> - <code value="application/LXF"/> - <display value="LXF"/> - <definition value="As defined by ASAM, and Thomas Thomsen"/> + <code value="application/lgr+xml" /> + <display value="lgr+xml" /> + <definition value="As defined by rfc7940" /> </concept> <concept> - <code value="application/mac-binhex40"/> - <display value="mac-binhex40"/> - <definition value="As defined by Patrik Faltstrom"/> + <code value="application/link-format" /> + <display value="link-format" /> + <definition value="As defined by rfc6690" /> </concept> <concept> - <code value="application/macwriteii"/> - <display value="macwriteii"/> - <definition value="As defined by Paul Lindner"/> + <code value="application/linkset" /> + <display value="linkset" /> + <definition value="As defined by rfc9264" /> </concept> <concept> - <code value="application/mads+xml"/> - <display value="mads+xml"/> - <definition value="As defined by rfc6207"/> + <code value="application/linkset+json" /> + <display value="linkset+json" /> + <definition value="As defined by rfc9264" /> </concept> <concept> - <code value="application/manifest+json"/> - <display value="manifest+json"/> - <definition value="As defined by W3C, and Marcos Caceres"/> + <code value="application/load-control+xml" /> + <display value="load-control+xml" /> + <definition value="As defined by rfc7200" /> </concept> <concept> - <code value="application/marc"/> - <display value="marc"/> - <definition value="As defined by rfc2220"/> + <code value="application/logout+jwt" /> + <display value="logout+jwt" /> + <definition value="As defined by OpenID Foundation Artifact Binding WG" /> </concept> <concept> - <code value="application/marcxml+xml"/> - <display value="marcxml+xml"/> - <definition value="As defined by rfc6207"/> + <code value="application/lost+xml" /> + <display value="lost+xml" /> + <definition value="As defined by rfc5222" /> </concept> <concept> - <code value="application/mathematica"/> - <display value="mathematica"/> - <definition value="As defined by Wolfram"/> + <code value="application/lostsync+xml" /> + <display value="lostsync+xml" /> + <definition value="As defined by rfc6739" /> </concept> <concept> - <code value="application/mathml+xml"/> - <display value="mathml+xml"/> - <definition value="As defined by W3C, and http://www.w3.org/TR/MathML3/appendixb.html"/> + <code value="application/lpf+zip" /> + <display value="lpf+zip" /> + <definition value="As defined by W3C, and Ivan Herman" /> </concept> <concept> - <code value="application/mathml-content+xml"/> - <display value="mathml-content+xml"/> - <definition value="As defined by W3C, and http://www.w3.org/TR/MathML3/appendixb.html"/> + <code value="application/LXF" /> + <display value="LXF" /> + <definition value="As defined by ASAM, and Thomas Thomsen" /> </concept> <concept> - <code value="application/mathml-presentation+xml"/> - <display value="mathml-presentation+xml"/> - <definition value="As defined by W3C, and http://www.w3.org/TR/MathML3/appendixb.html"/> + <code value="application/mac-binhex40" /> + <display value="mac-binhex40" /> + <definition value="As defined by Patrik Faltstrom" /> </concept> <concept> - <code value="application/mbms-associated-procedure-description+xml"/> - <display value="mbms-associated-procedure-description+xml"/> - <definition value="As defined by 3GPP"/> + <code value="application/macwriteii" /> + <display value="macwriteii" /> + <definition value="As defined by Paul Lindner" /> </concept> <concept> - <code value="application/mbms-deregister+xml"/> - <display value="mbms-deregister+xml"/> - <definition value="As defined by 3GPP"/> + <code value="application/mads+xml" /> + <display value="mads+xml" /> + <definition value="As defined by rfc6207" /> </concept> <concept> - <code value="application/mbms-envelope+xml"/> - <display value="mbms-envelope+xml"/> - <definition value="As defined by 3GPP"/> + <code value="application/manifest+json" /> + <display value="manifest+json" /> + <definition value="As defined by W3C, and Marcos Caceres" /> </concept> <concept> - <code value="application/mbms-msk-response+xml"/> - <display value="mbms-msk-response+xml"/> - <definition value="As defined by 3GPP"/> + <code value="application/marc" /> + <display value="marc" /> + <definition value="As defined by rfc2220" /> </concept> <concept> - <code value="application/mbms-msk+xml"/> - <display value="mbms-msk+xml"/> - <definition value="As defined by 3GPP"/> + <code value="application/marcxml+xml" /> + <display value="marcxml+xml" /> + <definition value="As defined by rfc6207" /> </concept> <concept> - <code value="application/mbms-protection-description+xml"/> - <display value="mbms-protection-description+xml"/> - <definition value="As defined by 3GPP"/> + <code value="application/mathematica" /> + <display value="mathematica" /> + <definition value="As defined by Wolfram" /> </concept> <concept> - <code value="application/mbms-reception-report+xml"/> - <display value="mbms-reception-report+xml"/> - <definition value="As defined by 3GPP"/> + <code value="application/mathml+xml" /> + <display value="mathml+xml" /> + <definition value="As defined by W3C, and http://www.w3.org/TR/MathML3/appendixb.html" /> </concept> <concept> - <code value="application/mbms-register-response+xml"/> - <display value="mbms-register-response+xml"/> - <definition value="As defined by 3GPP"/> + <code value="application/mathml-content+xml" /> + <display value="mathml-content+xml" /> + <definition value="As defined by W3C, and http://www.w3.org/TR/MathML3/appendixb.html" /> </concept> <concept> - <code value="application/mbms-register+xml"/> - <display value="mbms-register+xml"/> - <definition value="As defined by 3GPP"/> + <code value="application/mathml-presentation+xml" /> + <display value="mathml-presentation+xml" /> + <definition value="As defined by W3C, and http://www.w3.org/TR/MathML3/appendixb.html" /> </concept> <concept> - <code value="application/mbms-schedule+xml"/> - <display value="mbms-schedule+xml"/> - <definition value="As defined by 3GPP, and Eric Turcotte"/> + <code value="application/mbms-associated-procedure-description+xml" /> + <display value="mbms-associated-procedure-description+xml" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="application/mbms-user-service-description+xml"/> - <display value="mbms-user-service-description+xml"/> - <definition value="As defined by 3GPP"/> + <code value="application/mbms-deregister+xml" /> + <display value="mbms-deregister+xml" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="application/mbox"/> - <display value="mbox"/> - <definition value="As defined by rfc4155"/> + <code value="application/mbms-envelope+xml" /> + <display value="mbms-envelope+xml" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="application/media_control+xml"/> - <display value="media_control+xml"/> - <definition value="As defined by rfc5168"/> + <code value="application/mbms-msk-response+xml" /> + <display value="mbms-msk-response+xml" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="application/media-policy-dataset+xml"/> - <display value="media-policy-dataset+xml"/> - <definition value="As defined by rfc6796"/> + <code value="application/mbms-msk+xml" /> + <display value="mbms-msk+xml" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="application/mediaservercontrol+xml"/> - <display value="mediaservercontrol+xml"/> - <definition value="As defined by rfc5022"/> + <code value="application/mbms-protection-description+xml" /> + <display value="mbms-protection-description+xml" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="application/merge-patch+json"/> - <display value="merge-patch+json"/> - <definition value="As defined by rfc7396"/> + <code value="application/mbms-reception-report+xml" /> + <display value="mbms-reception-report+xml" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="application/metalink4+xml"/> - <display value="metalink4+xml"/> - <definition value="As defined by rfc5854"/> + <code value="application/mbms-register-response+xml" /> + <display value="mbms-register-response+xml" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="application/mets+xml"/> - <display value="mets+xml"/> - <definition value="As defined by rfc6207"/> + <code value="application/mbms-register+xml" /> + <display value="mbms-register+xml" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="application/MF4"/> - <display value="MF4"/> - <definition value="As defined by ASAM, and Thomas Thomsen"/> + <code value="application/mbms-schedule+xml" /> + <display value="mbms-schedule+xml" /> + <definition value="As defined by 3GPP, and Eric Turcotte" /> </concept> <concept> - <code value="application/mikey"/> - <display value="mikey"/> - <definition value="As defined by rfc3830"/> + <code value="application/mbms-user-service-description+xml" /> + <display value="mbms-user-service-description+xml" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="application/mipc"/> - <display value="mipc"/> - <definition value="As defined by NCGIS, and Bryan Blank"/> + <code value="application/mbox" /> + <display value="mbox" /> + <definition value="As defined by rfc4155" /> </concept> <concept> - <code value="application/missing-blocks+cbor-seq"/> - <display value="missing-blocks+cbor-seq"/> - <definition value="As defined by rfc9177"/> + <code value="application/media_control+xml" /> + <display value="media_control+xml" /> + <definition value="As defined by rfc5168" /> </concept> <concept> - <code value="application/mmt-aei+xml"/> - <display value="mmt-aei+xml"/> - <definition value="As defined by ATSC"/> + <code value="application/media-policy-dataset+xml" /> + <display value="media-policy-dataset+xml" /> + <definition value="As defined by rfc6796" /> </concept> <concept> - <code value="application/mmt-usd+xml"/> - <display value="mmt-usd+xml"/> - <definition value="As defined by ATSC"/> + <code value="application/mediaservercontrol+xml" /> + <display value="mediaservercontrol+xml" /> + <definition value="As defined by rfc5022" /> </concept> <concept> - <code value="application/mods+xml"/> - <display value="mods+xml"/> - <definition value="As defined by rfc6207"/> + <code value="application/merge-patch+json" /> + <display value="merge-patch+json" /> + <definition value="As defined by rfc7396" /> </concept> <concept> - <code value="application/moss-keys"/> - <display value="moss-keys"/> - <definition value="As defined by rfc1848"/> + <code value="application/metalink4+xml" /> + <display value="metalink4+xml" /> + <definition value="As defined by rfc5854" /> </concept> <concept> - <code value="application/moss-signature"/> - <display value="moss-signature"/> - <definition value="As defined by rfc1848"/> + <code value="application/mets+xml" /> + <display value="mets+xml" /> + <definition value="As defined by rfc6207" /> </concept> <concept> - <code value="application/mosskey-data"/> - <display value="mosskey-data"/> - <definition value="As defined by rfc1848"/> + <code value="application/MF4" /> + <display value="MF4" /> + <definition value="As defined by ASAM, and Thomas Thomsen" /> </concept> <concept> - <code value="application/mosskey-request"/> - <display value="mosskey-request"/> - <definition value="As defined by rfc1848"/> + <code value="application/mikey" /> + <display value="mikey" /> + <definition value="As defined by rfc3830" /> </concept> <concept> - <code value="application/mp21"/> - <display value="mp21"/> - <definition value="As defined by rfc6381, and David Singer"/> + <code value="application/mipc" /> + <display value="mipc" /> + <definition value="As defined by NCGIS, and Bryan Blank" /> </concept> <concept> - <code value="application/mp4"/> - <display value="mp4"/> - <definition value="As defined by rfc4337, and rfc6381"/> + <code value="application/missing-blocks+cbor-seq" /> + <display value="missing-blocks+cbor-seq" /> + <definition value="As defined by rfc9177" /> </concept> <concept> - <code value="application/mpeg4-generic"/> - <display value="mpeg4-generic"/> - <definition value="As defined by rfc3640"/> + <code value="application/mmt-aei+xml" /> + <display value="mmt-aei+xml" /> + <definition value="As defined by ATSC" /> </concept> <concept> - <code value="application/mpeg4-iod"/> - <display value="mpeg4-iod"/> - <definition value="As defined by rfc4337"/> + <code value="application/mmt-usd+xml" /> + <display value="mmt-usd+xml" /> + <definition value="As defined by ATSC" /> </concept> <concept> - <code value="application/mpeg4-iod-xmt"/> - <display value="mpeg4-iod-xmt"/> - <definition value="As defined by rfc4337"/> + <code value="application/mods+xml" /> + <display value="mods+xml" /> + <definition value="As defined by rfc6207" /> </concept> <concept> - <code value="application/mrb-consumer+xml"/> - <display value="mrb-consumer+xml"/> - <definition value="As defined by rfc6917"/> + <code value="application/moss-keys" /> + <display value="moss-keys" /> + <definition value="As defined by rfc1848" /> </concept> <concept> - <code value="application/mrb-publish+xml"/> - <display value="mrb-publish+xml"/> - <definition value="As defined by rfc6917"/> + <code value="application/moss-signature" /> + <display value="moss-signature" /> + <definition value="As defined by rfc1848" /> </concept> <concept> - <code value="application/msc-ivr+xml"/> - <display value="msc-ivr+xml"/> - <definition value="As defined by rfc6231"/> + <code value="application/mosskey-data" /> + <display value="mosskey-data" /> + <definition value="As defined by rfc1848" /> </concept> <concept> - <code value="application/msc-mixer+xml"/> - <display value="msc-mixer+xml"/> - <definition value="As defined by rfc6505"/> + <code value="application/mosskey-request" /> + <display value="mosskey-request" /> + <definition value="As defined by rfc1848" /> </concept> <concept> - <code value="application/msword"/> - <display value="msword"/> - <definition value="As defined by Paul Lindner"/> + <code value="application/mp21" /> + <display value="mp21" /> + <definition value="As defined by rfc6381, and David Singer" /> </concept> <concept> - <code value="application/mud+json"/> - <display value="mud+json"/> - <definition value="As defined by rfc8520"/> + <code value="application/mp4" /> + <display value="mp4" /> + <definition value="As defined by rfc4337, and rfc6381" /> </concept> <concept> - <code value="application/multipart-core"/> - <display value="multipart-core"/> - <definition value="As defined by rfc8710"/> + <code value="application/mpeg4-generic" /> + <display value="mpeg4-generic" /> + <definition value="As defined by rfc3640" /> </concept> <concept> - <code value="application/mxf"/> - <display value="mxf"/> - <definition value="As defined by rfc4539"/> + <code value="application/mpeg4-iod" /> + <display value="mpeg4-iod" /> + <definition value="As defined by rfc4337" /> </concept> <concept> - <code value="application/n-quads"/> - <display value="n-quads"/> - <definition value="As defined by W3C, and Eric Prudhommeaux"/> + <code value="application/mpeg4-iod-xmt" /> + <display value="mpeg4-iod-xmt" /> + <definition value="As defined by rfc4337" /> </concept> <concept> - <code value="application/n-triples"/> - <display value="n-triples"/> - <definition value="As defined by W3C, and Eric Prudhommeaux"/> + <code value="application/mrb-consumer+xml" /> + <display value="mrb-consumer+xml" /> + <definition value="As defined by rfc6917" /> </concept> <concept> - <code value="application/nasdata"/> - <display value="nasdata"/> - <definition value="As defined by rfc4707"/> + <code value="application/mrb-publish+xml" /> + <display value="mrb-publish+xml" /> + <definition value="As defined by rfc6917" /> </concept> <concept> - <code value="application/news-checkgroups"/> - <display value="news-checkgroups"/> - <definition value="As defined by rfc5537"/> + <code value="application/msc-ivr+xml" /> + <display value="msc-ivr+xml" /> + <definition value="As defined by rfc6231" /> </concept> <concept> - <code value="application/news-groupinfo"/> - <display value="news-groupinfo"/> - <definition value="As defined by rfc5537"/> + <code value="application/msc-mixer+xml" /> + <display value="msc-mixer+xml" /> + <definition value="As defined by rfc6505" /> </concept> <concept> - <code value="application/news-transmission"/> - <display value="news-transmission"/> - <definition value="As defined by rfc5537"/> + <code value="application/msword" /> + <display value="msword" /> + <definition value="As defined by Paul Lindner" /> </concept> <concept> - <code value="application/nlsml+xml"/> - <display value="nlsml+xml"/> - <definition value="As defined by rfc6787"/> + <code value="application/mud+json" /> + <display value="mud+json" /> + <definition value="As defined by rfc8520" /> </concept> <concept> - <code value="application/node"/> - <display value="node"/> - <definition value="As defined by Node.js TSC"/> + <code value="application/multipart-core" /> + <display value="multipart-core" /> + <definition value="As defined by rfc8710" /> </concept> <concept> - <code value="application/nss"/> - <display value="nss"/> - <definition value="As defined by Michael Hammer"/> + <code value="application/mxf" /> + <display value="mxf" /> + <definition value="As defined by rfc4539" /> </concept> <concept> - <code value="application/oauth-authz-req+jwt"/> - <display value="oauth-authz-req+jwt"/> - <definition value="As defined by rfc9101"/> + <code value="application/n-quads" /> + <display value="n-quads" /> + <definition value="As defined by W3C, and Eric Prudhommeaux" /> </concept> <concept> - <code value="application/oblivious-dns-message"/> - <display value="oblivious-dns-message"/> - <definition value="As defined by rfc9230"/> + <code value="application/n-triples" /> + <display value="n-triples" /> + <definition value="As defined by W3C, and Eric Prudhommeaux" /> </concept> <concept> - <code value="application/ocsp-request"/> - <display value="ocsp-request"/> - <definition value="As defined by rfc6960"/> + <code value="application/nasdata" /> + <display value="nasdata" /> + <definition value="As defined by rfc4707" /> </concept> <concept> - <code value="application/ocsp-response"/> - <display value="ocsp-response"/> - <definition value="As defined by rfc6960"/> + <code value="application/news-checkgroups" /> + <display value="news-checkgroups" /> + <definition value="As defined by rfc5537" /> </concept> <concept> - <code value="application/octet-stream"/> - <display value="octet-stream"/> - <definition value="As defined by rfc2045, and rfc2046"/> + <code value="application/news-groupinfo" /> + <display value="news-groupinfo" /> + <definition value="As defined by rfc5537" /> </concept> <concept> - <code value="application/ODA"/> - <display value="ODA"/> - <definition value="As defined by rfc1494"/> + <code value="application/news-transmission" /> + <display value="news-transmission" /> + <definition value="As defined by rfc5537" /> </concept> <concept> - <code value="application/odm+xml"/> - <display value="odm+xml"/> - <definition value="As defined by CDISC, and Sam Hume"/> + <code value="application/nlsml+xml" /> + <display value="nlsml+xml" /> + <definition value="As defined by rfc6787" /> </concept> <concept> - <code value="application/ODX"/> - <display value="ODX"/> - <definition value="As defined by ASAM, and Thomas Thomsen"/> + <code value="application/node" /> + <display value="node" /> + <definition value="As defined by Node.js TSC" /> </concept> <concept> - <code value="application/oebps-package+xml"/> - <display value="oebps-package+xml"/> - <definition value="As defined by W3C, and EPUB 3 WG"/> + <code value="application/nss" /> + <display value="nss" /> + <definition value="As defined by Michael Hammer" /> </concept> <concept> - <code value="application/ogg"/> - <display value="ogg"/> - <definition value="As defined by rfc5334, and rfc7845"/> + <code value="application/oauth-authz-req+jwt" /> + <display value="oauth-authz-req+jwt" /> + <definition value="As defined by rfc9101" /> </concept> <concept> - <code value="application/ohttp-keys"/> - <display value="ohttp-keys"/> - <definition value="As defined by rfc9458"/> + <code value="application/oblivious-dns-message" /> + <display value="oblivious-dns-message" /> + <definition value="As defined by rfc9230" /> </concept> <concept> - <code value="application/opc-nodeset+xml"/> - <display value="opc-nodeset+xml"/> - <definition value="As defined by OPC Foundation"/> + <code value="application/ocsp-request" /> + <display value="ocsp-request" /> + <definition value="As defined by rfc6960" /> </concept> <concept> - <code value="application/oscore"/> - <display value="oscore"/> - <definition value="As defined by rfc8613"/> + <code value="application/ocsp-response" /> + <display value="ocsp-response" /> + <definition value="As defined by rfc6960" /> </concept> <concept> - <code value="application/oxps"/> - <display value="oxps"/> - <definition value="As defined by Ecma International Helpdesk"/> + <code value="application/octet-stream" /> + <display value="octet-stream" /> + <definition value="As defined by rfc2045, and rfc2046" /> </concept> <concept> - <code value="application/p21"/> - <display value="p21"/> - <definition value="As defined by ISO-TC 184-SC 4, and Dana Tripp"/> + <code value="application/ODA" /> + <display value="ODA" /> + <definition value="As defined by rfc1494" /> </concept> <concept> - <code value="application/p21+zip"/> - <display value="p21+zip"/> - <definition value="As defined by ISO-TC 184-SC 4, and Dana Tripp"/> + <code value="application/odm+xml" /> + <display value="odm+xml" /> + <definition value="As defined by CDISC, and Sam Hume" /> </concept> <concept> - <code value="application/p2p-overlay+xml"/> - <display value="p2p-overlay+xml"/> - <definition value="As defined by rfc6940"/> + <code value="application/ODX" /> + <display value="ODX" /> + <definition value="As defined by ASAM, and Thomas Thomsen" /> </concept> <concept> - <code value="application/parityfec"/> - <display value="parityfec"/> - <definition value="As defined by rfc3009"/> + <code value="application/oebps-package+xml" /> + <display value="oebps-package+xml" /> + <definition value="As defined by W3C, and EPUB 3 WG" /> </concept> <concept> - <code value="application/passport"/> - <display value="passport"/> - <definition value="As defined by rfc8225"/> + <code value="application/ogg" /> + <display value="ogg" /> + <definition value="As defined by rfc5334, and rfc7845" /> </concept> <concept> - <code value="application/patch-ops-error+xml"/> - <display value="patch-ops-error+xml"/> - <definition value="As defined by rfc5261"/> + <code value="application/ohttp-keys" /> + <display value="ohttp-keys" /> + <definition value="As defined by rfc9458" /> </concept> <concept> - <code value="application/pdf"/> - <display value="pdf"/> - <definition value="As defined by rfc8118"/> + <code value="application/opc-nodeset+xml" /> + <display value="opc-nodeset+xml" /> + <definition value="As defined by OPC Foundation" /> </concept> <concept> - <code value="application/PDX"/> - <display value="PDX"/> - <definition value="As defined by ASAM, and Thomas Thomsen"/> + <code value="application/oscore" /> + <display value="oscore" /> + <definition value="As defined by rfc8613" /> </concept> <concept> - <code value="application/pem-certificate-chain"/> - <display value="pem-certificate-chain"/> - <definition value="As defined by rfc8555"/> + <code value="application/oxps" /> + <display value="oxps" /> + <definition value="As defined by Ecma International Helpdesk" /> </concept> <concept> - <code value="application/pgp-encrypted"/> - <display value="pgp-encrypted"/> - <definition value="As defined by rfc3156"/> + <code value="application/p21" /> + <display value="p21" /> + <definition value="As defined by ISO-TC 184-SC 4, and Dana Tripp" /> </concept> <concept> - <code value="application/pgp-keys"/> - <display value="pgp-keys"/> - <definition value="As defined by rfc3156"/> + <code value="application/p21+zip" /> + <display value="p21+zip" /> + <definition value="As defined by ISO-TC 184-SC 4, and Dana Tripp" /> </concept> <concept> - <code value="application/pgp-signature"/> - <display value="pgp-signature"/> - <definition value="As defined by rfc3156"/> + <code value="application/p2p-overlay+xml" /> + <display value="p2p-overlay+xml" /> + <definition value="As defined by rfc6940" /> </concept> <concept> - <code value="application/pidf-diff+xml"/> - <display value="pidf-diff+xml"/> - <definition value="As defined by rfc5262"/> + <code value="application/parityfec" /> + <display value="parityfec" /> + <definition value="As defined by rfc3009" /> </concept> <concept> - <code value="application/pidf+xml"/> - <display value="pidf+xml"/> - <definition value="As defined by rfc3863"/> + <code value="application/passport" /> + <display value="passport" /> + <definition value="As defined by rfc8225" /> </concept> <concept> - <code value="application/pkcs10"/> - <display value="pkcs10"/> - <definition value="As defined by rfc5967"/> + <code value="application/patch-ops-error+xml" /> + <display value="patch-ops-error+xml" /> + <definition value="As defined by rfc5261" /> </concept> <concept> - <code value="application/pkcs7-mime"/> - <display value="pkcs7-mime"/> - <definition value="As defined by rfc8551, and rfc7114"/> + <code value="application/pdf" /> + <display value="pdf" /> + <definition value="As defined by rfc8118" /> </concept> <concept> - <code value="application/pkcs7-signature"/> - <display value="pkcs7-signature"/> - <definition value="As defined by rfc8551"/> + <code value="application/PDX" /> + <display value="PDX" /> + <definition value="As defined by ASAM, and Thomas Thomsen" /> </concept> <concept> - <code value="application/pkcs8"/> - <display value="pkcs8"/> - <definition value="As defined by rfc5958"/> + <code value="application/pem-certificate-chain" /> + <display value="pem-certificate-chain" /> + <definition value="As defined by rfc8555" /> </concept> <concept> - <code value="application/pkcs8-encrypted"/> - <display value="pkcs8-encrypted"/> - <definition value="As defined by rfc8351"/> + <code value="application/pgp-encrypted" /> + <display value="pgp-encrypted" /> + <definition value="As defined by rfc3156" /> </concept> <concept> - <code value="application/pkcs12"/> - <display value="pkcs12"/> - <definition value="As defined by IETF"/> + <code value="application/pgp-keys" /> + <display value="pgp-keys" /> + <definition value="As defined by rfc3156" /> </concept> <concept> - <code value="application/pkix-attr-cert"/> - <display value="pkix-attr-cert"/> - <definition value="As defined by rfc5877"/> + <code value="application/pgp-signature" /> + <display value="pgp-signature" /> + <definition value="As defined by rfc3156" /> </concept> <concept> - <code value="application/pkix-cert"/> - <display value="pkix-cert"/> - <definition value="As defined by rfc2585"/> + <code value="application/pidf-diff+xml" /> + <display value="pidf-diff+xml" /> + <definition value="As defined by rfc5262" /> </concept> <concept> - <code value="application/pkix-crl"/> - <display value="pkix-crl"/> - <definition value="As defined by rfc2585"/> + <code value="application/pidf+xml" /> + <display value="pidf+xml" /> + <definition value="As defined by rfc3863" /> </concept> <concept> - <code value="application/pkix-pkipath"/> - <display value="pkix-pkipath"/> - <definition value="As defined by rfc6066"/> + <code value="application/pkcs10" /> + <display value="pkcs10" /> + <definition value="As defined by rfc5967" /> </concept> <concept> - <code value="application/pkixcmp"/> - <display value="pkixcmp"/> - <definition value="As defined by RFC-ietf-lamps-rfc6712bis-10"/> + <code value="application/pkcs7-mime" /> + <display value="pkcs7-mime" /> + <definition value="As defined by rfc8551, and rfc7114" /> </concept> <concept> - <code value="application/pls+xml"/> - <display value="pls+xml"/> - <definition value="As defined by rfc4267"/> + <code value="application/pkcs7-signature" /> + <display value="pkcs7-signature" /> + <definition value="As defined by rfc8551" /> </concept> <concept> - <code value="application/poc-settings+xml"/> - <display value="poc-settings+xml"/> - <definition value="As defined by rfc4354"/> + <code value="application/pkcs8" /> + <display value="pkcs8" /> + <definition value="As defined by rfc5958" /> </concept> <concept> - <code value="application/postscript"/> - <display value="postscript"/> - <definition value="As defined by rfc2045, and rfc2046"/> + <code value="application/pkcs8-encrypted" /> + <display value="pkcs8-encrypted" /> + <definition value="As defined by rfc8351" /> </concept> <concept> - <code value="application/ppsp-tracker+json"/> - <display value="ppsp-tracker+json"/> - <definition value="As defined by rfc7846"/> + <code value="application/pkcs12" /> + <display value="pkcs12" /> + <definition value="As defined by IETF" /> </concept> <concept> - <code value="application/private-token-issuer-directory"/> - <display value="private-token-issuer-directory"/> - <definition value="As defined by rfc9578"/> + <code value="application/pkix-attr-cert" /> + <display value="pkix-attr-cert" /> + <definition value="As defined by rfc5877" /> </concept> <concept> - <code value="application/private-token-request"/> - <display value="private-token-request"/> - <definition value="As defined by rfc9578"/> + <code value="application/pkix-cert" /> + <display value="pkix-cert" /> + <definition value="As defined by rfc2585" /> </concept> <concept> - <code value="application/private-token-response"/> - <display value="private-token-response"/> - <definition value="As defined by rfc9578"/> + <code value="application/pkix-crl" /> + <display value="pkix-crl" /> + <definition value="As defined by rfc2585" /> </concept> <concept> - <code value="application/problem+json"/> - <display value="problem+json"/> - <definition value="As defined by rfc9457"/> + <code value="application/pkix-pkipath" /> + <display value="pkix-pkipath" /> + <definition value="As defined by rfc6066" /> </concept> <concept> - <code value="application/problem+xml"/> - <display value="problem+xml"/> - <definition value="As defined by rfc9457"/> + <code value="application/pkixcmp" /> + <display value="pkixcmp" /> + <definition value="As defined by rfc9811" /> </concept> <concept> - <code value="application/provenance+xml"/> - <display value="provenance+xml"/> - <definition value="As defined by W3C, and Ivan Herman"/> + <code value="application/pls+xml" /> + <display value="pls+xml" /> + <definition value="As defined by rfc4267" /> </concept> <concept> - <code value="application/provided-claims+jwt"/> - <display value="provided-claims+jwt"/> - <definition value="As defined by OpenID Foundation eKYC and IDA WG, and Daniel Fett"/> + <code value="application/poc-settings+xml" /> + <display value="poc-settings+xml" /> + <definition value="As defined by rfc4354" /> </concept> <concept> - <code value="application/prs.alvestrand.titrax-sheet"/> - <display value="prs.alvestrand.titrax-sheet"/> - <definition value="As defined by Harald T. Alvestrand"/> + <code value="application/postscript" /> + <display value="postscript" /> + <definition value="As defined by rfc2045, and rfc2046" /> </concept> <concept> - <code value="application/prs.cww"/> - <display value="prs.cww"/> - <definition value="As defined by Khemchart Rungchavalnont"/> + <code value="application/ppsp-tracker+json" /> + <display value="ppsp-tracker+json" /> + <definition value="As defined by rfc7846" /> </concept> <concept> - <code value="application/prs.cyn"/> - <display value="prs.cyn"/> - <definition value="As defined by Cynthia Revström"/> + <code value="application/private-token-issuer-directory" /> + <display value="private-token-issuer-directory" /> + <definition value="As defined by rfc9578" /> </concept> <concept> - <code value="application/prs.hpub+zip"/> - <display value="prs.hpub+zip"/> - <definition value="As defined by Giulio Zambon"/> + <code value="application/private-token-request" /> + <display value="private-token-request" /> + <definition value="As defined by rfc9578" /> </concept> <concept> - <code value="application/prs.implied-document+xml"/> - <display value="prs.implied-document+xml"/> - <definition value="As defined by Marek Cermák"/> + <code value="application/private-token-response" /> + <display value="private-token-response" /> + <definition value="As defined by rfc9578" /> </concept> <concept> - <code value="application/prs.implied-executable"/> - <display value="prs.implied-executable"/> - <definition value="As defined by Marek Cermák"/> + <code value="application/problem+json" /> + <display value="problem+json" /> + <definition value="As defined by rfc9457" /> </concept> <concept> - <code value="application/prs.implied-object+json"/> - <display value="prs.implied-object+json"/> - <definition value="As defined by Marek Cermák"/> + <code value="application/problem+xml" /> + <display value="problem+xml" /> + <definition value="As defined by rfc9457" /> </concept> <concept> - <code value="application/prs.implied-object+json-seq"/> - <display value="prs.implied-object+json-seq"/> - <definition value="As defined by Marek Cermák"/> + <code value="application/provenance+xml" /> + <display value="provenance+xml" /> + <definition value="As defined by W3C, and Ivan Herman" /> </concept> <concept> - <code value="application/prs.implied-object+yaml"/> - <display value="prs.implied-object+yaml"/> - <definition value="As defined by Marek Cermák"/> + <code value="application/provided-claims+jwt" /> + <display value="provided-claims+jwt" /> + <definition value="As defined by OpenID Foundation eKYC and IDA WG, and Daniel Fett" /> </concept> <concept> - <code value="application/prs.implied-structure"/> - <display value="prs.implied-structure"/> - <definition value="As defined by Marek Cermák"/> + <code value="application/prs.alvestrand.titrax-sheet" /> + <display value="prs.alvestrand.titrax-sheet" /> + <definition value="As defined by Harald T. Alvestrand" /> </concept> <concept> - <code value="application/prs.mayfile"/> - <display value="prs.mayfile"/> - <definition value="As defined by Azalea Gardenia"/> + <code value="application/prs.cww" /> + <display value="prs.cww" /> + <definition value="As defined by Khemchart Rungchavalnont" /> </concept> <concept> - <code value="application/prs.nprend"/> - <display value="prs.nprend"/> - <definition value="As defined by Jay Doggett"/> + <code value="application/prs.cyn" /> + <display value="prs.cyn" /> + <definition value="As defined by Cynthia Revström" /> </concept> <concept> - <code value="application/prs.plucker"/> - <display value="prs.plucker"/> - <definition value="As defined by Bill Janssen"/> + <code value="application/prs.hpub+zip" /> + <display value="prs.hpub+zip" /> + <definition value="As defined by Giulio Zambon" /> </concept> <concept> - <code value="application/prs.rdf-xml-crypt"/> - <display value="prs.rdf-xml-crypt"/> - <definition value="As defined by Toby Inkster"/> + <code value="application/prs.implied-document+xml" /> + <display value="prs.implied-document+xml" /> + <definition value="As defined by Marek Čermák" /> </concept> <concept> - <code value="application/prs.vcfbzip2"/> - <display value="prs.vcfbzip2"/> - <definition value="As defined by Paolo Marcheschi"/> + <code value="application/prs.implied-executable" /> + <display value="prs.implied-executable" /> + <definition value="As defined by Marek Čermák" /> </concept> <concept> - <code value="application/prs.xsf+xml"/> - <display value="prs.xsf+xml"/> - <definition value="As defined by Maik Stührenberg"/> + <code value="application/prs.implied-object+json" /> + <display value="prs.implied-object+json" /> + <definition value="As defined by Marek Čermák" /> </concept> <concept> - <code value="application/pskc+xml"/> - <display value="pskc+xml"/> - <definition value="As defined by rfc6030"/> + <code value="application/prs.implied-object+json-seq" /> + <display value="prs.implied-object+json-seq" /> + <definition value="As defined by Marek Čermák" /> </concept> <concept> - <code value="application/pvd+json"/> - <display value="pvd+json"/> - <definition value="As defined by rfc8801"/> + <code value="application/prs.implied-object+yaml" /> + <display value="prs.implied-object+yaml" /> + <definition value="As defined by Marek Čermák" /> </concept> <concept> - <code value="application/rdf+xml"/> - <display value="rdf+xml"/> - <definition value="As defined by rfc3870"/> + <code value="application/prs.implied-structure" /> + <display value="prs.implied-structure" /> + <definition value="As defined by Marek Čermák" /> </concept> <concept> - <code value="application/route-apd+xml"/> - <display value="route-apd+xml"/> - <definition value="As defined by ATSC"/> + <code value="application/prs.mayfile" /> + <display value="prs.mayfile" /> + <definition value="As defined by Azalea Gardenia" /> </concept> <concept> - <code value="application/route-s-tsid+xml"/> - <display value="route-s-tsid+xml"/> - <definition value="As defined by ATSC"/> + <code value="application/prs.nprend" /> + <display value="prs.nprend" /> + <definition value="As defined by Jay Doggett" /> </concept> <concept> - <code value="application/route-usd+xml"/> - <display value="route-usd+xml"/> - <definition value="As defined by ATSC"/> + <code value="application/prs.plucker" /> + <display value="prs.plucker" /> + <definition value="As defined by Bill Janssen" /> </concept> <concept> - <code value="application/QSIG"/> - <display value="QSIG"/> - <definition value="As defined by rfc3204"/> + <code value="application/prs.rdf-xml-crypt" /> + <display value="prs.rdf-xml-crypt" /> + <definition value="As defined by Toby Inkster" /> </concept> <concept> - <code value="application/raptorfec"/> - <display value="raptorfec"/> - <definition value="As defined by rfc6682"/> + <code value="application/prs.vcfbzip2" /> + <display value="prs.vcfbzip2" /> + <definition value="As defined by Paolo Marcheschi" /> </concept> <concept> - <code value="application/rdap+json"/> - <display value="rdap+json"/> - <definition value="As defined by rfc9083"/> + <code value="application/prs.xsf+xml" /> + <display value="prs.xsf+xml" /> + <definition value="As defined by Maik Stührenberg" /> </concept> <concept> - <code value="application/reginfo+xml"/> - <display value="reginfo+xml"/> - <definition value="As defined by rfc3680"/> + <code value="application/pskc+xml" /> + <display value="pskc+xml" /> + <definition value="As defined by rfc6030" /> </concept> <concept> - <code value="application/relax-ng-compact-syntax"/> - <display value="relax-ng-compact-syntax"/> - <definition value="As defined by http://www.jtc1sc34.org/repository/0661.pdf"/> + <code value="application/pvd+json" /> + <display value="pvd+json" /> + <definition value="As defined by rfc8801" /> </concept> <concept> - <code value="application/reputon+json"/> - <display value="reputon+json"/> - <definition value="As defined by rfc7071"/> + <code value="application/rdf+xml" /> + <display value="rdf+xml" /> + <definition value="As defined by rfc3870" /> </concept> <concept> - <code value="application/application/resolve-response+jwt"/> - <display value="application/resolve-response+jwt"/> - <definition value="As defined by OpenID Foundation Artifact Binding WG"/> + <code value="application/route-apd+xml" /> + <display value="route-apd+xml" /> + <definition value="As defined by ATSC" /> </concept> <concept> - <code value="application/resource-lists-diff+xml"/> - <display value="resource-lists-diff+xml"/> - <definition value="As defined by rfc5362"/> + <code value="application/route-s-tsid+xml" /> + <display value="route-s-tsid+xml" /> + <definition value="As defined by ATSC" /> </concept> <concept> - <code value="application/resource-lists+xml"/> - <display value="resource-lists+xml"/> - <definition value="As defined by rfc4826"/> + <code value="application/route-usd+xml" /> + <display value="route-usd+xml" /> + <definition value="As defined by ATSC" /> </concept> <concept> - <code value="application/rfc+xml"/> - <display value="rfc+xml"/> - <definition value="As defined by rfc7991"/> + <code value="application/QSIG" /> + <display value="QSIG" /> + <definition value="As defined by rfc3204" /> </concept> <concept> - <code value="application/riscos"/> - <display value="riscos"/> - <definition value="As defined by Nick Smith"/> + <code value="application/raptorfec" /> + <display value="raptorfec" /> + <definition value="As defined by rfc6682" /> </concept> <concept> - <code value="application/rlmi+xml"/> - <display value="rlmi+xml"/> - <definition value="As defined by rfc4662"/> + <code value="application/rdap+json" /> + <display value="rdap+json" /> + <definition value="As defined by rfc9083" /> </concept> <concept> - <code value="application/rls-services+xml"/> - <display value="rls-services+xml"/> - <definition value="As defined by rfc4826"/> + <code value="application/reginfo+xml" /> + <display value="reginfo+xml" /> + <definition value="As defined by rfc3680" /> </concept> <concept> - <code value="application/rpki-checklist"/> - <display value="rpki-checklist"/> - <definition value="As defined by rfc9323"/> + <code value="application/relax-ng-compact-syntax" /> + <display value="relax-ng-compact-syntax" /> + <definition value="As defined by http://www.JTC 1sc34.org/repository/0661.pdf" /> </concept> <concept> - <code value="application/rpki-ghostbusters"/> - <display value="rpki-ghostbusters"/> - <definition value="As defined by rfc6493"/> + <code value="application/reputon+json" /> + <display value="reputon+json" /> + <definition value="As defined by rfc7071" /> </concept> <concept> - <code value="application/rpki-manifest"/> - <display value="rpki-manifest"/> - <definition value="As defined by rfc6481"/> + <code value="application/resolve-response+jwt" /> + <display value="resolve-response+jwt" /> + <definition value="As defined by OpenID Foundation Artifact Binding WG" /> </concept> <concept> - <code value="application/rpki-publication"/> - <display value="rpki-publication"/> - <definition value="As defined by rfc8181"/> + <code value="application/resource-lists-diff+xml" /> + <display value="resource-lists-diff+xml" /> + <definition value="As defined by rfc5362" /> </concept> <concept> - <code value="application/rpki-roa"/> - <display value="rpki-roa"/> - <definition value="As defined by rfc9582"/> + <code value="application/resource-lists+xml" /> + <display value="resource-lists+xml" /> + <definition value="As defined by rfc4826" /> </concept> <concept> - <code value="application/rpki-signed-tal"/> - <display value="rpki-signed-tal"/> - <definition value="As defined by rfc9691"/> + <code value="application/rfc+xml" /> + <display value="rfc+xml" /> + <definition value="As defined by rfc7991" /> </concept> <concept> - <code value="application/rpki-updown"/> - <display value="rpki-updown"/> - <definition value="As defined by rfc6492"/> + <code value="application/riscos" /> + <display value="riscos" /> + <definition value="As defined by Nick Smith" /> </concept> <concept> - <code value="application/rtf"/> - <display value="rtf"/> - <definition value="As defined by Paul Lindner"/> + <code value="application/rlmi+xml" /> + <display value="rlmi+xml" /> + <definition value="As defined by rfc4662" /> </concept> <concept> - <code value="application/rtploopback"/> - <display value="rtploopback"/> - <definition value="As defined by rfc6849"/> + <code value="application/rls-services+xml" /> + <display value="rls-services+xml" /> + <definition value="As defined by rfc4826" /> </concept> <concept> - <code value="application/rtx"/> - <display value="rtx"/> - <definition value="As defined by rfc4588"/> + <code value="application/rpki-checklist" /> + <display value="rpki-checklist" /> + <definition value="As defined by rfc9323" /> </concept> <concept> - <code value="application/samlassertion+xml"/> - <display value="samlassertion+xml"/> - <definition value="As defined by OASIS Security Services Technical Committee SSTC"/> + <code value="application/rpki-ghostbusters" /> + <display value="rpki-ghostbusters" /> + <definition value="As defined by rfc6493" /> </concept> <concept> - <code value="application/samlmetadata+xml"/> - <display value="samlmetadata+xml"/> - <definition value="As defined by OASIS Security Services Technical Committee SSTC"/> + <code value="application/rpki-manifest" /> + <display value="rpki-manifest" /> + <definition value="As defined by rfc6481" /> </concept> <concept> - <code value="application/sarif-external-properties+json"/> - <display value="sarif-external-properties+json"/> - <definition value="As defined by OASIS, David Keaton, and Michael C. Fanning"/> + <code value="application/rpki-publication" /> + <display value="rpki-publication" /> + <definition value="As defined by rfc8181" /> </concept> <concept> - <code value="application/sarif+json"/> - <display value="sarif+json"/> - <definition value="As defined by OASIS, Michael C. Fanning, and Laurence J. Golding"/> + <code value="application/rpki-roa" /> + <display value="rpki-roa" /> + <definition value="As defined by rfc9582" /> </concept> <concept> - <code value="application/sbe"/> - <display value="sbe"/> - <definition value="As defined by FIX Trading Community, and Donald L. Mendelson"/> + <code value="application/rpki-signed-tal" /> + <display value="rpki-signed-tal" /> + <definition value="As defined by rfc9691" /> </concept> <concept> - <code value="application/sbml+xml"/> - <display value="sbml+xml"/> - <definition value="As defined by rfc3823"/> + <code value="application/rpki-updown" /> + <display value="rpki-updown" /> + <definition value="As defined by rfc6492" /> </concept> <concept> - <code value="application/scaip+xml"/> - <display value="scaip+xml"/> - <definition value="As defined by SIS, and Oskar Jonsson"/> + <code value="application/rs-metadata+xml" /> + <display value="rs-metadata+xml" /> + <definition value="As defined by rfc7865, and rfc9806" /> </concept> <concept> - <code value="application/scim+json"/> - <display value="scim+json"/> - <definition value="As defined by rfc7644"/> + <code value="application/rtf" /> + <display value="rtf" /> + <definition value="As defined by Paul Lindner" /> </concept> <concept> - <code value="application/scvp-cv-request"/> - <display value="scvp-cv-request"/> - <definition value="As defined by rfc5055"/> + <code value="application/rtploopback" /> + <display value="rtploopback" /> + <definition value="As defined by rfc6849" /> </concept> <concept> - <code value="application/scvp-cv-response"/> - <display value="scvp-cv-response"/> - <definition value="As defined by rfc5055"/> + <code value="application/rtx" /> + <display value="rtx" /> + <definition value="As defined by rfc4588" /> </concept> <concept> - <code value="application/scvp-vp-request"/> - <display value="scvp-vp-request"/> - <definition value="As defined by rfc5055"/> + <code value="application/samlassertion+xml" /> + <display value="samlassertion+xml" /> + <definition value="As defined by OASIS Security Services Technical Committee SSTC" /> </concept> <concept> - <code value="application/scvp-vp-response"/> - <display value="scvp-vp-response"/> - <definition value="As defined by rfc5055"/> + <code value="application/samlmetadata+xml" /> + <display value="samlmetadata+xml" /> + <definition value="As defined by OASIS Security Services Technical Committee SSTC" /> </concept> <concept> - <code value="application/sdp"/> - <display value="sdp"/> - <definition value="As defined by rfc8866"/> + <code value="application/sarif-external-properties+json" /> + <display value="sarif-external-properties+json" /> + <definition value="As defined by OASIS, David Keaton, and Michael C. Fanning" /> </concept> <concept> - <code value="application/secevent+jwt"/> - <display value="secevent+jwt"/> - <definition value="As defined by rfc8417"/> + <code value="application/sarif+json" /> + <display value="sarif+json" /> + <definition value="As defined by OASIS, Michael C. Fanning, and Laurence J. Golding" /> </concept> <concept> - <code value="application/senml-etch+cbor"/> - <display value="senml-etch+cbor"/> - <definition value="As defined by rfc8790"/> + <code value="application/sbe" /> + <display value="sbe" /> + <definition value="As defined by FIX Trading Community, and Donald L. Mendelson" /> </concept> <concept> - <code value="application/senml-etch+json"/> - <display value="senml-etch+json"/> - <definition value="As defined by rfc8790"/> + <code value="application/sbml+xml" /> + <display value="sbml+xml" /> + <definition value="As defined by rfc3823" /> </concept> <concept> - <code value="application/senml-exi"/> - <display value="senml-exi"/> - <definition value="As defined by rfc8428"/> + <code value="application/scaip+xml" /> + <display value="scaip+xml" /> + <definition value="As defined by SIS, and Oskar Jonsson" /> </concept> <concept> - <code value="application/senml+cbor"/> - <display value="senml+cbor"/> - <definition value="As defined by rfc8428"/> + <code value="application/scim+json" /> + <display value="scim+json" /> + <definition value="As defined by rfc7644" /> </concept> <concept> - <code value="application/senml+json"/> - <display value="senml+json"/> - <definition value="As defined by rfc8428"/> + <code value="application/scitt-receipt+cose" /> + <display value="scitt-receipt+cose" /> + <definition value="As defined by RFC-ietf-scitt-architecture-21" /> </concept> <concept> - <code value="application/senml+xml"/> - <display value="senml+xml"/> - <definition value="As defined by rfc8428"/> + <code value="application/scitt-statement+cose" /> + <display value="scitt-statement+cose" /> + <definition value="As defined by RFC-ietf-scitt-architecture-21" /> </concept> <concept> - <code value="application/sensml-exi"/> - <display value="sensml-exi"/> - <definition value="As defined by rfc8428"/> + <code value="application/scvp-cv-request" /> + <display value="scvp-cv-request" /> + <definition value="As defined by rfc5055" /> </concept> <concept> - <code value="application/sensml+cbor"/> - <display value="sensml+cbor"/> - <definition value="As defined by rfc8428"/> + <code value="application/scvp-cv-response" /> + <display value="scvp-cv-response" /> + <definition value="As defined by rfc5055" /> </concept> <concept> - <code value="application/sensml+json"/> - <display value="sensml+json"/> - <definition value="As defined by rfc8428"/> + <code value="application/scvp-vp-request" /> + <display value="scvp-vp-request" /> + <definition value="As defined by rfc5055" /> </concept> <concept> - <code value="application/sensml+xml"/> - <display value="sensml+xml"/> - <definition value="As defined by rfc8428"/> + <code value="application/scvp-vp-response" /> + <display value="scvp-vp-response" /> + <definition value="As defined by rfc5055" /> </concept> <concept> - <code value="application/sep-exi"/> - <display value="sep-exi"/> - <definition value="As defined by Robby Simpson, and IEEE"/> + <code value="application/sd-jwt" /> + <display value="sd-jwt" /> + <definition value="As defined by RFC-ietf-oauth-selective-disclosure-jwt-22" /> </concept> <concept> - <code value="application/sep+xml"/> - <display value="sep+xml"/> - <definition value="As defined by Robby Simpson, and IEEE"/> + <code value="application/sd-jwt+json" /> + <display value="sd-jwt+json" /> + <definition value="As defined by RFC-ietf-oauth-selective-disclosure-jwt-22" /> </concept> <concept> - <code value="application/session-info"/> - <display value="session-info"/> - <definition value="As defined by 3GPP, and Frederic Firmin"/> + <code value="application/sdf+json" /> + <display value="sdf+json" /> + <definition value="As defined by RFC-ietf-asdf-sdf-23" /> </concept> <concept> - <code value="application/set-payment"/> - <display value="set-payment"/> - <definition value="As defined by Brian Korver"/> + <code value="application/sdp" /> + <display value="sdp" /> + <definition value="As defined by rfc8866" /> </concept> <concept> - <code value="application/set-payment-initiation"/> - <display value="set-payment-initiation"/> - <definition value="As defined by Brian Korver"/> + <code value="application/secevent+jwt" /> + <display value="secevent+jwt" /> + <definition value="As defined by rfc8417" /> </concept> <concept> - <code value="application/set-registration"/> - <display value="set-registration"/> - <definition value="As defined by Brian Korver"/> + <code value="application/senml-etch+cbor" /> + <display value="senml-etch+cbor" /> + <definition value="As defined by rfc8790" /> </concept> <concept> - <code value="application/set-registration-initiation"/> - <display value="set-registration-initiation"/> - <definition value="As defined by Brian Korver"/> + <code value="application/senml-etch+json" /> + <display value="senml-etch+json" /> + <definition value="As defined by rfc8790" /> </concept> <concept> - <code value="application/SGML"/> - <display value="SGML"/> - <definition value="As defined by rfc1874"/> + <code value="application/senml-exi" /> + <display value="senml-exi" /> + <definition value="As defined by rfc8428" /> </concept> <concept> - <code value="application/sgml-open-catalog"/> - <display value="sgml-open-catalog"/> - <definition value="As defined by Paul Grosso"/> + <code value="application/senml+cbor" /> + <display value="senml+cbor" /> + <definition value="As defined by rfc8428" /> </concept> <concept> - <code value="application/shf+xml"/> - <display value="shf+xml"/> - <definition value="As defined by rfc4194"/> + <code value="application/senml+json" /> + <display value="senml+json" /> + <definition value="As defined by rfc8428" /> </concept> <concept> - <code value="application/sieve"/> - <display value="sieve"/> - <definition value="As defined by rfc5228"/> + <code value="application/senml+xml" /> + <display value="senml+xml" /> + <definition value="As defined by rfc8428" /> </concept> <concept> - <code value="application/simple-filter+xml"/> - <display value="simple-filter+xml"/> - <definition value="As defined by rfc4661"/> + <code value="application/sensml-exi" /> + <display value="sensml-exi" /> + <definition value="As defined by rfc8428" /> </concept> <concept> - <code value="application/simple-message-summary"/> - <display value="simple-message-summary"/> - <definition value="As defined by rfc3842"/> + <code value="application/sensml+cbor" /> + <display value="sensml+cbor" /> + <definition value="As defined by rfc8428" /> </concept> <concept> - <code value="application/simpleSymbolContainer"/> - <display value="simpleSymbolContainer"/> - <definition value="As defined by 3GPP"/> + <code value="application/sensml+json" /> + <display value="sensml+json" /> + <definition value="As defined by rfc8428" /> </concept> <concept> - <code value="application/sipc"/> - <display value="sipc"/> - <definition value="As defined by NCGIS, and Bryan Blank"/> + <code value="application/sensml+xml" /> + <display value="sensml+xml" /> + <definition value="As defined by rfc8428" /> </concept> <concept> - <code value="application/slate"/> - <display value="slate"/> - <definition value="As defined by Terry Crowley"/> + <code value="application/sep-exi" /> + <display value="sep-exi" /> + <definition value="As defined by Robby Simpson, and IEEE" /> </concept> <concept> - <code value="application/smil+xml"/> - <display value="smil+xml"/> - <definition value="As defined by rfc4536"/> + <code value="application/sep+xml" /> + <display value="sep+xml" /> + <definition value="As defined by Robby Simpson, and IEEE" /> </concept> <concept> - <code value="application/smpte336m"/> - <display value="smpte336m"/> - <definition value="As defined by rfc6597"/> + <code value="application/session-info" /> + <display value="session-info" /> + <definition value="As defined by 3GPP, and Frederic Firmin" /> </concept> <concept> - <code value="application/soap+fastinfoset"/> - <display value="soap+fastinfoset"/> - <definition value="As defined by ITU-T ASN.1 Rapporteur, and ISO-IEC JTC 1 SC 6 ASN.1 Rapporteur"/> + <code value="application/set-payment" /> + <display value="set-payment" /> + <definition value="As defined by Brian Korver" /> </concept> <concept> - <code value="application/soap+xml"/> - <display value="soap+xml"/> - <definition value="As defined by rfc3902"/> + <code value="application/set-payment-initiation" /> + <display value="set-payment-initiation" /> + <definition value="As defined by Brian Korver" /> </concept> <concept> - <code value="application/sparql-query"/> - <display value="sparql-query"/> - <definition value="As defined by W3C, and http://www.w3.org/TR/2007/CR-rdf-sparql-query-20070614/#mediaType"/> + <code value="application/set-registration" /> + <display value="set-registration" /> + <definition value="As defined by Brian Korver" /> </concept> <concept> - <code value="application/spdx+json"/> - <display value="spdx+json"/> - <definition value="As defined by Linux Foundation, and Rose Judge"/> + <code value="application/set-registration-initiation" /> + <display value="set-registration-initiation" /> + <definition value="As defined by Brian Korver" /> </concept> <concept> - <code value="application/sparql-results+xml"/> - <display value="sparql-results+xml"/> - <definition value="As defined by W3C, and http://www.w3.org/TR/2007/CR-rdf-sparql-XMLres-20070925/#mime"/> + <code value="application/SGML" /> + <display value="SGML" /> + <definition value="As defined by rfc1874" /> </concept> <concept> - <code value="application/spirits-event+xml"/> - <display value="spirits-event+xml"/> - <definition value="As defined by rfc3910"/> + <code value="application/sgml-open-catalog" /> + <display value="sgml-open-catalog" /> + <definition value="As defined by Paul Grosso" /> </concept> <concept> - <code value="application/sql"/> - <display value="sql"/> - <definition value="As defined by rfc6922"/> + <code value="application/shf+xml" /> + <display value="shf+xml" /> + <definition value="As defined by rfc4194" /> </concept> <concept> - <code value="application/srgs"/> - <display value="srgs"/> - <definition value="As defined by rfc4267"/> + <code value="application/sieve" /> + <display value="sieve" /> + <definition value="As defined by rfc5228" /> </concept> <concept> - <code value="application/srgs+xml"/> - <display value="srgs+xml"/> - <definition value="As defined by rfc4267"/> + <code value="application/simple-filter+xml" /> + <display value="simple-filter+xml" /> + <definition value="As defined by rfc4661" /> </concept> <concept> - <code value="application/sru+xml"/> - <display value="sru+xml"/> - <definition value="As defined by rfc6207"/> + <code value="application/simple-message-summary" /> + <display value="simple-message-summary" /> + <definition value="As defined by rfc3842" /> </concept> <concept> - <code value="application/sslkeylogfile"/> - <display value="sslkeylogfile"/> - <definition value="As defined by RFC-ietf-tls-keylogfile-02"/> + <code value="application/simpleSymbolContainer" /> + <display value="simpleSymbolContainer" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="application/ssml+xml"/> - <display value="ssml+xml"/> - <definition value="As defined by rfc4267"/> + <code value="application/sipc" /> + <display value="sipc" /> + <definition value="As defined by NCGIS, and Bryan Blank" /> </concept> <concept> - <code value="application/ST2110-41"/> - <display value="ST2110-41"/> - <definition value="As defined by SMPTE, and SMPTE Director of Standards Development"/> + <code value="application/slate" /> + <display value="slate" /> + <definition value="As defined by Terry Crowley" /> </concept> <concept> - <code value="application/stix+json"/> - <display value="stix+json"/> - <definition value="As defined by OASIS, and Chet Ensign"/> + <code value="application/smil+xml" /> + <display value="smil+xml" /> + <definition value="As defined by rfc4536" /> </concept> <concept> - <code value="application/stratum"/> - <display value="stratum"/> - <definition value="As defined by Ben van Hartingsveldt, and 1"/> + <code value="application/smpte336m" /> + <display value="smpte336m" /> + <definition value="As defined by rfc6597" /> </concept> <concept> - <code value="application/swid+cbor"/> - <display value="swid+cbor"/> - <definition value="As defined by rfc9393"/> + <code value="application/soap+fastinfoset" /> + <display value="soap+fastinfoset" /> + <definition value="As defined by ITU-T ASN.1 Rapporteur, and ISO-IEC JTC 1 SC 6 ASN.1 Rapporteur" /> </concept> <concept> - <code value="application/swid+xml"/> - <display value="swid+xml"/> - <definition value="As defined by ISO-IEC JTC 1, David Waltermire, and Ron Brill"/> + <code value="application/soap+xml" /> + <display value="soap+xml" /> + <definition value="As defined by rfc3902" /> </concept> <concept> - <code value="application/tamp-apex-update"/> - <display value="tamp-apex-update"/> - <definition value="As defined by rfc5934"/> + <code value="application/sparql-query" /> + <display value="sparql-query" /> + <definition value="As defined by W3C, and http://www.w3.org/TR/2007/CR-rdf-sparql-query-20070614/#mediaType" /> </concept> <concept> - <code value="application/tamp-apex-update-confirm"/> - <display value="tamp-apex-update-confirm"/> - <definition value="As defined by rfc5934"/> + <code value="application/spdx+json" /> + <display value="spdx+json" /> + <definition value="As defined by Linux Foundation, and Rose Judge" /> </concept> <concept> - <code value="application/tamp-community-update"/> - <display value="tamp-community-update"/> - <definition value="As defined by rfc5934"/> + <code value="application/sparql-results+xml" /> + <display value="sparql-results+xml" /> + <definition value="As defined by W3C, and http://www.w3.org/TR/2007/CR-rdf-sparql-XMLres-20070925/#mime" /> </concept> <concept> - <code value="application/tamp-community-update-confirm"/> - <display value="tamp-community-update-confirm"/> - <definition value="As defined by rfc5934"/> + <code value="application/spirits-event+xml" /> + <display value="spirits-event+xml" /> + <definition value="As defined by rfc3910" /> </concept> <concept> - <code value="application/tamp-error"/> - <display value="tamp-error"/> - <definition value="As defined by rfc5934"/> + <code value="application/sql" /> + <display value="sql" /> + <definition value="As defined by rfc6922" /> </concept> <concept> - <code value="application/tamp-sequence-adjust"/> - <display value="tamp-sequence-adjust"/> - <definition value="As defined by rfc5934"/> + <code value="application/srgs" /> + <display value="srgs" /> + <definition value="As defined by rfc4267" /> </concept> <concept> - <code value="application/tamp-sequence-adjust-confirm"/> - <display value="tamp-sequence-adjust-confirm"/> - <definition value="As defined by rfc5934"/> + <code value="application/srgs+xml" /> + <display value="srgs+xml" /> + <definition value="As defined by rfc4267" /> </concept> <concept> - <code value="application/tamp-status-query"/> - <display value="tamp-status-query"/> - <definition value="As defined by rfc5934"/> + <code value="application/sru+xml" /> + <display value="sru+xml" /> + <definition value="As defined by rfc6207" /> </concept> <concept> - <code value="application/tamp-status-response"/> - <display value="tamp-status-response"/> - <definition value="As defined by rfc5934"/> + <code value="application/sslkeylogfile" /> + <display value="sslkeylogfile" /> + <definition value="As defined by RFC-ietf-tls-keylogfile-05" /> </concept> <concept> - <code value="application/tamp-update"/> - <display value="tamp-update"/> - <definition value="As defined by rfc5934"/> + <code value="application/ssml+xml" /> + <display value="ssml+xml" /> + <definition value="As defined by rfc4267" /> </concept> <concept> - <code value="application/tamp-update-confirm"/> - <display value="tamp-update-confirm"/> - <definition value="As defined by rfc5934"/> + <code value="application/ST2110-41" /> + <display value="ST2110-41" /> + <definition value="As defined by SMPTE, and SMPTE Director of Standards Development" /> </concept> <concept> - <code value="application/taxii+json"/> - <display value="taxii+json"/> - <definition value="As defined by OASIS, and Chet Ensign"/> + <code value="application/stix+json" /> + <display value="stix+json" /> + <definition value="As defined by OASIS, and Chet Ensign" /> </concept> <concept> - <code value="application/td+json"/> - <display value="td+json"/> - <definition value="As defined by W3C, and Matthias Kovatsch"/> + <code value="application/stratum" /> + <display value="stratum" /> + <definition value="As defined by Ben van Hartingsveldt, and 1" /> </concept> <concept> - <code value="application/tei+xml"/> - <display value="tei+xml"/> - <definition value="As defined by rfc6129"/> + <code value="application/suit-envelope+cose" /> + <display value="suit-envelope+cose" /> + <definition value="As defined by RFC-ietf-suit-manifest-34" /> </concept> <concept> - <code value="application/TETRA_ISI"/> - <display value="TETRA_ISI"/> - <definition value="As defined by ETSI, and Miguel Angel Reina Ortega"/> + <code value="application/swid+cbor" /> + <display value="swid+cbor" /> + <definition value="As defined by rfc9393" /> </concept> <concept> - <code value="application/thraud+xml"/> - <display value="thraud+xml"/> - <definition value="As defined by rfc5941"/> + <code value="application/swid+xml" /> + <display value="swid+xml" /> + <definition value="As defined by ISO-IEC JTC 1, David Waltermire, and Ron Brill" /> </concept> <concept> - <code value="application/timestamp-query"/> - <display value="timestamp-query"/> - <definition value="As defined by rfc3161"/> + <code value="application/tamp-apex-update" /> + <display value="tamp-apex-update" /> + <definition value="As defined by rfc5934" /> </concept> <concept> - <code value="application/timestamp-reply"/> - <display value="timestamp-reply"/> - <definition value="As defined by rfc3161"/> + <code value="application/tamp-apex-update-confirm" /> + <display value="tamp-apex-update-confirm" /> + <definition value="As defined by rfc5934" /> </concept> <concept> - <code value="application/timestamped-data"/> - <display value="timestamped-data"/> - <definition value="As defined by rfc5955"/> + <code value="application/tamp-community-update" /> + <display value="tamp-community-update" /> + <definition value="As defined by rfc5934" /> </concept> <concept> - <code value="application/tlsrpt+gzip"/> - <display value="tlsrpt+gzip"/> - <definition value="As defined by rfc8460"/> + <code value="application/tamp-community-update-confirm" /> + <display value="tamp-community-update-confirm" /> + <definition value="As defined by rfc5934" /> </concept> <concept> - <code value="application/tlsrpt+json"/> - <display value="tlsrpt+json"/> - <definition value="As defined by rfc8460"/> + <code value="application/tamp-error" /> + <display value="tamp-error" /> + <definition value="As defined by rfc5934" /> </concept> <concept> - <code value="application/tm+json"/> - <display value="tm+json"/> - <definition value="As defined by W3C, and Sebastian Kaebisch"/> + <code value="application/tamp-sequence-adjust" /> + <display value="tamp-sequence-adjust" /> + <definition value="As defined by rfc5934" /> </concept> <concept> - <code value="application/tnauthlist"/> - <display value="tnauthlist"/> - <definition value="As defined by rfc8226"/> + <code value="application/tamp-sequence-adjust-confirm" /> + <display value="tamp-sequence-adjust-confirm" /> + <definition value="As defined by rfc5934" /> </concept> <concept> - <code value="application/toc+cbor"/> - <display value="toc+cbor"/> - <definition value="As defined by TCG DICE, and Ned M. Smith"/> + <code value="application/tamp-status-query" /> + <display value="tamp-status-query" /> + <definition value="As defined by rfc5934" /> </concept> <concept> - <code value="application/token-introspection+jwt"/> - <display value="token-introspection+jwt"/> - <definition value="As defined by RFC-oauth-jwt-introspection-response-12"/> + <code value="application/tamp-status-response" /> + <display value="tamp-status-response" /> + <definition value="As defined by rfc5934" /> </concept> <concept> - <code value="application/toml"/> - <display value="toml"/> - <definition value="As defined by Ben van Hartingsveldt, and https://github.com/toml-lang/toml/issues/870"/> + <code value="application/tamp-update" /> + <display value="tamp-update" /> + <definition value="As defined by rfc5934" /> </concept> <concept> - <code value="application/trickle-ice-sdpfrag"/> - <display value="trickle-ice-sdpfrag"/> - <definition value="As defined by rfc8840"/> + <code value="application/tamp-update-confirm" /> + <display value="tamp-update-confirm" /> + <definition value="As defined by rfc5934" /> </concept> <concept> - <code value="application/trig"/> - <display value="trig"/> - <definition value="As defined by W3C, and W3C RDF WG"/> + <code value="application/taxii+json" /> + <display value="taxii+json" /> + <definition value="As defined by OASIS, and Chet Ensign" /> </concept> <concept> - <code value="application/application/trust-chain+json"/> - <display value="application/trust-chain+json"/> - <definition value="As defined by OpenID Foundation Artifact Binding WG"/> + <code value="application/td+json" /> + <display value="td+json" /> + <definition value="As defined by W3C, and Matthias Kovatsch" /> </concept> <concept> - <code value="application/application/trust-mark+jwt"/> - <display value="application/trust-mark+jwt"/> - <definition value="As defined by OpenID Foundation Artifact Binding WG"/> + <code value="application/tei+xml" /> + <display value="tei+xml" /> + <definition value="As defined by rfc6129" /> </concept> <concept> - <code value="application/application/trust-mark-delegation+jwt"/> - <display value="application/trust-mark-delegation+jwt"/> - <definition value="As defined by OpenID Foundation Artifact Binding WG"/> + <code value="application/TETRA_ISI" /> + <display value="TETRA_ISI" /> + <definition value="As defined by ETSI, and Miguel Angel Reina Ortega" /> </concept> <concept> - <code value="application/ttml+xml"/> - <display value="ttml+xml"/> - <definition value="As defined by W3C, and W3C Timed Text WG"/> + <code value="application/texinfo" /> + <display value="texinfo" /> + <definition value="As defined by Simon Josefsson, and 3" /> </concept> <concept> - <code value="application/tve-trigger"/> - <display value="tve-trigger"/> - <definition value="As defined by Linda Welsh"/> + <code value="application/thraud+xml" /> + <display value="thraud+xml" /> + <definition value="As defined by rfc5941" /> </concept> <concept> - <code value="application/tzif"/> - <display value="tzif"/> - <definition value="As defined by rfc9636"/> + <code value="application/timestamp-query" /> + <display value="timestamp-query" /> + <definition value="As defined by rfc3161" /> </concept> <concept> - <code value="application/tzif-leap"/> - <display value="tzif-leap"/> - <definition value="As defined by rfc9636"/> + <code value="application/timestamp-reply" /> + <display value="timestamp-reply" /> + <definition value="As defined by rfc3161" /> </concept> <concept> - <code value="application/uccs+cbor"/> - <display value="uccs+cbor"/> - <definition value="As defined by RFC-ietf-rats-uccs-12"/> + <code value="application/timestamped-data" /> + <display value="timestamped-data" /> + <definition value="As defined by rfc5955" /> </concept> <concept> - <code value="application/ujcs+json"/> - <display value="ujcs+json"/> - <definition value="As defined by RFC-ietf-rats-uccs-12"/> + <code value="application/tlsrpt+gzip" /> + <display value="tlsrpt+gzip" /> + <definition value="As defined by rfc8460" /> </concept> <concept> - <code value="application/ulpfec"/> - <display value="ulpfec"/> - <definition value="As defined by rfc5109"/> + <code value="application/tlsrpt+json" /> + <display value="tlsrpt+json" /> + <definition value="As defined by rfc8460" /> </concept> <concept> - <code value="application/urc-grpsheet+xml"/> - <display value="urc-grpsheet+xml"/> - <definition value="As defined by Gottfried Zimmermann, and ISO-IEC JTC 1"/> + <code value="application/tm+json" /> + <display value="tm+json" /> + <definition value="As defined by W3C, and Sebastian Kaebisch" /> </concept> <concept> - <code value="application/urc-ressheet+xml"/> - <display value="urc-ressheet+xml"/> - <definition value="As defined by Gottfried Zimmermann, and ISO-IEC JTC 1"/> + <code value="application/tnauthlist" /> + <display value="tnauthlist" /> + <definition value="As defined by rfc8226" /> </concept> <concept> - <code value="application/urc-targetdesc+xml"/> - <display value="urc-targetdesc+xml"/> - <definition value="As defined by Gottfried Zimmermann, and ISO-IEC JTC 1"/> + <code value="application/toc+cbor" /> + <display value="toc+cbor" /> + <definition + value="As defined by https://trustedcomputinggroup.org/wp-content/uploads/TCG-DICE-Concise-Evidence-Binding-for-SPDM-Version-1.1-RC1 10April25.pdf, TCG DICE WG, and Ned M. Smith" /> </concept> <concept> - <code value="application/urc-uisocketdesc+xml"/> - <display value="urc-uisocketdesc+xml"/> - <definition value="As defined by Gottfried Zimmermann"/> + <code value="application/token-introspection+jwt" /> + <display value="token-introspection+jwt" /> + <definition value="As defined by rfc9701" /> </concept> <concept> - <code value="application/vc"/> - <display value="vc"/> - <definition value="As defined by W3C Verifiable Credentials WG, and Ivan Herman"/> + <code value="application/toml" /> + <display value="toml" /> + <definition value="As defined by Ben van Hartingsveldt, https://github.com/toml-lang/toml/issues/870, and 2" /> </concept> <concept> - <code value="application/vc+cose"/> - <display value="vc+cose"/> - <definition value="As defined by W3C Verifiable Credentials WG, and Ivan Herman"/> + <code value="application/trickle-ice-sdpfrag" /> + <display value="trickle-ice-sdpfrag" /> + <definition value="As defined by rfc8840" /> </concept> <concept> - <code value="application/vc+jwt"/> - <display value="vc+jwt"/> - <definition value="As defined by W3C Verifiable Credentials WG, and Ivan Herman"/> + <code value="application/trig" /> + <display value="trig" /> + <definition value="As defined by W3C, and W3C RDF WG" /> </concept> <concept> - <code value="application/vcard+json"/> - <display value="vcard+json"/> - <definition value="As defined by rfc7095"/> + <code value="application/trust-chain+json" /> + <display value="trust-chain+json" /> + <definition value="As defined by OpenID Foundation Artifact Binding WG" /> </concept> <concept> - <code value="application/vcard+xml"/> - <display value="vcard+xml"/> - <definition value="As defined by rfc6351"/> + <code value="application/trust-mark+jwt" /> + <display value="trust-mark+jwt" /> + <definition value="As defined by OpenID Foundation Artifact Binding WG" /> </concept> <concept> - <code value="application/vemmi"/> - <display value="vemmi"/> - <definition value="As defined by rfc2122"/> + <code value="application/trust-mark-delegation+jwt" /> + <display value="trust-mark-delegation+jwt" /> + <definition value="As defined by OpenID Foundation Artifact Binding WG" /> </concept> <concept> - <code value="application/vnd.1000minds.decision-model+xml"/> - <display value="vnd.1000minds.decision-model+xml"/> - <definition value="As defined by Franz Ombler"/> + <code value="application/ttml+xml" /> + <display value="ttml+xml" /> + <definition value="As defined by W3C, and W3C Timed Text WG" /> </concept> <concept> - <code value="application/vnd.1ob"/> - <display value="vnd.1ob"/> - <definition value="As defined by Rob Coyle"/> + <code value="application/tve-trigger" /> + <display value="tve-trigger" /> + <definition value="As defined by Linda Welsh" /> </concept> <concept> - <code value="application/vnd.3gpp.5gnas"/> - <display value="vnd.3gpp.5gnas"/> - <definition value="As defined by 3GPP, and Jones Lu Yunjie"/> + <code value="application/tzif" /> + <display value="tzif" /> + <definition value="As defined by rfc9636" /> </concept> <concept> - <code value="application/vnd.3gpp.5gsa2x"/> - <display value="vnd.3gpp.5gsa2x"/> - <definition value="As defined by 3GPP CT1, and Dongwook Kim"/> + <code value="application/tzif-leap" /> + <display value="tzif-leap" /> + <definition value="As defined by rfc9636" /> </concept> <concept> - <code value="application/vnd.3gpp.5gsa2x-local-service-information"/> - <display value="vnd.3gpp.5gsa2x-local-service-information"/> - <definition value="As defined by 3GPP CT1, and Dongwook Kim"/> + <code value="application/uccs+cbor" /> + <display value="uccs+cbor" /> + <definition value="As defined by rfc9781" /> </concept> <concept> - <code value="application/vnd.3gpp.5gsv2x"/> - <display value="vnd.3gpp.5gsv2x"/> - <definition value="As defined by 3GPP CT1, and Dongwook Kim"/> + <code value="application/ujcs+json" /> + <display value="ujcs+json" /> + <definition value="As defined by rfc9781" /> </concept> <concept> - <code value="application/vnd.3gpp.5gsv2x-local-service-information"/> - <display value="vnd.3gpp.5gsv2x-local-service-information"/> - <definition value="As defined by 3GPP CT1, and Dongwook Kim"/> + <code value="application/ulpfec" /> + <display value="ulpfec" /> + <definition value="As defined by rfc5109" /> </concept> <concept> - <code value="application/vnd.3gpp.access-transfer-events+xml"/> - <display value="vnd.3gpp.access-transfer-events+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/urc-grpsheet+xml" /> + <display value="urc-grpsheet+xml" /> + <definition value="As defined by Gottfried Zimmermann, and ISO-IEC JTC 1" /> </concept> <concept> - <code value="application/vnd.3gpp.bsf+xml"/> - <display value="vnd.3gpp.bsf+xml"/> - <definition value="As defined by John M Meredith"/> + <code value="application/urc-ressheet+xml" /> + <display value="urc-ressheet+xml" /> + <definition value="As defined by Gottfried Zimmermann, and ISO-IEC JTC 1" /> </concept> <concept> - <code value="application/vnd.3gpp.crs+xml"/> - <display value="vnd.3gpp.crs+xml"/> - <definition value="As defined by Xu Chen"/> + <code value="application/urc-targetdesc+xml" /> + <display value="urc-targetdesc+xml" /> + <definition value="As defined by Gottfried Zimmermann, and ISO-IEC JTC 1" /> </concept> <concept> - <code value="application/vnd.3gpp.current-location-discovery+xml"/> - <display value="vnd.3gpp.current-location-discovery+xml"/> - <definition value="As defined by Peter Leis"/> + <code value="application/urc-uisocketdesc+xml" /> + <display value="urc-uisocketdesc+xml" /> + <definition value="As defined by Gottfried Zimmermann" /> </concept> <concept> - <code value="application/vnd.3gpp.GMOP+xml"/> - <display value="vnd.3gpp.GMOP+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vc" /> + <display value="vc" /> + <definition value="As defined by W3C Verifiable Credentials WG, and Ivan Herman" /> </concept> <concept> - <code value="application/vnd.3gpp.gtpc"/> - <display value="vnd.3gpp.gtpc"/> - <definition value="As defined by 3GPP, and Yang Yong"/> + <code value="application/vc+cose" /> + <display value="vc+cose" /> + <definition value="As defined by W3C Verifiable Credentials WG, and Ivan Herman" /> </concept> <concept> - <code value="application/vnd.3gpp.interworking-data"/> - <display value="vnd.3gpp.interworking-data"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vc+jwt" /> + <display value="vc+jwt" /> + <definition value="As defined by W3C Verifiable Credentials WG, and Ivan Herman" /> </concept> <concept> - <code value="application/vnd.3gpp.lpp"/> - <display value="vnd.3gpp.lpp"/> - <definition value="As defined by 3GPP, and Jones Lu Yunjie"/> + <code value="application/vcard+json" /> + <display value="vcard+json" /> + <definition value="As defined by rfc7095" /> </concept> <concept> - <code value="application/vnd.3gpp.mc-signalling-ear"/> - <display value="vnd.3gpp.mc-signalling-ear"/> - <definition value="As defined by Tim Woodward"/> + <code value="application/vcard+xml" /> + <display value="vcard+xml" /> + <definition value="As defined by rfc6351" /> </concept> <concept> - <code value="application/vnd.3gpp.mcdata-affiliation-command+xml"/> - <display value="vnd.3gpp.mcdata-affiliation-command+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vec+xml" /> + <display value="vec+xml" /> + <definition value="As defined by prostep ivip, and Nora Tazir" /> </concept> <concept> - <code value="application/vnd.3gpp.mcdata-info+xml"/> - <display value="vnd.3gpp.mcdata-info+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vemmi" /> + <display value="vemmi" /> + <definition value="As defined by rfc2122" /> </concept> <concept> - <code value="application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml"/> - <display value="vnd.3gpp.mcdata-msgstore-ctrl-request+xml"/> - <definition value="As defined by Kiran Kapale"/> + <code value="application/vnd.1000minds.decision-model+xml" /> + <display value="vnd.1000minds.decision-model+xml" /> + <definition value="As defined by Franz Ombler" /> </concept> <concept> - <code value="application/vnd.3gpp.mcdata-payload"/> - <display value="vnd.3gpp.mcdata-payload"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.1ob" /> + <display value="vnd.1ob" /> + <definition value="As defined by Rob Coyle" /> </concept> <concept> - <code value="application/vnd.3gpp.mcdata-regroup+xml"/> - <display value="vnd.3gpp.mcdata-regroup+xml"/> - <definition value="As defined by Kiran Kapale"/> + <code value="application/vnd.3gpp.5gnas" /> + <display value="vnd.3gpp.5gnas" /> + <definition value="As defined by 3GPP, and Jones Lu Yunjie" /> </concept> <concept> - <code value="application/vnd.3gpp.mcdata-service-config+xml"/> - <display value="vnd.3gpp.mcdata-service-config+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.5gsa2x" /> + <display value="vnd.3gpp.5gsa2x" /> + <definition value="As defined by 3GPP CT1, and Dongwook Kim" /> </concept> <concept> - <code value="application/vnd.3gpp.mcdata-signalling"/> - <display value="vnd.3gpp.mcdata-signalling"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.5gsa2x-local-service-information" /> + <display value="vnd.3gpp.5gsa2x-local-service-information" /> + <definition value="As defined by 3GPP CT1, and Dongwook Kim" /> </concept> <concept> - <code value="application/vnd.3gpp.mcdata-ue-config+xml"/> - <display value="vnd.3gpp.mcdata-ue-config+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.5gsv2x" /> + <display value="vnd.3gpp.5gsv2x" /> + <definition value="As defined by 3GPP CT1, and Dongwook Kim" /> </concept> <concept> - <code value="application/vnd.3gpp.mcdata-user-profile+xml"/> - <display value="vnd.3gpp.mcdata-user-profile+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.5gsv2x-local-service-information" /> + <display value="vnd.3gpp.5gsv2x-local-service-information" /> + <definition value="As defined by 3GPP CT1, and Dongwook Kim" /> </concept> <concept> - <code value="application/vnd.3gpp.mcptt-affiliation-command+xml"/> - <display value="vnd.3gpp.mcptt-affiliation-command+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.access-transfer-events+xml" /> + <display value="vnd.3gpp.access-transfer-events+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.mcptt-floor-request+xml"/> - <display value="vnd.3gpp.mcptt-floor-request+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.bsf+xml" /> + <display value="vnd.3gpp.bsf+xml" /> + <definition value="As defined by John M Meredith" /> </concept> <concept> - <code value="application/vnd.3gpp.mcptt-info+xml"/> - <display value="vnd.3gpp.mcptt-info+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.crs+xml" /> + <display value="vnd.3gpp.crs+xml" /> + <definition value="As defined by Xu Chen" /> </concept> <concept> - <code value="application/vnd.3gpp.mcptt-location-info+xml"/> - <display value="vnd.3gpp.mcptt-location-info+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.current-location-discovery+xml" /> + <display value="vnd.3gpp.current-location-discovery+xml" /> + <definition value="As defined by Peter Leis" /> </concept> <concept> - <code value="application/vnd.3gpp.mcptt-mbms-usage-info+xml"/> - <display value="vnd.3gpp.mcptt-mbms-usage-info+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.GMOP+xml" /> + <display value="vnd.3gpp.GMOP+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.mcptt-regroup+xml"/> - <display value="vnd.3gpp.mcptt-regroup+xml"/> - <definition value="As defined by Kiran Kapale"/> + <code value="application/vnd.3gpp.gtpc" /> + <display value="vnd.3gpp.gtpc" /> + <definition value="As defined by 3GPP, and Yang Yong" /> </concept> <concept> - <code value="application/vnd.3gpp.mcptt-service-config+xml"/> - <display value="vnd.3gpp.mcptt-service-config+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.interworking-data" /> + <display value="vnd.3gpp.interworking-data" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.mcptt-signed+xml"/> - <display value="vnd.3gpp.mcptt-signed+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.lpp" /> + <display value="vnd.3gpp.lpp" /> + <definition value="As defined by 3GPP, and Jones Lu Yunjie" /> </concept> <concept> - <code value="application/vnd.3gpp.mcptt-ue-config+xml"/> - <display value="vnd.3gpp.mcptt-ue-config+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.mc-signalling-ear" /> + <display value="vnd.3gpp.mc-signalling-ear" /> + <definition value="As defined by Tim Woodward" /> </concept> <concept> - <code value="application/vnd.3gpp.mcptt-ue-init-config+xml"/> - <display value="vnd.3gpp.mcptt-ue-init-config+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.mcdata-affiliation-command+xml" /> + <display value="vnd.3gpp.mcdata-affiliation-command+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.mcptt-user-profile+xml"/> - <display value="vnd.3gpp.mcptt-user-profile+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.mcdata-info+xml" /> + <display value="vnd.3gpp.mcdata-info+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.mcvideo-affiliation-command+xml"/> - <display value="vnd.3gpp.mcvideo-affiliation-command+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml" /> + <display value="vnd.3gpp.mcdata-msgstore-ctrl-request+xml" /> + <definition value="As defined by Kiran Kapale" /> </concept> <concept> - <code value="application/vnd.3gpp.mcvideo-info+xml"/> - <display value="vnd.3gpp.mcvideo-info+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.mcdata-payload" /> + <display value="vnd.3gpp.mcdata-payload" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.mcvideo-location-info+xml"/> - <display value="vnd.3gpp.mcvideo-location-info+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.mcdata-regroup+xml" /> + <display value="vnd.3gpp.mcdata-regroup+xml" /> + <definition value="As defined by Kiran Kapale" /> </concept> <concept> - <code value="application/vnd.3gpp.mcvideo-mbms-usage-info+xml"/> - <display value="vnd.3gpp.mcvideo-mbms-usage-info+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.mcdata-service-config+xml" /> + <display value="vnd.3gpp.mcdata-service-config+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.mcvideo-regroup+xml"/> - <display value="vnd.3gpp.mcvideo-regroup+xml"/> - <definition value="As defined by Kiran Kapale"/> + <code value="application/vnd.3gpp.mcdata-signalling" /> + <display value="vnd.3gpp.mcdata-signalling" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.mcvideo-service-config+xml"/> - <display value="vnd.3gpp.mcvideo-service-config+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.mcdata-ue-config+xml" /> + <display value="vnd.3gpp.mcdata-ue-config+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.mcvideo-transmission-request+xml"/> - <display value="vnd.3gpp.mcvideo-transmission-request+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.mcdata-user-profile+xml" /> + <display value="vnd.3gpp.mcdata-user-profile+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.mcvideo-ue-config+xml"/> - <display value="vnd.3gpp.mcvideo-ue-config+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.mcptt-affiliation-command+xml" /> + <display value="vnd.3gpp.mcptt-affiliation-command+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.mcvideo-user-profile+xml"/> - <display value="vnd.3gpp.mcvideo-user-profile+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.mcptt-floor-request+xml" /> + <display value="vnd.3gpp.mcptt-floor-request+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.mid-call+xml"/> - <display value="vnd.3gpp.mid-call+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.mcptt-info+xml" /> + <display value="vnd.3gpp.mcptt-info+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.ngap"/> - <display value="vnd.3gpp.ngap"/> - <definition value="As defined by 3GPP, and Yang Yong"/> + <code value="application/vnd.3gpp.mcptt-location-info+xml" /> + <display value="vnd.3gpp.mcptt-location-info+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.pfcp"/> - <display value="vnd.3gpp.pfcp"/> - <definition value="As defined by 3GPP, and Bruno Landais"/> + <code value="application/vnd.3gpp.mcptt-mbms-usage-info+xml" /> + <display value="vnd.3gpp.mcptt-mbms-usage-info+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.pic-bw-large"/> - <display value="vnd.3gpp.pic-bw-large"/> - <definition value="As defined by John M Meredith"/> + <code value="application/vnd.3gpp.mcptt-regroup+xml" /> + <display value="vnd.3gpp.mcptt-regroup+xml" /> + <definition value="As defined by Kiran Kapale" /> </concept> <concept> - <code value="application/vnd.3gpp.pic-bw-small"/> - <display value="vnd.3gpp.pic-bw-small"/> - <definition value="As defined by John M Meredith"/> + <code value="application/vnd.3gpp.mcptt-service-config+xml" /> + <display value="vnd.3gpp.mcptt-service-config+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.pic-bw-var"/> - <display value="vnd.3gpp.pic-bw-var"/> - <definition value="As defined by John M Meredith"/> + <code value="application/vnd.3gpp.mcptt-signed+xml" /> + <display value="vnd.3gpp.mcptt-signed+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.pinapp-info+xml"/> - <display value="vnd.3gpp.pinapp-info+xml"/> - <definition value="As defined by 3GPP CT1, and Dongwook Kim"/> + <code value="application/vnd.3gpp.mcptt-ue-config+xml" /> + <display value="vnd.3gpp.mcptt-ue-config+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp-prose-pc3a+xml"/> - <display value="vnd.3gpp-prose-pc3a+xml"/> - <definition value="As defined by Haorui Yang"/> + <code value="application/vnd.3gpp.mcptt-ue-init-config+xml" /> + <display value="vnd.3gpp.mcptt-ue-init-config+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp-prose-pc3ach+xml"/> - <display value="vnd.3gpp-prose-pc3ach+xml"/> - <definition value="As defined by Haorui Yang"/> + <code value="application/vnd.3gpp.mcptt-user-profile+xml" /> + <display value="vnd.3gpp.mcptt-user-profile+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp-prose-pc3ch+xml"/> - <display value="vnd.3gpp-prose-pc3ch+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.mcvideo-affiliation-command+xml" /> + <display value="vnd.3gpp.mcvideo-affiliation-command+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp-prose-pc8+xml"/> - <display value="vnd.3gpp-prose-pc8+xml"/> - <definition value="As defined by Haorui Yang"/> + <code value="application/vnd.3gpp.mcvideo-info+xml" /> + <display value="vnd.3gpp.mcvideo-info+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp-prose+xml"/> - <display value="vnd.3gpp-prose+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.mcvideo-location-info+xml" /> + <display value="vnd.3gpp.mcvideo-location-info+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.s1ap"/> - <display value="vnd.3gpp.s1ap"/> - <definition value="As defined by 3GPP, and Yang Yong"/> + <code value="application/vnd.3gpp.mcvideo-mbms-usage-info+xml" /> + <display value="vnd.3gpp.mcvideo-mbms-usage-info+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.seal-group-doc+xml"/> - <display value="vnd.3gpp.seal-group-doc+xml"/> - <definition value="As defined by Sapan Shah"/> + <code value="application/vnd.3gpp.mcvideo-regroup+xml" /> + <display value="vnd.3gpp.mcvideo-regroup+xml" /> + <definition value="As defined by Kiran Kapale" /> </concept> <concept> - <code value="application/vnd.3gpp.seal-info+xml"/> - <display value="vnd.3gpp.seal-info+xml"/> - <definition value="As defined by 3GPP, and Christian Herrero-Veron"/> + <code value="application/vnd.3gpp.mcvideo-service-config+xml" /> + <display value="vnd.3gpp.mcvideo-service-config+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.seal-location-info+xml"/> - <display value="vnd.3gpp.seal-location-info+xml"/> - <definition value="As defined by 3GPP, and Christian Herrero-Veron"/> + <code value="application/vnd.3gpp.mcvideo-transmission-request+xml" /> + <display value="vnd.3gpp.mcvideo-transmission-request+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.seal-mbms-usage-info+xml"/> - <display value="vnd.3gpp.seal-mbms-usage-info+xml"/> - <definition value="As defined by 3GPP, and Christian Herrero-Veron"/> + <code value="application/vnd.3gpp.mcvideo-ue-config+xml" /> + <display value="vnd.3gpp.mcvideo-ue-config+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.seal-network-QoS-management-info+xml"/> - <display value="vnd.3gpp.seal-network-QoS-management-info+xml"/> - <definition value="As defined by 3GPP, and Christian Herrero-Veron"/> + <code value="application/vnd.3gpp.mcvideo-user-profile+xml" /> + <display value="vnd.3gpp.mcvideo-user-profile+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.seal-ue-config-info+xml"/> - <display value="vnd.3gpp.seal-ue-config-info+xml"/> - <definition value="As defined by Sapan Shah"/> + <code value="application/vnd.3gpp.mid-call+xml" /> + <display value="vnd.3gpp.mid-call+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp.seal-unicast-info+xml"/> - <display value="vnd.3gpp.seal-unicast-info+xml"/> - <definition value="As defined by 3GPP, and Christian Herrero-Veron"/> + <code value="application/vnd.3gpp.ngap" /> + <display value="vnd.3gpp.ngap" /> + <definition value="As defined by 3GPP, and Yang Yong" /> </concept> <concept> - <code value="application/vnd.3gpp.seal-user-profile-info+xml"/> - <display value="vnd.3gpp.seal-user-profile-info+xml"/> - <definition value="As defined by Sapan Shah"/> + <code value="application/vnd.3gpp.pfcp" /> + <display value="vnd.3gpp.pfcp" /> + <definition value="As defined by 3GPP, and Bruno Landais" /> </concept> <concept> - <code value="application/vnd.3gpp.sms"/> - <display value="vnd.3gpp.sms"/> - <definition value="As defined by John M Meredith"/> + <code value="application/vnd.3gpp.pic-bw-large" /> + <display value="vnd.3gpp.pic-bw-large" /> + <definition value="As defined by John M Meredith" /> </concept> <concept> - <code value="application/vnd.3gpp.sms+xml"/> - <display value="vnd.3gpp.sms+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.pic-bw-small" /> + <display value="vnd.3gpp.pic-bw-small" /> + <definition value="As defined by John M Meredith" /> </concept> <concept> - <code value="application/vnd.3gpp.srvcc-ext+xml"/> - <display value="vnd.3gpp.srvcc-ext+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.pic-bw-var" /> + <display value="vnd.3gpp.pic-bw-var" /> + <definition value="As defined by John M Meredith" /> </concept> <concept> - <code value="application/vnd.3gpp.SRVCC-info+xml"/> - <display value="vnd.3gpp.SRVCC-info+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp.pinapp-info+xml" /> + <display value="vnd.3gpp.pinapp-info+xml" /> + <definition value="As defined by 3GPP CT1, and Dongwook Kim" /> </concept> <concept> - <code value="application/vnd.3gpp.state-and-event-info+xml"/> - <display value="vnd.3gpp.state-and-event-info+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp-prose-pc3a+xml" /> + <display value="vnd.3gpp-prose-pc3a+xml" /> + <definition value="As defined by Haorui Yang" /> </concept> <concept> - <code value="application/vnd.3gpp.ussd+xml"/> - <display value="vnd.3gpp.ussd+xml"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp-prose-pc3ach+xml" /> + <display value="vnd.3gpp-prose-pc3ach+xml" /> + <definition value="As defined by Haorui Yang" /> </concept> <concept> - <code value="application/vnd.3gpp.vae-info+xml"/> - <display value="vnd.3gpp.vae-info+xml"/> - <definition value="As defined by 3GPP, and Christian Herrero-Veron"/> + <code value="application/vnd.3gpp-prose-pc3ch+xml" /> + <display value="vnd.3gpp-prose-pc3ch+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp-v2x-local-service-information"/> - <display value="vnd.3gpp-v2x-local-service-information"/> - <definition value="As defined by Frederic Firmin"/> + <code value="application/vnd.3gpp-prose-pc8+xml" /> + <display value="vnd.3gpp-prose-pc8+xml" /> + <definition value="As defined by Haorui Yang" /> </concept> <concept> - <code value="application/vnd.3gpp2.bcmcsinfo+xml"/> - <display value="vnd.3gpp2.bcmcsinfo+xml"/> - <definition value="As defined by AC Mahendran"/> + <code value="application/vnd.3gpp-prose+xml" /> + <display value="vnd.3gpp-prose+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.3gpp2.sms"/> - <display value="vnd.3gpp2.sms"/> - <definition value="As defined by AC Mahendran"/> + <code value="application/vnd.3gpp.s1ap" /> + <display value="vnd.3gpp.s1ap" /> + <definition value="As defined by 3GPP, and Yang Yong" /> </concept> <concept> - <code value="application/vnd.3gpp2.tcap"/> - <display value="vnd.3gpp2.tcap"/> - <definition value="As defined by AC Mahendran"/> + <code value="application/vnd.3gpp.seal-app-comm-requirements-info+xml" /> + <display value="vnd.3gpp.seal-app-comm-requirements-info+xml" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="application/vnd.3gpp.v2x"/> - <display value="vnd.3gpp.v2x"/> - <definition value="As defined by Sang Min Park"/> + <code value="application/vnd.3gpp.seal-data-delivery-info+cbor" /> + <display value="vnd.3gpp.seal-data-delivery-info+cbor" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="application/vnd.3lightssoftware.imagescal"/> - <display value="vnd.3lightssoftware.imagescal"/> - <definition value="As defined by Gus Asadi"/> + <code value="application/vnd.3gpp.seal-data-delivery-info+xml" /> + <display value="vnd.3gpp.seal-data-delivery-info+xml" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="application/vnd.3M.Post-it-Notes"/> - <display value="vnd.3M.Post-it-Notes"/> - <definition value="As defined by Michael OBrien"/> + <code value="application/vnd.3gpp.seal-group-doc+xml" /> + <display value="vnd.3gpp.seal-group-doc+xml" /> + <definition value="As defined by Sapan Shah" /> </concept> <concept> - <code value="application/vnd.accpac.simply.aso"/> - <display value="vnd.accpac.simply.aso"/> - <definition value="As defined by Steve Leow"/> + <code value="application/vnd.3gpp.seal-info+xml" /> + <display value="vnd.3gpp.seal-info+xml" /> + <definition value="As defined by 3GPP, and Christian Herrero-Veron" /> </concept> <concept> - <code value="application/vnd.accpac.simply.imp"/> - <display value="vnd.accpac.simply.imp"/> - <definition value="As defined by Steve Leow"/> + <code value="application/vnd.3gpp.seal-location-info+cbor" /> + <display value="vnd.3gpp.seal-location-info+cbor" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="application/vnd.acm.addressxfer+json"/> - <display value="vnd.acm.addressxfer+json"/> - <definition value="As defined by Sridhar Ramakrishnan"/> + <code value="application/vnd.3gpp.seal-location-info+xml" /> + <display value="vnd.3gpp.seal-location-info+xml" /> + <definition value="As defined by 3GPP, and Christian Herrero-Veron" /> </concept> <concept> - <code value="application/vnd.acm.chatbot+json"/> - <display value="vnd.acm.chatbot+json"/> - <definition value="As defined by Sridhar Ramakrishnan"/> + <code value="application/vnd.3gpp.seal-mbms-usage-info+xml" /> + <display value="vnd.3gpp.seal-mbms-usage-info+xml" /> + <definition value="As defined by 3GPP, and Christian Herrero-Veron" /> </concept> <concept> - <code value="application/vnd.acucobol"/> - <display value="vnd.acucobol"/> - <definition value="As defined by Dovid Lubin"/> + <code value="application/vnd.3gpp.seal-mbs-usage-info+xml" /> + <display value="vnd.3gpp.seal-mbs-usage-info+xml" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="application/vnd.acucorp"/> - <display value="vnd.acucorp"/> - <definition value="As defined by Dovid Lubin"/> + <code value="application/vnd.3gpp.seal-network-QoS-management-info+xml" /> + <display value="vnd.3gpp.seal-network-QoS-management-info+xml" /> + <definition value="As defined by 3GPP, and Christian Herrero-Veron" /> </concept> <concept> - <code value="application/vnd.adobe.flash.movie"/> - <display value="vnd.adobe.flash.movie"/> - <definition value="As defined by Henrik Andersson"/> + <code value="application/vnd.3gpp.seal-network-resource-info+cbor" /> + <display value="vnd.3gpp.seal-network-resource-info+cbor" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="application/vnd.adobe.formscentral.fcdt"/> - <display value="vnd.adobe.formscentral.fcdt"/> - <definition value="As defined by Chris Solc"/> + <code value="application/vnd.3gpp.seal-ue-config-info+xml" /> + <display value="vnd.3gpp.seal-ue-config-info+xml" /> + <definition value="As defined by Sapan Shah" /> </concept> <concept> - <code value="application/vnd.adobe.fxp"/> - <display value="vnd.adobe.fxp"/> - <definition value="As defined by Steven Heintz"/> + <code value="application/vnd.3gpp.seal-unicast-info+xml" /> + <display value="vnd.3gpp.seal-unicast-info+xml" /> + <definition value="As defined by 3GPP, and Christian Herrero-Veron" /> </concept> <concept> - <code value="application/vnd.adobe.partial-upload"/> - <display value="vnd.adobe.partial-upload"/> - <definition value="As defined by Tapani Otala"/> + <code value="application/vnd.3gpp.seal-user-profile-info+xml" /> + <display value="vnd.3gpp.seal-user-profile-info+xml" /> + <definition value="As defined by Sapan Shah" /> </concept> <concept> - <code value="application/vnd.adobe.xdp+xml"/> - <display value="vnd.adobe.xdp+xml"/> - <definition value="As defined by John Brinkman"/> + <code value="application/vnd.3gpp.sms" /> + <display value="vnd.3gpp.sms" /> + <definition value="As defined by John M Meredith" /> </concept> <concept> - <code value="application/vnd.aether.imp"/> - <display value="vnd.aether.imp"/> - <definition value="As defined by Jay Moskowitz"/> + <code value="application/vnd.3gpp.sms+xml" /> + <display value="vnd.3gpp.sms+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.afpc.afplinedata"/> - <display value="vnd.afpc.afplinedata"/> - <definition value="As defined by Jörg Palmer"/> + <code value="application/vnd.3gpp.srvcc-ext+xml" /> + <display value="vnd.3gpp.srvcc-ext+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.afpc.afplinedata-pagedef"/> - <display value="vnd.afpc.afplinedata-pagedef"/> - <definition value="As defined by Jörg Palmer"/> + <code value="application/vnd.3gpp.SRVCC-info+xml" /> + <display value="vnd.3gpp.SRVCC-info+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.afpc.cmoca-cmresource"/> - <display value="vnd.afpc.cmoca-cmresource"/> - <definition value="As defined by Jörg Palmer"/> + <code value="application/vnd.3gpp.state-and-event-info+xml" /> + <display value="vnd.3gpp.state-and-event-info+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.afpc.foca-charset"/> - <display value="vnd.afpc.foca-charset"/> - <definition value="As defined by Jörg Palmer"/> + <code value="application/vnd.3gpp.ussd+xml" /> + <display value="vnd.3gpp.ussd+xml" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.afpc.foca-codedfont"/> - <display value="vnd.afpc.foca-codedfont"/> - <definition value="As defined by Jörg Palmer"/> + <code value="application/vnd.3gpp.vae-info+xml" /> + <display value="vnd.3gpp.vae-info+xml" /> + <definition value="As defined by 3GPP, and Christian Herrero-Veron" /> </concept> <concept> - <code value="application/vnd.afpc.foca-codepage"/> - <display value="vnd.afpc.foca-codepage"/> - <definition value="As defined by Jörg Palmer"/> + <code value="application/vnd.3gpp-v2x-local-service-information" /> + <display value="vnd.3gpp-v2x-local-service-information" /> + <definition value="As defined by Frederic Firmin" /> </concept> <concept> - <code value="application/vnd.afpc.modca"/> - <display value="vnd.afpc.modca"/> - <definition value="As defined by Jörg Palmer"/> + <code value="application/vnd.3gpp2.bcmcsinfo+xml" /> + <display value="vnd.3gpp2.bcmcsinfo+xml" /> + <definition value="As defined by AC Mahendran" /> </concept> <concept> - <code value="application/vnd.afpc.modca-cmtable"/> - <display value="vnd.afpc.modca-cmtable"/> - <definition value="As defined by Jörg Palmer"/> + <code value="application/vnd.3gpp2.sms" /> + <display value="vnd.3gpp2.sms" /> + <definition value="As defined by AC Mahendran" /> </concept> <concept> - <code value="application/vnd.afpc.modca-formdef"/> - <display value="vnd.afpc.modca-formdef"/> - <definition value="As defined by Jörg Palmer"/> + <code value="application/vnd.3gpp2.tcap" /> + <display value="vnd.3gpp2.tcap" /> + <definition value="As defined by AC Mahendran" /> </concept> <concept> - <code value="application/vnd.afpc.modca-mediummap"/> - <display value="vnd.afpc.modca-mediummap"/> - <definition value="As defined by Jörg Palmer"/> + <code value="application/vnd.3gpp.v2x" /> + <display value="vnd.3gpp.v2x" /> + <definition value="As defined by Sang Min Park" /> </concept> <concept> - <code value="application/vnd.afpc.modca-objectcontainer"/> - <display value="vnd.afpc.modca-objectcontainer"/> - <definition value="As defined by Jörg Palmer"/> + <code value="application/vnd.3lightssoftware.imagescal" /> + <display value="vnd.3lightssoftware.imagescal" /> + <definition value="As defined by Gus Asadi" /> </concept> <concept> - <code value="application/vnd.afpc.modca-overlay"/> - <display value="vnd.afpc.modca-overlay"/> - <definition value="As defined by Jörg Palmer"/> + <code value="application/vnd.3M.Post-it-Notes" /> + <display value="vnd.3M.Post-it-Notes" /> + <definition value="As defined by Michael OBrien" /> </concept> <concept> - <code value="application/vnd.afpc.modca-pagesegment"/> - <display value="vnd.afpc.modca-pagesegment"/> - <definition value="As defined by Jörg Palmer"/> + <code value="application/vnd.accpac.simply.aso" /> + <display value="vnd.accpac.simply.aso" /> + <definition value="As defined by Steve Leow" /> </concept> <concept> - <code value="application/vnd.age"/> - <display value="vnd.age"/> - <definition value="As defined by Filippo Valsorda"/> + <code value="application/vnd.accpac.simply.imp" /> + <display value="vnd.accpac.simply.imp" /> + <definition value="As defined by Steve Leow" /> </concept> <concept> - <code value="application/vnd.ah-barcode"/> - <display value="vnd.ah-barcode"/> - <definition value="As defined by Katsuhiko Ichinose"/> + <code value="application/vnd.acm.addressxfer+json" /> + <display value="vnd.acm.addressxfer+json" /> + <definition value="As defined by Sridhar Ramakrishnan" /> </concept> <concept> - <code value="application/vnd.ahead.space"/> - <display value="vnd.ahead.space"/> - <definition value="As defined by Tor Kristensen"/> + <code value="application/vnd.acm.chatbot+json" /> + <display value="vnd.acm.chatbot+json" /> + <definition value="As defined by Sridhar Ramakrishnan" /> </concept> <concept> - <code value="application/vnd.airzip.filesecure.azf"/> - <display value="vnd.airzip.filesecure.azf"/> - <definition value="As defined by Daniel Mould, and Gary Clueit"/> + <code value="application/vnd.acucobol" /> + <display value="vnd.acucobol" /> + <definition value="As defined by Dovid Lubin" /> </concept> <concept> - <code value="application/vnd.airzip.filesecure.azs"/> - <display value="vnd.airzip.filesecure.azs"/> - <definition value="As defined by Daniel Mould, and Gary Clueit"/> + <code value="application/vnd.acucorp" /> + <display value="vnd.acucorp" /> + <definition value="As defined by Dovid Lubin" /> </concept> <concept> - <code value="application/vnd.amadeus+json"/> - <display value="vnd.amadeus+json"/> - <definition value="As defined by Patrick Brosse"/> + <code value="application/vnd.adobe.flash.movie" /> + <display value="vnd.adobe.flash.movie" /> + <definition value="As defined by Henrik Andersson" /> </concept> <concept> - <code value="application/vnd.amazon.mobi8-ebook"/> - <display value="vnd.amazon.mobi8-ebook"/> - <definition value="As defined by Kim Scarborough"/> + <code value="application/vnd.adobe.formscentral.fcdt" /> + <display value="vnd.adobe.formscentral.fcdt" /> + <definition value="As defined by Chris Solc" /> </concept> <concept> - <code value="application/vnd.americandynamics.acc"/> - <display value="vnd.americandynamics.acc"/> - <definition value="As defined by Gary Sands"/> + <code value="application/vnd.adobe.fxp" /> + <display value="vnd.adobe.fxp" /> + <definition value="As defined by Steven Heintz" /> </concept> <concept> - <code value="application/vnd.amiga.ami"/> - <display value="vnd.amiga.ami"/> - <definition value="As defined by Kevin Blumberg"/> + <code value="application/vnd.adobe.partial-upload" /> + <display value="vnd.adobe.partial-upload" /> + <definition value="As defined by Tapani Otala" /> </concept> <concept> - <code value="application/vnd.amundsen.maze+xml"/> - <display value="vnd.amundsen.maze+xml"/> - <definition value="As defined by Mike Amundsen"/> + <code value="application/vnd.adobe.xdp+xml" /> + <display value="vnd.adobe.xdp+xml" /> + <definition value="As defined by John Brinkman" /> </concept> <concept> - <code value="application/vnd.android.ota"/> - <display value="vnd.android.ota"/> - <definition value="As defined by Greg Kaiser"/> + <code value="application/vnd.aether.imp" /> + <display value="vnd.aether.imp" /> + <definition value="As defined by Jay Moskowitz" /> </concept> <concept> - <code value="application/vnd.anki"/> - <display value="vnd.anki"/> - <definition value="As defined by Kerrick Staley"/> + <code value="application/vnd.afpc.afplinedata" /> + <display value="vnd.afpc.afplinedata" /> + <definition value="As defined by Jörg Palmer" /> </concept> <concept> - <code value="application/vnd.anser-web-certificate-issue-initiation"/> - <display value="vnd.anser-web-certificate-issue-initiation"/> - <definition value="As defined by Hiroyoshi Mori"/> + <code value="application/vnd.afpc.afplinedata-pagedef" /> + <display value="vnd.afpc.afplinedata-pagedef" /> + <definition value="As defined by Jörg Palmer" /> </concept> <concept> - <code value="application/vnd.antix.game-component"/> - <display value="vnd.antix.game-component"/> - <definition value="As defined by Daniel Shelton"/> + <code value="application/vnd.afpc.cmoca-cmresource" /> + <display value="vnd.afpc.cmoca-cmresource" /> + <definition value="As defined by Jörg Palmer" /> </concept> <concept> - <code value="application/vnd.apache.arrow.file"/> - <display value="vnd.apache.arrow.file"/> - <definition value="As defined by Apache Arrow Project"/> + <code value="application/vnd.afpc.foca-charset" /> + <display value="vnd.afpc.foca-charset" /> + <definition value="As defined by Jörg Palmer" /> </concept> <concept> - <code value="application/vnd.apache.arrow.stream"/> - <display value="vnd.apache.arrow.stream"/> - <definition value="As defined by Apache Arrow Project"/> + <code value="application/vnd.afpc.foca-codedfont" /> + <display value="vnd.afpc.foca-codedfont" /> + <definition value="As defined by Jörg Palmer" /> </concept> <concept> - <code value="application/vnd.apache.parquet"/> - <display value="vnd.apache.parquet"/> - <definition value="As defined by Apache Parquet Project"/> + <code value="application/vnd.afpc.foca-codepage" /> + <display value="vnd.afpc.foca-codepage" /> + <definition value="As defined by Jörg Palmer" /> </concept> <concept> - <code value="application/vnd.apache.thrift.binary"/> - <display value="vnd.apache.thrift.binary"/> - <definition value="As defined by Roger Meier"/> + <code value="application/vnd.afpc.modca" /> + <display value="vnd.afpc.modca" /> + <definition value="As defined by Jörg Palmer" /> </concept> <concept> - <code value="application/vnd.apache.thrift.compact"/> - <display value="vnd.apache.thrift.compact"/> - <definition value="As defined by Roger Meier"/> + <code value="application/vnd.afpc.modca-cmtable" /> + <display value="vnd.afpc.modca-cmtable" /> + <definition value="As defined by Jörg Palmer" /> </concept> <concept> - <code value="application/vnd.apache.thrift.json"/> - <display value="vnd.apache.thrift.json"/> - <definition value="As defined by Roger Meier"/> + <code value="application/vnd.afpc.modca-formdef" /> + <display value="vnd.afpc.modca-formdef" /> + <definition value="As defined by Jörg Palmer" /> </concept> <concept> - <code value="application/vnd.apexlang"/> - <display value="vnd.apexlang"/> - <definition value="As defined by Fawad Shaikh"/> + <code value="application/vnd.afpc.modca-mediummap" /> + <display value="vnd.afpc.modca-mediummap" /> + <definition value="As defined by Jörg Palmer" /> </concept> <concept> - <code value="application/vnd.api+json"/> - <display value="vnd.api+json"/> - <definition value="As defined by Steve Klabnik"/> + <code value="application/vnd.afpc.modca-objectcontainer" /> + <display value="vnd.afpc.modca-objectcontainer" /> + <definition value="As defined by Jörg Palmer" /> </concept> <concept> - <code value="application/vnd.aplextor.warrp+json"/> - <display value="vnd.aplextor.warrp+json"/> - <definition value="As defined by Oleg Uryutin"/> + <code value="application/vnd.afpc.modca-overlay" /> + <display value="vnd.afpc.modca-overlay" /> + <definition value="As defined by Jörg Palmer" /> </concept> <concept> - <code value="application/vnd.apothekende.reservation+json"/> - <display value="vnd.apothekende.reservation+json"/> - <definition value="As defined by Adrian Föder"/> + <code value="application/vnd.afpc.modca-pagesegment" /> + <display value="vnd.afpc.modca-pagesegment" /> + <definition value="As defined by Jörg Palmer" /> </concept> <concept> - <code value="application/vnd.apple.installer+xml"/> - <display value="vnd.apple.installer+xml"/> - <definition value="As defined by Peter Bierman"/> + <code value="application/vnd.age" /> + <display value="vnd.age" /> + <definition value="As defined by Filippo Valsorda" /> </concept> <concept> - <code value="application/vnd.apple.keynote"/> - <display value="vnd.apple.keynote"/> - <definition value="As defined by Manichandra Sajjanapu"/> + <code value="application/vnd.ah-barcode" /> + <display value="vnd.ah-barcode" /> + <definition value="As defined by Katsuhiko Ichinose" /> </concept> <concept> - <code value="application/vnd.apple.mpegurl"/> - <display value="vnd.apple.mpegurl"/> - <definition value="As defined by rfc8216"/> + <code value="application/vnd.ahead.space" /> + <display value="vnd.ahead.space" /> + <definition value="As defined by Tor Kristensen" /> </concept> <concept> - <code value="application/vnd.apple.numbers"/> - <display value="vnd.apple.numbers"/> - <definition value="As defined by Manichandra Sajjanapu"/> + <code value="application/vnd.airzip.filesecure.azf" /> + <display value="vnd.airzip.filesecure.azf" /> + <definition value="As defined by Daniel Mould, and Gary Clueit" /> </concept> <concept> - <code value="application/vnd.apple.pages"/> - <display value="vnd.apple.pages"/> - <definition value="As defined by Manichandra Sajjanapu"/> + <code value="application/vnd.airzip.filesecure.azs" /> + <display value="vnd.airzip.filesecure.azs" /> + <definition value="As defined by Daniel Mould, and Gary Clueit" /> </concept> <concept> - <code value="application/vnd.aristanetworks.swi"/> - <display value="vnd.aristanetworks.swi"/> - <definition value="As defined by Bill Fenner"/> + <code value="application/vnd.amadeus+json" /> + <display value="vnd.amadeus+json" /> + <definition value="As defined by Patrick Brosse" /> </concept> <concept> - <code value="application/vnd.artisan+json"/> - <display value="vnd.artisan+json"/> - <definition value="As defined by Brad Turner"/> + <code value="application/vnd.amazon.mobi8-ebook" /> + <display value="vnd.amazon.mobi8-ebook" /> + <definition value="As defined by Kim Scarborough" /> </concept> <concept> - <code value="application/vnd.artsquare"/> - <display value="vnd.artsquare"/> - <definition value="As defined by Christopher Smith"/> + <code value="application/vnd.americandynamics.acc" /> + <display value="vnd.americandynamics.acc" /> + <definition value="As defined by Gary Sands" /> </concept> <concept> - <code value="application/vnd.astraea-software.iota"/> - <display value="vnd.astraea-software.iota"/> - <definition value="As defined by Christopher Snazell"/> + <code value="application/vnd.amiga.ami" /> + <display value="vnd.amiga.ami" /> + <definition value="As defined by Kevin Blumberg" /> </concept> <concept> - <code value="application/vnd.audiograph"/> - <display value="vnd.audiograph"/> - <definition value="As defined by Horia Cristian Slusanschi"/> + <code value="application/vnd.amundsen.maze+xml" /> + <display value="vnd.amundsen.maze+xml" /> + <definition value="As defined by Mike Amundsen" /> </concept> <concept> - <code value="application/vnd.autopackage"/> - <display value="vnd.autopackage"/> - <definition value="As defined by Mike Hearn"/> + <code value="application/vnd.android.ota" /> + <display value="vnd.android.ota" /> + <definition value="As defined by Greg Kaiser" /> </concept> <concept> - <code value="application/vnd.avalon+json"/> - <display value="vnd.avalon+json"/> - <definition value="As defined by Ben Hinman"/> + <code value="application/vnd.anki" /> + <display value="vnd.anki" /> + <definition value="As defined by Kerrick Staley" /> </concept> <concept> - <code value="application/vnd.avistar+xml"/> - <display value="vnd.avistar+xml"/> - <definition value="As defined by Vladimir Vysotsky"/> + <code value="application/vnd.anser-web-certificate-issue-initiation" /> + <display value="vnd.anser-web-certificate-issue-initiation" /> + <definition value="As defined by Hiroyoshi Mori" /> </concept> <concept> - <code value="application/vnd.balsamiq.bmml+xml"/> - <display value="vnd.balsamiq.bmml+xml"/> - <definition value="As defined by Giacomo Guilizzoni"/> + <code value="application/vnd.antix.game-component" /> + <display value="vnd.antix.game-component" /> + <definition value="As defined by Daniel Shelton" /> </concept> <concept> - <code value="application/vnd.banana-accounting"/> - <display value="vnd.banana-accounting"/> - <definition value="As defined by José Del Romano"/> + <code value="application/vnd.apache.arrow.file" /> + <display value="vnd.apache.arrow.file" /> + <definition value="As defined by Apache Arrow Project" /> </concept> <concept> - <code value="application/vnd.bbf.usp.error"/> - <display value="vnd.bbf.usp.error"/> - <definition value="As defined by Broadband Forum"/> + <code value="application/vnd.apache.arrow.stream" /> + <display value="vnd.apache.arrow.stream" /> + <definition value="As defined by Apache Arrow Project" /> </concept> <concept> - <code value="application/vnd.bbf.usp.msg"/> - <display value="vnd.bbf.usp.msg"/> - <definition value="As defined by Broadband Forum"/> + <code value="application/vnd.apache.parquet" /> + <display value="vnd.apache.parquet" /> + <definition value="As defined by Apache Parquet Project" /> </concept> <concept> - <code value="application/vnd.bbf.usp.msg+json"/> - <display value="vnd.bbf.usp.msg+json"/> - <definition value="As defined by Broadband Forum"/> + <code value="application/vnd.apache.thrift.binary" /> + <display value="vnd.apache.thrift.binary" /> + <definition value="As defined by Roger Meier" /> </concept> <concept> - <code value="application/vnd.balsamiq.bmpr"/> - <display value="vnd.balsamiq.bmpr"/> - <definition value="As defined by Giacomo Guilizzoni"/> + <code value="application/vnd.apache.thrift.compact" /> + <display value="vnd.apache.thrift.compact" /> + <definition value="As defined by Roger Meier" /> </concept> <concept> - <code value="application/vnd.bekitzur-stech+json"/> - <display value="vnd.bekitzur-stech+json"/> - <definition value="As defined by Jegulsky"/> + <code value="application/vnd.apache.thrift.json" /> + <display value="vnd.apache.thrift.json" /> + <definition value="As defined by Roger Meier" /> </concept> <concept> - <code value="application/vnd.belightsoft.lhzd+zip"/> - <display value="vnd.belightsoft.lhzd+zip"/> - <definition value="As defined by Dmytro Yunchyk"/> + <code value="application/vnd.apexlang" /> + <display value="vnd.apexlang" /> + <definition value="As defined by Fawad Shaikh" /> </concept> <concept> - <code value="application/vnd.belightsoft.lhzl+zip"/> - <display value="vnd.belightsoft.lhzl+zip"/> - <definition value="As defined by Dmytro Yunchyk"/> + <code value="application/vnd.api+json" /> + <display value="vnd.api+json" /> + <definition value="As defined by Steve Klabnik" /> </concept> <concept> - <code value="application/vnd.bint.med-content"/> - <display value="vnd.bint.med-content"/> - <definition value="As defined by Heinz-Peter Schütz"/> + <code value="application/vnd.aplextor.warrp+json" /> + <display value="vnd.aplextor.warrp+json" /> + <definition value="As defined by Oleg Uryutin" /> </concept> <concept> - <code value="application/vnd.biopax.rdf+xml"/> - <display value="vnd.biopax.rdf+xml"/> - <definition value="As defined by Pathway Commons"/> + <code value="application/vnd.apothekende.reservation+json" /> + <display value="vnd.apothekende.reservation+json" /> + <definition value="As defined by Adrian Föder" /> </concept> <concept> - <code value="application/vnd.blink-idb-value-wrapper"/> - <display value="vnd.blink-idb-value-wrapper"/> - <definition value="As defined by Victor Costan"/> + <code value="application/vnd.apple.installer+xml" /> + <display value="vnd.apple.installer+xml" /> + <definition value="As defined by Peter Bierman" /> </concept> <concept> - <code value="application/vnd.blueice.multipass"/> - <display value="vnd.blueice.multipass"/> - <definition value="As defined by Thomas Holmstrom"/> + <code value="application/vnd.apple.keynote" /> + <display value="vnd.apple.keynote" /> + <definition value="As defined by Manichandra Sajjanapu" /> </concept> <concept> - <code value="application/vnd.bluetooth.ep.oob"/> - <display value="vnd.bluetooth.ep.oob"/> - <definition value="As defined by Mike Foley"/> + <code value="application/vnd.apple.mpegurl" /> + <display value="vnd.apple.mpegurl" /> + <definition value="As defined by rfc8216" /> </concept> <concept> - <code value="application/vnd.bluetooth.le.oob"/> - <display value="vnd.bluetooth.le.oob"/> - <definition value="As defined by Mark Powell"/> + <code value="application/vnd.apple.numbers" /> + <display value="vnd.apple.numbers" /> + <definition value="As defined by Manichandra Sajjanapu" /> </concept> <concept> - <code value="application/vnd.bmi"/> - <display value="vnd.bmi"/> - <definition value="As defined by Tadashi Gotoh"/> + <code value="application/vnd.apple.pages" /> + <display value="vnd.apple.pages" /> + <definition value="As defined by Manichandra Sajjanapu" /> </concept> <concept> - <code value="application/vnd.bpf"/> - <display value="vnd.bpf"/> - <definition value="As defined by NCGIS, and Bryan Blank"/> + <code value="application/vnd.aristanetworks.swi" /> + <display value="vnd.aristanetworks.swi" /> + <definition value="As defined by Bill Fenner" /> </concept> <concept> - <code value="application/vnd.bpf3"/> - <display value="vnd.bpf3"/> - <definition value="As defined by NCGIS, and Bryan Blank"/> + <code value="application/vnd.artisan+json" /> + <display value="vnd.artisan+json" /> + <definition value="As defined by Brad Turner" /> </concept> <concept> - <code value="application/vnd.businessobjects"/> - <display value="vnd.businessobjects"/> - <definition value="As defined by Philippe Imoucha"/> + <code value="application/vnd.artsquare" /> + <display value="vnd.artsquare" /> + <definition value="As defined by Christopher Smith" /> </concept> <concept> - <code value="application/vnd.byu.uapi+json"/> - <display value="vnd.byu.uapi+json"/> - <definition value="As defined by Brent Moore"/> + <code value="application/vnd.as207960.vas.config+jer" /> + <display value="vnd.as207960.vas.config+jer" /> + <definition value="As defined by AS207960 Cyfyngedig" /> </concept> <concept> - <code value="application/vnd.bzip3"/> - <display value="vnd.bzip3"/> - <definition value="As defined by Kamila Szewczyk"/> + <code value="application/vnd.as207960.vas.config+uper" /> + <display value="vnd.as207960.vas.config+uper" /> + <definition value="As defined by AS207960 Cyfyngedig" /> </concept> <concept> - <code value="application/vnd.c3voc.schedule+xml"/> - <display value="vnd.c3voc.schedule+xml"/> - <definition value="As defined by Andreas Hubel"/> + <code value="application/vnd.as207960.vas.tap+jer" /> + <display value="vnd.as207960.vas.tap+jer" /> + <definition value="As defined by AS207960 Cyfyngedig" /> </concept> <concept> - <code value="application/vnd.cab-jscript"/> - <display value="vnd.cab-jscript"/> - <definition value="As defined by Joerg Falkenberg"/> + <code value="application/vnd.as207960.vas.tap+uper" /> + <display value="vnd.as207960.vas.tap+uper" /> + <definition value="As defined by AS207960 Cyfyngedig" /> </concept> <concept> - <code value="application/vnd.canon-cpdl"/> - <display value="vnd.canon-cpdl"/> - <definition value="As defined by Shin Muto"/> + <code value="application/vnd.astraea-software.iota" /> + <display value="vnd.astraea-software.iota" /> + <definition value="As defined by Christopher Snazell" /> </concept> <concept> - <code value="application/vnd.canon-lips"/> - <display value="vnd.canon-lips"/> - <definition value="As defined by Shin Muto"/> + <code value="application/vnd.audiograph" /> + <display value="vnd.audiograph" /> + <definition value="As defined by Horia Cristian Slusanschi" /> </concept> <concept> - <code value="application/vnd.capasystems-pg+json"/> - <display value="vnd.capasystems-pg+json"/> - <definition value="As defined by Yüksel Aydemir"/> + <code value="application/vnd.autopackage" /> + <display value="vnd.autopackage" /> + <definition value="As defined by Mike Hearn" /> </concept> <concept> - <code value="application/vnd.cendio.thinlinc.clientconf"/> - <display value="vnd.cendio.thinlinc.clientconf"/> - <definition value="As defined by Peter Astrand"/> + <code value="application/vnd.avalon+json" /> + <display value="vnd.avalon+json" /> + <definition value="As defined by Ben Hinman" /> </concept> <concept> - <code value="application/vnd.century-systems.tcp_stream"/> - <display value="vnd.century-systems.tcp_stream"/> - <definition value="As defined by Shuji Fujii"/> + <code value="application/vnd.avistar+xml" /> + <display value="vnd.avistar+xml" /> + <definition value="As defined by Vladimir Vysotsky" /> </concept> <concept> - <code value="application/vnd.chemdraw+xml"/> - <display value="vnd.chemdraw+xml"/> - <definition value="As defined by Glenn Howes"/> + <code value="application/vnd.balsamiq.bmml+xml" /> + <display value="vnd.balsamiq.bmml+xml" /> + <definition value="As defined by Giacomo Guilizzoni" /> </concept> <concept> - <code value="application/vnd.chess-pgn"/> - <display value="vnd.chess-pgn"/> - <definition value="As defined by Kim Scarborough"/> + <code value="application/vnd.banana-accounting" /> + <display value="vnd.banana-accounting" /> + <definition value="As defined by José Del Romano" /> </concept> <concept> - <code value="application/vnd.chipnuts.karaoke-mmd"/> - <display value="vnd.chipnuts.karaoke-mmd"/> - <definition value="As defined by Chunyun Xiong"/> + <code value="application/vnd.bbf.usp.error" /> + <display value="vnd.bbf.usp.error" /> + <definition value="As defined by Broadband Forum" /> </concept> <concept> - <code value="application/vnd.ciedi"/> - <display value="vnd.ciedi"/> - <definition value="As defined by Hidekazu Enjo"/> + <code value="application/vnd.bbf.usp.msg" /> + <display value="vnd.bbf.usp.msg" /> + <definition value="As defined by Broadband Forum" /> </concept> <concept> - <code value="application/vnd.cinderella"/> - <display value="vnd.cinderella"/> - <definition value="As defined by Ulrich Kortenkamp"/> + <code value="application/vnd.bbf.usp.msg+json" /> + <display value="vnd.bbf.usp.msg+json" /> + <definition value="As defined by Broadband Forum" /> </concept> <concept> - <code value="application/vnd.cirpack.isdn-ext"/> - <display value="vnd.cirpack.isdn-ext"/> - <definition value="As defined by Pascal Mayeux"/> + <code value="application/vnd.balsamiq.bmpr" /> + <display value="vnd.balsamiq.bmpr" /> + <definition value="As defined by Giacomo Guilizzoni" /> </concept> <concept> - <code value="application/vnd.citationstyles.style+xml"/> - <display value="vnd.citationstyles.style+xml"/> - <definition value="As defined by Rintze M. Zelle"/> + <code value="application/vnd.bekitzur-stech+json" /> + <display value="vnd.bekitzur-stech+json" /> + <definition value="As defined by Jegulsky" /> </concept> <concept> - <code value="application/vnd.claymore"/> - <display value="vnd.claymore"/> - <definition value="As defined by Ray Simpson"/> + <code value="application/vnd.belightsoft.lhzd+zip" /> + <display value="vnd.belightsoft.lhzd+zip" /> + <definition value="As defined by Dmytro Yunchyk" /> </concept> <concept> - <code value="application/vnd.cloanto.rp9"/> - <display value="vnd.cloanto.rp9"/> - <definition value="As defined by Mike Labatt"/> + <code value="application/vnd.belightsoft.lhzl+zip" /> + <display value="vnd.belightsoft.lhzl+zip" /> + <definition value="As defined by Dmytro Yunchyk" /> </concept> <concept> - <code value="application/vnd.clonk.c4group"/> - <display value="vnd.clonk.c4group"/> - <definition value="As defined by Guenther Brammer"/> + <code value="application/vnd.bint.med-content" /> + <display value="vnd.bint.med-content" /> + <definition value="As defined by Heinz-Peter Schütz" /> </concept> <concept> - <code value="application/vnd.cluetrust.cartomobile-config"/> - <display value="vnd.cluetrust.cartomobile-config"/> - <definition value="As defined by Gaige Paulsen"/> + <code value="application/vnd.biopax.rdf+xml" /> + <display value="vnd.biopax.rdf+xml" /> + <definition value="As defined by Pathway Commons" /> </concept> <concept> - <code value="application/vnd.cluetrust.cartomobile-config-pkg"/> - <display value="vnd.cluetrust.cartomobile-config-pkg"/> - <definition value="As defined by Gaige Paulsen"/> + <code value="application/vnd.blink-idb-value-wrapper" /> + <display value="vnd.blink-idb-value-wrapper" /> + <definition value="As defined by Victor Costan" /> </concept> <concept> - <code value="application/vnd.cncf.helm.chart.content.v1.tar+gzip"/> - <display value="vnd.cncf.helm.chart.content.v1.tar+gzip"/> - <definition value="As defined by Andrew Block"/> + <code value="application/vnd.blueice.multipass" /> + <display value="vnd.blueice.multipass" /> + <definition value="As defined by Thomas Holmstrom" /> </concept> <concept> - <code value="application/vnd.cncf.helm.chart.provenance.v1.prov"/> - <display value="vnd.cncf.helm.chart.provenance.v1.prov"/> - <definition value="As defined by Andrew Block"/> + <code value="application/vnd.bluetooth.ep.oob" /> + <display value="vnd.bluetooth.ep.oob" /> + <definition value="As defined by Mike Foley" /> </concept> <concept> - <code value="application/vnd.cncf.helm.config.v1+json"/> - <display value="vnd.cncf.helm.config.v1+json"/> - <definition value="As defined by Andrew Block"/> + <code value="application/vnd.bluetooth.le.oob" /> + <display value="vnd.bluetooth.le.oob" /> + <definition value="As defined by Mark Powell" /> </concept> <concept> - <code value="application/vnd.coffeescript"/> - <display value="vnd.coffeescript"/> - <definition value="As defined by Devyn Collier Johnson"/> + <code value="application/vnd.bmi" /> + <display value="vnd.bmi" /> + <definition value="As defined by Tadashi Gotoh" /> </concept> <concept> - <code value="application/vnd.collabio.xodocuments.document"/> - <display value="vnd.collabio.xodocuments.document"/> - <definition value="As defined by Alexey Meandrov"/> + <code value="application/vnd.bpf" /> + <display value="vnd.bpf" /> + <definition value="As defined by NCGIS, and Bryan Blank" /> </concept> <concept> - <code value="application/vnd.collabio.xodocuments.document-template"/> - <display value="vnd.collabio.xodocuments.document-template"/> - <definition value="As defined by Alexey Meandrov"/> + <code value="application/vnd.bpf3" /> + <display value="vnd.bpf3" /> + <definition value="As defined by NCGIS, and Bryan Blank" /> </concept> <concept> - <code value="application/vnd.collabio.xodocuments.presentation"/> - <display value="vnd.collabio.xodocuments.presentation"/> - <definition value="As defined by Alexey Meandrov"/> + <code value="application/vnd.businessobjects" /> + <display value="vnd.businessobjects" /> + <definition value="As defined by Philippe Imoucha" /> </concept> <concept> - <code value="application/vnd.collabio.xodocuments.presentation-template"/> - <display value="vnd.collabio.xodocuments.presentation-template"/> - <definition value="As defined by Alexey Meandrov"/> + <code value="application/vnd.byu.uapi+json" /> + <display value="vnd.byu.uapi+json" /> + <definition value="As defined by Brent Moore" /> </concept> <concept> - <code value="application/vnd.collabio.xodocuments.spreadsheet"/> - <display value="vnd.collabio.xodocuments.spreadsheet"/> - <definition value="As defined by Alexey Meandrov"/> + <code value="application/vnd.bzip3" /> + <display value="vnd.bzip3" /> + <definition value="As defined by Kamila Szewczyk" /> </concept> <concept> - <code value="application/vnd.collabio.xodocuments.spreadsheet-template"/> - <display value="vnd.collabio.xodocuments.spreadsheet-template"/> - <definition value="As defined by Alexey Meandrov"/> + <code value="application/vnd.c3voc.schedule+xml" /> + <display value="vnd.c3voc.schedule+xml" /> + <definition value="As defined by Andreas Hubel" /> </concept> <concept> - <code value="application/vnd.collection.doc+json"/> - <display value="vnd.collection.doc+json"/> - <definition value="As defined by Irakli Nadareishvili"/> + <code value="application/vnd.cab-jscript" /> + <display value="vnd.cab-jscript" /> + <definition value="As defined by Joerg Falkenberg" /> </concept> <concept> - <code value="application/vnd.collection+json"/> - <display value="vnd.collection+json"/> - <definition value="As defined by Mike Amundsen"/> + <code value="application/vnd.canon-cpdl" /> + <display value="vnd.canon-cpdl" /> + <definition value="As defined by Shin Muto" /> </concept> <concept> - <code value="application/vnd.collection.next+json"/> - <display value="vnd.collection.next+json"/> - <definition value="As defined by Ioseb Dzmanashvili"/> + <code value="application/vnd.canon-lips" /> + <display value="vnd.canon-lips" /> + <definition value="As defined by Shin Muto" /> </concept> <concept> - <code value="application/vnd.comicbook-rar"/> - <display value="vnd.comicbook-rar"/> - <definition value="As defined by Kim Scarborough"/> + <code value="application/vnd.capasystems-pg+json" /> + <display value="vnd.capasystems-pg+json" /> + <definition value="As defined by Yüksel Aydemir" /> </concept> <concept> - <code value="application/vnd.comicbook+zip"/> - <display value="vnd.comicbook+zip"/> - <definition value="As defined by Kim Scarborough"/> + <code value="application/vnd.cel" /> + <display value="vnd.cel" /> + <definition value="As defined by Tristan Swadell" /> </concept> <concept> - <code value="application/vnd.commerce-battelle"/> - <display value="vnd.commerce-battelle"/> - <definition value="As defined by David Applebaum"/> + <code value="application/vnd.cendio.thinlinc.clientconf" /> + <display value="vnd.cendio.thinlinc.clientconf" /> + <definition value="As defined by Peter Astrand" /> </concept> <concept> - <code value="application/vnd.commonspace"/> - <display value="vnd.commonspace"/> - <definition value="As defined by Ravinder Chandhok"/> + <code value="application/vnd.century-systems.tcp_stream" /> + <display value="vnd.century-systems.tcp_stream" /> + <definition value="As defined by Shuji Fujii" /> </concept> <concept> - <code value="application/vnd.coreos.ignition+json"/> - <display value="vnd.coreos.ignition+json"/> - <definition value="As defined by Alex Crawford"/> + <code value="application/vnd.chemdraw+xml" /> + <display value="vnd.chemdraw+xml" /> + <definition value="As defined by Glenn Howes" /> </concept> <concept> - <code value="application/vnd.cosmocaller"/> - <display value="vnd.cosmocaller"/> - <definition value="As defined by Steve Dellutri"/> + <code value="application/vnd.chess-pgn" /> + <display value="vnd.chess-pgn" /> + <definition value="As defined by Kim Scarborough" /> </concept> <concept> - <code value="application/vnd.contact.cmsg"/> - <display value="vnd.contact.cmsg"/> - <definition value="As defined by Frank Patz"/> + <code value="application/vnd.chipnuts.karaoke-mmd" /> + <display value="vnd.chipnuts.karaoke-mmd" /> + <definition value="As defined by Chunyun Xiong" /> </concept> <concept> - <code value="application/vnd.crick.clicker"/> - <display value="vnd.crick.clicker"/> - <definition value="As defined by Andrew Burt"/> + <code value="application/vnd.ciedi" /> + <display value="vnd.ciedi" /> + <definition value="As defined by Hidekazu Enjo" /> </concept> <concept> - <code value="application/vnd.crick.clicker.keyboard"/> - <display value="vnd.crick.clicker.keyboard"/> - <definition value="As defined by Andrew Burt"/> + <code value="application/vnd.cinderella" /> + <display value="vnd.cinderella" /> + <definition value="As defined by Ulrich Kortenkamp" /> </concept> <concept> - <code value="application/vnd.crick.clicker.palette"/> - <display value="vnd.crick.clicker.palette"/> - <definition value="As defined by Andrew Burt"/> + <code value="application/vnd.cirpack.isdn-ext" /> + <display value="vnd.cirpack.isdn-ext" /> + <definition value="As defined by Pascal Mayeux" /> </concept> <concept> - <code value="application/vnd.crick.clicker.template"/> - <display value="vnd.crick.clicker.template"/> - <definition value="As defined by Andrew Burt"/> + <code value="application/vnd.citationstyles.style+xml" /> + <display value="vnd.citationstyles.style+xml" /> + <definition value="As defined by Rintze M. Zelle" /> </concept> <concept> - <code value="application/vnd.crick.clicker.wordbank"/> - <display value="vnd.crick.clicker.wordbank"/> - <definition value="As defined by Andrew Burt"/> + <code value="application/vnd.claymore" /> + <display value="vnd.claymore" /> + <definition value="As defined by Ray Simpson" /> </concept> <concept> - <code value="application/vnd.criticaltools.wbs+xml"/> - <display value="vnd.criticaltools.wbs+xml"/> - <definition value="As defined by Jim Spiller"/> + <code value="application/vnd.cloanto.rp9" /> + <display value="vnd.cloanto.rp9" /> + <definition value="As defined by Mike Labatt" /> </concept> <concept> - <code value="application/vnd.cryptii.pipe+json"/> - <display value="vnd.cryptii.pipe+json"/> - <definition value="As defined by Fränz Friederes"/> + <code value="application/vnd.clonk.c4group" /> + <display value="vnd.clonk.c4group" /> + <definition value="As defined by Guenther Brammer" /> </concept> <concept> - <code value="application/vnd.crypto-shade-file"/> - <display value="vnd.crypto-shade-file"/> - <definition value="As defined by Connor Horman"/> + <code value="application/vnd.cluetrust.cartomobile-config" /> + <display value="vnd.cluetrust.cartomobile-config" /> + <definition value="As defined by Gaige Paulsen" /> </concept> <concept> - <code value="application/vnd.cryptomator.encrypted"/> - <display value="vnd.cryptomator.encrypted"/> - <definition value="As defined by Sebastian Stenzel"/> + <code value="application/vnd.cluetrust.cartomobile-config-pkg" /> + <display value="vnd.cluetrust.cartomobile-config-pkg" /> + <definition value="As defined by Gaige Paulsen" /> </concept> <concept> - <code value="application/vnd.cryptomator.vault"/> - <display value="vnd.cryptomator.vault"/> - <definition value="As defined by Sebastian Stenzel"/> + <code value="application/vnd.cncf.helm.chart.content.v1.tar+gzip" /> + <display value="vnd.cncf.helm.chart.content.v1.tar+gzip" /> + <definition value="As defined by Andrew Block" /> </concept> <concept> - <code value="application/vnd.ctc-posml"/> - <display value="vnd.ctc-posml"/> - <definition value="As defined by Bayard Kohlhepp"/> + <code value="application/vnd.cncf.helm.chart.provenance.v1.prov" /> + <display value="vnd.cncf.helm.chart.provenance.v1.prov" /> + <definition value="As defined by Andrew Block" /> </concept> <concept> - <code value="application/vnd.ctct.ws+xml"/> - <display value="vnd.ctct.ws+xml"/> - <definition value="As defined by Jim Ancona"/> + <code value="application/vnd.cncf.helm.config.v1+json" /> + <display value="vnd.cncf.helm.config.v1+json" /> + <definition value="As defined by Andrew Block" /> </concept> <concept> - <code value="application/vnd.cups-pdf"/> - <display value="vnd.cups-pdf"/> - <definition value="As defined by Michael Sweet"/> + <code value="application/vnd.coffeescript" /> + <display value="vnd.coffeescript" /> + <definition value="As defined by Devyn Collier Johnson" /> </concept> <concept> - <code value="application/vnd.cups-postscript"/> - <display value="vnd.cups-postscript"/> - <definition value="As defined by Michael Sweet"/> + <code value="application/vnd.collabio.xodocuments.document" /> + <display value="vnd.collabio.xodocuments.document" /> + <definition value="As defined by Alexey Meandrov" /> </concept> <concept> - <code value="application/vnd.cups-ppd"/> - <display value="vnd.cups-ppd"/> - <definition value="As defined by Michael Sweet"/> + <code value="application/vnd.collabio.xodocuments.document-template" /> + <display value="vnd.collabio.xodocuments.document-template" /> + <definition value="As defined by Alexey Meandrov" /> </concept> <concept> - <code value="application/vnd.cups-raster"/> - <display value="vnd.cups-raster"/> - <definition value="As defined by Michael Sweet"/> + <code value="application/vnd.collabio.xodocuments.presentation" /> + <display value="vnd.collabio.xodocuments.presentation" /> + <definition value="As defined by Alexey Meandrov" /> </concept> <concept> - <code value="application/vnd.cups-raw"/> - <display value="vnd.cups-raw"/> - <definition value="As defined by Michael Sweet"/> + <code value="application/vnd.collabio.xodocuments.presentation-template" /> + <display value="vnd.collabio.xodocuments.presentation-template" /> + <definition value="As defined by Alexey Meandrov" /> </concept> <concept> - <code value="application/vnd.curl"/> - <display value="vnd.curl"/> - <definition value="As defined by Robert Byrnes"/> + <code value="application/vnd.collabio.xodocuments.spreadsheet" /> + <display value="vnd.collabio.xodocuments.spreadsheet" /> + <definition value="As defined by Alexey Meandrov" /> </concept> <concept> - <code value="application/vnd.cyan.dean.root+xml"/> - <display value="vnd.cyan.dean.root+xml"/> - <definition value="As defined by Matt Kern"/> + <code value="application/vnd.collabio.xodocuments.spreadsheet-template" /> + <display value="vnd.collabio.xodocuments.spreadsheet-template" /> + <definition value="As defined by Alexey Meandrov" /> </concept> <concept> - <code value="application/vnd.cybank"/> - <display value="vnd.cybank"/> - <definition value="As defined by Nor Helmee"/> + <code value="application/vnd.collection.doc+json" /> + <display value="vnd.collection.doc+json" /> + <definition value="As defined by Irakli Nadareishvili" /> </concept> <concept> - <code value="application/vnd.cyclonedx+json"/> - <display value="vnd.cyclonedx+json"/> - <definition value="As defined by Patrick Dwyer"/> + <code value="application/vnd.collection+json" /> + <display value="vnd.collection+json" /> + <definition value="As defined by Mike Amundsen" /> </concept> <concept> - <code value="application/vnd.cyclonedx+xml"/> - <display value="vnd.cyclonedx+xml"/> - <definition value="As defined by Patrick Dwyer"/> + <code value="application/vnd.collection.next+json" /> + <display value="vnd.collection.next+json" /> + <definition value="As defined by Ioseb Dzmanashvili" /> </concept> <concept> - <code value="application/vnd.d2l.coursepackage1p0+zip"/> - <display value="vnd.d2l.coursepackage1p0+zip"/> - <definition value="As defined by Viktor Haag"/> + <code value="application/vnd.comicbook-rar" /> + <display value="vnd.comicbook-rar" /> + <definition value="As defined by Kim Scarborough" /> </concept> <concept> - <code value="application/vnd.d3m-dataset"/> - <display value="vnd.d3m-dataset"/> - <definition value="As defined by Mi Tar"/> + <code value="application/vnd.comicbook+zip" /> + <display value="vnd.comicbook+zip" /> + <definition value="As defined by Kim Scarborough" /> </concept> <concept> - <code value="application/vnd.d3m-problem"/> - <display value="vnd.d3m-problem"/> - <definition value="As defined by Mi Tar"/> + <code value="application/vnd.commerce-battelle" /> + <display value="vnd.commerce-battelle" /> + <definition value="As defined by David Applebaum" /> </concept> <concept> - <code value="application/vnd.dart"/> - <display value="vnd.dart"/> - <definition value="As defined by Anders Sandholm"/> + <code value="application/vnd.commonspace" /> + <display value="vnd.commonspace" /> + <definition value="As defined by Ravinder Chandhok" /> </concept> <concept> - <code value="application/vnd.data-vision.rdz"/> - <display value="vnd.data-vision.rdz"/> - <definition value="As defined by James Fields"/> + <code value="application/vnd.coreos.ignition+json" /> + <display value="vnd.coreos.ignition+json" /> + <definition value="As defined by Alex Crawford" /> </concept> <concept> - <code value="application/vnd.datalog"/> - <display value="vnd.datalog"/> - <definition value="As defined by Simon Johnston"/> + <code value="application/vnd.cosmocaller" /> + <display value="vnd.cosmocaller" /> + <definition value="As defined by Steve Dellutri" /> </concept> <concept> - <code value="application/vnd.datapackage+json"/> - <display value="vnd.datapackage+json"/> - <definition value="As defined by Paul Walsh"/> + <code value="application/vnd.contact.cmsg" /> + <display value="vnd.contact.cmsg" /> + <definition value="As defined by Frank Patz" /> </concept> <concept> - <code value="application/vnd.dataresource+json"/> - <display value="vnd.dataresource+json"/> - <definition value="As defined by Paul Walsh"/> + <code value="application/vnd.crick.clicker" /> + <display value="vnd.crick.clicker" /> + <definition value="As defined by Andrew Burt" /> </concept> <concept> - <code value="application/vnd.dbf"/> - <display value="vnd.dbf"/> - <definition value="As defined by Mi Tar"/> + <code value="application/vnd.crick.clicker.keyboard" /> + <display value="vnd.crick.clicker.keyboard" /> + <definition value="As defined by Andrew Burt" /> </concept> <concept> - <code value="application/vnd.dcmp+xml"/> - <display value="vnd.dcmp+xml"/> - <definition value="As defined by Jan Boström"/> + <code value="application/vnd.crick.clicker.palette" /> + <display value="vnd.crick.clicker.palette" /> + <definition value="As defined by Andrew Burt" /> </concept> <concept> - <code value="application/vnd.debian.binary-package"/> - <display value="vnd.debian.binary-package"/> - <definition value="As defined by Debian Policy mailing list"/> + <code value="application/vnd.crick.clicker.template" /> + <display value="vnd.crick.clicker.template" /> + <definition value="As defined by Andrew Burt" /> </concept> <concept> - <code value="application/vnd.dece.data"/> - <display value="vnd.dece.data"/> - <definition value="As defined by Michael A Dolan"/> + <code value="application/vnd.crick.clicker.wordbank" /> + <display value="vnd.crick.clicker.wordbank" /> + <definition value="As defined by Andrew Burt" /> </concept> <concept> - <code value="application/vnd.dece.ttml+xml"/> - <display value="vnd.dece.ttml+xml"/> - <definition value="As defined by Michael A Dolan"/> + <code value="application/vnd.criticaltools.wbs+xml" /> + <display value="vnd.criticaltools.wbs+xml" /> + <definition value="As defined by Jim Spiller" /> </concept> <concept> - <code value="application/vnd.dece.unspecified"/> - <display value="vnd.dece.unspecified"/> - <definition value="As defined by Michael A Dolan"/> + <code value="application/vnd.cryptii.pipe+json" /> + <display value="vnd.cryptii.pipe+json" /> + <definition value="As defined by Fränz Friederes" /> </concept> <concept> - <code value="application/vnd.dece.zip"/> - <display value="vnd.dece.zip"/> - <definition value="As defined by Michael A Dolan"/> + <code value="application/vnd.crypto-shade-file" /> + <display value="vnd.crypto-shade-file" /> + <definition value="As defined by Connor Horman" /> </concept> <concept> - <code value="application/vnd.denovo.fcselayout-link"/> - <display value="vnd.denovo.fcselayout-link"/> - <definition value="As defined by Michael Dixon"/> + <code value="application/vnd.cryptomator.encrypted" /> + <display value="vnd.cryptomator.encrypted" /> + <definition value="As defined by Sebastian Stenzel" /> </concept> <concept> - <code value="application/vnd.desmume.movie"/> - <display value="vnd.desmume.movie"/> - <definition value="As defined by Henrik Andersson"/> + <code value="application/vnd.cryptomator.vault" /> + <display value="vnd.cryptomator.vault" /> + <definition value="As defined by Sebastian Stenzel" /> </concept> <concept> - <code value="application/vnd.dir-bi.plate-dl-nosuffix"/> - <display value="vnd.dir-bi.plate-dl-nosuffix"/> - <definition value="As defined by Yamanaka"/> + <code value="application/vnd.ctc-posml" /> + <display value="vnd.ctc-posml" /> + <definition value="As defined by Bayard Kohlhepp" /> </concept> <concept> - <code value="application/vnd.dm.delegation+xml"/> - <display value="vnd.dm.delegation+xml"/> - <definition value="As defined by Axel Ferrazzini"/> + <code value="application/vnd.ctct.ws+xml" /> + <display value="vnd.ctct.ws+xml" /> + <definition value="As defined by Jim Ancona" /> </concept> <concept> - <code value="application/vnd.dna"/> - <display value="vnd.dna"/> - <definition value="As defined by Meredith Searcy"/> + <code value="application/vnd.cups-pdf" /> + <display value="vnd.cups-pdf" /> + <definition value="As defined by Michael Sweet" /> </concept> <concept> - <code value="application/vnd.document+json"/> - <display value="vnd.document+json"/> - <definition value="As defined by Tom Christie"/> + <code value="application/vnd.cups-postscript" /> + <display value="vnd.cups-postscript" /> + <definition value="As defined by Michael Sweet" /> </concept> <concept> - <code value="application/vnd.dolby.mobile.1"/> - <display value="vnd.dolby.mobile.1"/> - <definition value="As defined by Steve Hattersley"/> + <code value="application/vnd.cups-ppd" /> + <display value="vnd.cups-ppd" /> + <definition value="As defined by Michael Sweet" /> </concept> <concept> - <code value="application/vnd.dolby.mobile.2"/> - <display value="vnd.dolby.mobile.2"/> - <definition value="As defined by Steve Hattersley"/> + <code value="application/vnd.cups-raster" /> + <display value="vnd.cups-raster" /> + <definition value="As defined by Michael Sweet" /> </concept> <concept> - <code value="application/vnd.doremir.scorecloud-binary-document"/> - <display value="vnd.doremir.scorecloud-binary-document"/> - <definition value="As defined by Erik Ronström"/> + <code value="application/vnd.cups-raw" /> + <display value="vnd.cups-raw" /> + <definition value="As defined by Michael Sweet" /> </concept> <concept> - <code value="application/vnd.dpgraph"/> - <display value="vnd.dpgraph"/> - <definition value="As defined by David Parker"/> + <code value="application/vnd.curl" /> + <display value="vnd.curl" /> + <definition value="As defined by Robert Byrnes" /> </concept> <concept> - <code value="application/vnd.dreamfactory"/> - <display value="vnd.dreamfactory"/> - <definition value="As defined by William C. Appleton"/> + <code value="application/vnd.cyan.dean.root+xml" /> + <display value="vnd.cyan.dean.root+xml" /> + <definition value="As defined by Matt Kern" /> </concept> <concept> - <code value="application/vnd.drive+json"/> - <display value="vnd.drive+json"/> - <definition value="As defined by Keith Kester"/> + <code value="application/vnd.cybank" /> + <display value="vnd.cybank" /> + <definition value="As defined by Nor Helmee" /> </concept> <concept> - <code value="application/vnd.dtg.local"/> - <display value="vnd.dtg.local"/> - <definition value="As defined by Ali Teffahi"/> + <code value="application/vnd.cyclonedx+json" /> + <display value="vnd.cyclonedx+json" /> + <definition value="As defined by Patrick Dwyer" /> </concept> <concept> - <code value="application/vnd.dtg.local.flash"/> - <display value="vnd.dtg.local.flash"/> - <definition value="As defined by Ali Teffahi"/> + <code value="application/vnd.cyclonedx+xml" /> + <display value="vnd.cyclonedx+xml" /> + <definition value="As defined by Patrick Dwyer" /> </concept> <concept> - <code value="application/vnd.dtg.local.html"/> - <display value="vnd.dtg.local.html"/> - <definition value="As defined by Ali Teffahi"/> + <code value="application/vnd.d2l.coursepackage1p0+zip" /> + <display value="vnd.d2l.coursepackage1p0+zip" /> + <definition value="As defined by Viktor Haag" /> </concept> <concept> - <code value="application/vnd.dvb.ait"/> - <display value="vnd.dvb.ait"/> - <definition value="As defined by Peter Siebert, and Michael Lagally"/> + <code value="application/vnd.d3m-dataset" /> + <display value="vnd.d3m-dataset" /> + <definition value="As defined by Mi Tar" /> </concept> <concept> - <code value="application/vnd.dvb.dvbisl+xml"/> - <display value="vnd.dvb.dvbisl+xml"/> - <definition value="As defined by Emily DUBS"/> + <code value="application/vnd.d3m-problem" /> + <display value="vnd.d3m-problem" /> + <definition value="As defined by Mi Tar" /> </concept> <concept> - <code value="application/vnd.dvb.dvbj"/> - <display value="vnd.dvb.dvbj"/> - <definition value="As defined by Peter Siebert, and Michael Lagally"/> + <code value="application/vnd.dart" /> + <display value="vnd.dart" /> + <definition value="As defined by Anders Sandholm" /> </concept> <concept> - <code value="application/vnd.dvb.esgcontainer"/> - <display value="vnd.dvb.esgcontainer"/> - <definition value="As defined by Joerg Heuer"/> + <code value="application/vnd.data-vision.rdz" /> + <display value="vnd.data-vision.rdz" /> + <definition value="As defined by James Fields" /> </concept> <concept> - <code value="application/vnd.dvb.ipdcdftnotifaccess"/> - <display value="vnd.dvb.ipdcdftnotifaccess"/> - <definition value="As defined by Roy Yue"/> + <code value="application/vnd.datalog" /> + <display value="vnd.datalog" /> + <definition value="As defined by Simon Johnston" /> </concept> <concept> - <code value="application/vnd.dvb.ipdcesgaccess"/> - <display value="vnd.dvb.ipdcesgaccess"/> - <definition value="As defined by Joerg Heuer"/> + <code value="application/vnd.datapackage+json" /> + <display value="vnd.datapackage+json" /> + <definition value="As defined by Paul Walsh" /> </concept> <concept> - <code value="application/vnd.dvb.ipdcesgaccess2"/> - <display value="vnd.dvb.ipdcesgaccess2"/> - <definition value="As defined by Jerome Marcon"/> + <code value="application/vnd.dataresource+json" /> + <display value="vnd.dataresource+json" /> + <definition value="As defined by Paul Walsh" /> </concept> <concept> - <code value="application/vnd.dvb.ipdcesgpdd"/> - <display value="vnd.dvb.ipdcesgpdd"/> - <definition value="As defined by Jerome Marcon"/> + <code value="application/vnd.dbf" /> + <display value="vnd.dbf" /> + <definition value="As defined by Mi Tar" /> </concept> <concept> - <code value="application/vnd.dvb.ipdcroaming"/> - <display value="vnd.dvb.ipdcroaming"/> - <definition value="As defined by Yiling Xu"/> + <code value="application/vnd.dcmp+xml" /> + <display value="vnd.dcmp+xml" /> + <definition value="As defined by Jan Boström" /> </concept> <concept> - <code value="application/vnd.dvb.iptv.alfec-base"/> - <display value="vnd.dvb.iptv.alfec-base"/> - <definition value="As defined by Jean-Baptiste Henry"/> + <code value="application/vnd.debian.binary-package" /> + <display value="vnd.debian.binary-package" /> + <definition value="As defined by Debian Policy mailing list" /> </concept> <concept> - <code value="application/vnd.dvb.iptv.alfec-enhancement"/> - <display value="vnd.dvb.iptv.alfec-enhancement"/> - <definition value="As defined by Jean-Baptiste Henry"/> + <code value="application/vnd.dece.data" /> + <display value="vnd.dece.data" /> + <definition value="As defined by Michael A Dolan" /> </concept> <concept> - <code value="application/vnd.dvb.notif-aggregate-root+xml"/> - <display value="vnd.dvb.notif-aggregate-root+xml"/> - <definition value="As defined by Roy Yue"/> + <code value="application/vnd.dece.ttml+xml" /> + <display value="vnd.dece.ttml+xml" /> + <definition value="As defined by Michael A Dolan" /> </concept> <concept> - <code value="application/vnd.dvb.notif-container+xml"/> - <display value="vnd.dvb.notif-container+xml"/> - <definition value="As defined by Roy Yue"/> + <code value="application/vnd.dece.unspecified" /> + <display value="vnd.dece.unspecified" /> + <definition value="As defined by Michael A Dolan" /> </concept> <concept> - <code value="application/vnd.dvb.notif-generic+xml"/> - <display value="vnd.dvb.notif-generic+xml"/> - <definition value="As defined by Roy Yue"/> + <code value="application/vnd.dece.zip" /> + <display value="vnd.dece.zip" /> + <definition value="As defined by Michael A Dolan" /> </concept> <concept> - <code value="application/vnd.dvb.notif-ia-msglist+xml"/> - <display value="vnd.dvb.notif-ia-msglist+xml"/> - <definition value="As defined by Roy Yue"/> + <code value="application/vnd.denovo.fcselayout-link" /> + <display value="vnd.denovo.fcselayout-link" /> + <definition value="As defined by Michael Dixon" /> </concept> <concept> - <code value="application/vnd.dvb.notif-ia-registration-request+xml"/> - <display value="vnd.dvb.notif-ia-registration-request+xml"/> - <definition value="As defined by Roy Yue"/> + <code value="application/vnd.desmume.movie" /> + <display value="vnd.desmume.movie" /> + <definition value="As defined by Henrik Andersson" /> </concept> <concept> - <code value="application/vnd.dvb.notif-ia-registration-response+xml"/> - <display value="vnd.dvb.notif-ia-registration-response+xml"/> - <definition value="As defined by Roy Yue"/> + <code value="application/vnd.dir-bi.plate-dl-nosuffix" /> + <display value="vnd.dir-bi.plate-dl-nosuffix" /> + <definition value="As defined by Yamanaka" /> </concept> <concept> - <code value="application/vnd.dvb.notif-init+xml"/> - <display value="vnd.dvb.notif-init+xml"/> - <definition value="As defined by Roy Yue"/> + <code value="application/vnd.dm.delegation+xml" /> + <display value="vnd.dm.delegation+xml" /> + <definition value="As defined by Axel Ferrazzini" /> </concept> <concept> - <code value="application/vnd.dvb.pfr"/> - <display value="vnd.dvb.pfr"/> - <definition value="As defined by Peter Siebert, and Michael Lagally"/> + <code value="application/vnd.dna" /> + <display value="vnd.dna" /> + <definition value="As defined by Meredith Searcy" /> </concept> <concept> - <code value="application/vnd.dvb.service"/> - <display value="vnd.dvb.service"/> - <definition value="As defined by Peter Siebert, and Michael Lagally"/> + <code value="application/vnd.document+json" /> + <display value="vnd.document+json" /> + <definition value="As defined by Tom Christie" /> </concept> <concept> - <code value="application/vnd.dxr"/> - <display value="vnd.dxr"/> - <definition value="As defined by Michael Duffy"/> + <code value="application/vnd.dolby.mobile.1" /> + <display value="vnd.dolby.mobile.1" /> + <definition value="As defined by Steve Hattersley" /> </concept> <concept> - <code value="application/vnd.dynageo"/> - <display value="vnd.dynageo"/> - <definition value="As defined by Roland Mechling"/> + <code value="application/vnd.dolby.mobile.2" /> + <display value="vnd.dolby.mobile.2" /> + <definition value="As defined by Steve Hattersley" /> </concept> <concept> - <code value="application/vnd.dzr"/> - <display value="vnd.dzr"/> - <definition value="As defined by Carl Anderson"/> + <code value="application/vnd.doremir.scorecloud-binary-document" /> + <display value="vnd.doremir.scorecloud-binary-document" /> + <definition value="As defined by Erik Ronström" /> </concept> <concept> - <code value="application/vnd.easykaraoke.cdgdownload"/> - <display value="vnd.easykaraoke.cdgdownload"/> - <definition value="As defined by Iain Downs"/> + <code value="application/vnd.dpgraph" /> + <display value="vnd.dpgraph" /> + <definition value="As defined by David Parker" /> </concept> <concept> - <code value="application/vnd.ecip.rlp"/> - <display value="vnd.ecip.rlp"/> - <definition value="As defined by Wei Tang"/> + <code value="application/vnd.dreamfactory" /> + <display value="vnd.dreamfactory" /> + <definition value="As defined by William C. Appleton" /> </concept> <concept> - <code value="application/vnd.ecdis-update"/> - <display value="vnd.ecdis-update"/> - <definition value="As defined by Gert Buettgenbach"/> + <code value="application/vnd.drive+json" /> + <display value="vnd.drive+json" /> + <definition value="As defined by Keith Kester" /> </concept> <concept> - <code value="application/vnd.eclipse.ditto+json"/> - <display value="vnd.eclipse.ditto+json"/> - <definition value="As defined by Eclipse Ditto developers"/> + <code value="application/vnd.dtg.local" /> + <display value="vnd.dtg.local" /> + <definition value="As defined by Ali Teffahi" /> </concept> <concept> - <code value="application/vnd.ecowin.chart"/> - <display value="vnd.ecowin.chart"/> - <definition value="As defined by Thomas Olsson"/> + <code value="application/vnd.dtg.local.flash" /> + <display value="vnd.dtg.local.flash" /> + <definition value="As defined by Ali Teffahi" /> </concept> <concept> - <code value="application/vnd.ecowin.filerequest"/> - <display value="vnd.ecowin.filerequest"/> - <definition value="As defined by Thomas Olsson"/> + <code value="application/vnd.dtg.local.html" /> + <display value="vnd.dtg.local.html" /> + <definition value="As defined by Ali Teffahi" /> </concept> <concept> - <code value="application/vnd.ecowin.fileupdate"/> - <display value="vnd.ecowin.fileupdate"/> - <definition value="As defined by Thomas Olsson"/> + <code value="application/vnd.dvb.ait" /> + <display value="vnd.dvb.ait" /> + <definition value="As defined by Peter Siebert, and Michael Lagally" /> </concept> <concept> - <code value="application/vnd.ecowin.series"/> - <display value="vnd.ecowin.series"/> - <definition value="As defined by Thomas Olsson"/> + <code value="application/vnd.dvb.dvbisl+xml" /> + <display value="vnd.dvb.dvbisl+xml" /> + <definition value="As defined by Emily DUBS" /> </concept> <concept> - <code value="application/vnd.ecowin.seriesrequest"/> - <display value="vnd.ecowin.seriesrequest"/> - <definition value="As defined by Thomas Olsson"/> + <code value="application/vnd.dvb.dvbj" /> + <display value="vnd.dvb.dvbj" /> + <definition value="As defined by Peter Siebert, and Michael Lagally" /> </concept> <concept> - <code value="application/vnd.ecowin.seriesupdate"/> - <display value="vnd.ecowin.seriesupdate"/> - <definition value="As defined by Thomas Olsson"/> + <code value="application/vnd.dvb.esgcontainer" /> + <display value="vnd.dvb.esgcontainer" /> + <definition value="As defined by Joerg Heuer" /> </concept> <concept> - <code value="application/vnd.efi.img"/> - <display value="vnd.efi.img"/> - <definition value="As defined by UEFI Forum, and Fu Siyuan"/> + <code value="application/vnd.dvb.ipdcdftnotifaccess" /> + <display value="vnd.dvb.ipdcdftnotifaccess" /> + <definition value="As defined by Roy Yue" /> </concept> <concept> - <code value="application/vnd.efi.iso"/> - <display value="vnd.efi.iso"/> - <definition value="As defined by UEFI Forum, and Fu Siyuan"/> + <code value="application/vnd.dvb.ipdcesgaccess" /> + <display value="vnd.dvb.ipdcesgaccess" /> + <definition value="As defined by Joerg Heuer" /> </concept> <concept> - <code value="application/vnd.eln+zip"/> - <display value="vnd.eln+zip"/> - <definition value="As defined by Nicolas CARPI"/> + <code value="application/vnd.dvb.ipdcesgaccess2" /> + <display value="vnd.dvb.ipdcesgaccess2" /> + <definition value="As defined by Jerome Marcon" /> </concept> <concept> - <code value="application/vnd.emclient.accessrequest+xml"/> - <display value="vnd.emclient.accessrequest+xml"/> - <definition value="As defined by Filip Navara"/> + <code value="application/vnd.dvb.ipdcesgpdd" /> + <display value="vnd.dvb.ipdcesgpdd" /> + <definition value="As defined by Jerome Marcon" /> </concept> <concept> - <code value="application/vnd.enliven"/> - <display value="vnd.enliven"/> - <definition value="As defined by Paul Santinelli Jr."/> + <code value="application/vnd.dvb.ipdcroaming" /> + <display value="vnd.dvb.ipdcroaming" /> + <definition value="As defined by Yiling Xu" /> </concept> <concept> - <code value="application/vnd.enphase.envoy"/> - <display value="vnd.enphase.envoy"/> - <definition value="As defined by Chris Eich"/> + <code value="application/vnd.dvb.iptv.alfec-base" /> + <display value="vnd.dvb.iptv.alfec-base" /> + <definition value="As defined by Jean-Baptiste Henry" /> </concept> <concept> - <code value="application/vnd.eprints.data+xml"/> - <display value="vnd.eprints.data+xml"/> - <definition value="As defined by Tim Brody"/> + <code value="application/vnd.dvb.iptv.alfec-enhancement" /> + <display value="vnd.dvb.iptv.alfec-enhancement" /> + <definition value="As defined by Jean-Baptiste Henry" /> </concept> <concept> - <code value="application/vnd.epson.esf"/> - <display value="vnd.epson.esf"/> - <definition value="As defined by Shoji Hoshina"/> + <code value="application/vnd.dvb.notif-aggregate-root+xml" /> + <display value="vnd.dvb.notif-aggregate-root+xml" /> + <definition value="As defined by Roy Yue" /> </concept> <concept> - <code value="application/vnd.epson.msf"/> - <display value="vnd.epson.msf"/> - <definition value="As defined by Shoji Hoshina"/> + <code value="application/vnd.dvb.notif-container+xml" /> + <display value="vnd.dvb.notif-container+xml" /> + <definition value="As defined by Roy Yue" /> </concept> <concept> - <code value="application/vnd.epson.quickanime"/> - <display value="vnd.epson.quickanime"/> - <definition value="As defined by Yu Gu"/> + <code value="application/vnd.dvb.notif-generic+xml" /> + <display value="vnd.dvb.notif-generic+xml" /> + <definition value="As defined by Roy Yue" /> </concept> <concept> - <code value="application/vnd.epson.salt"/> - <display value="vnd.epson.salt"/> - <definition value="As defined by Yasuhito Nagatomo"/> + <code value="application/vnd.dvb.notif-ia-msglist+xml" /> + <display value="vnd.dvb.notif-ia-msglist+xml" /> + <definition value="As defined by Roy Yue" /> </concept> <concept> - <code value="application/vnd.epson.ssf"/> - <display value="vnd.epson.ssf"/> - <definition value="As defined by Shoji Hoshina"/> + <code value="application/vnd.dvb.notif-ia-registration-request+xml" /> + <display value="vnd.dvb.notif-ia-registration-request+xml" /> + <definition value="As defined by Roy Yue" /> </concept> <concept> - <code value="application/vnd.ericsson.quickcall"/> - <display value="vnd.ericsson.quickcall"/> - <definition value="As defined by Paul Tidwell"/> + <code value="application/vnd.dvb.notif-ia-registration-response+xml" /> + <display value="vnd.dvb.notif-ia-registration-response+xml" /> + <definition value="As defined by Roy Yue" /> </concept> <concept> - <code value="application/vnd.erofs"/> - <display value="vnd.erofs"/> - <definition value="As defined by Xiang Gao"/> + <code value="application/vnd.dvb.notif-init+xml" /> + <display value="vnd.dvb.notif-init+xml" /> + <definition value="As defined by Roy Yue" /> </concept> <concept> - <code value="application/vnd.espass-espass+zip"/> - <display value="vnd.espass-espass+zip"/> - <definition value="As defined by Marcus Ligi Büschleb"/> + <code value="application/vnd.dvb.pfr" /> + <display value="vnd.dvb.pfr" /> + <definition value="As defined by Peter Siebert, and Michael Lagally" /> </concept> <concept> - <code value="application/vnd.eszigno3+xml"/> - <display value="vnd.eszigno3+xml"/> - <definition value="As defined by Szilveszter Tóth"/> + <code value="application/vnd.dvb.service" /> + <display value="vnd.dvb.service" /> + <definition value="As defined by Peter Siebert, and Michael Lagally" /> </concept> <concept> - <code value="application/vnd.etsi.aoc+xml"/> - <display value="vnd.etsi.aoc+xml"/> - <definition value="As defined by Shicheng Hu"/> + <code value="application/vnd.dxr" /> + <display value="vnd.dxr" /> + <definition value="As defined by Michael Duffy" /> </concept> <concept> - <code value="application/vnd.etsi.asic-s+zip"/> - <display value="vnd.etsi.asic-s+zip"/> - <definition value="As defined by Miguel Angel Reina Ortega"/> + <code value="application/vnd.dynageo" /> + <display value="vnd.dynageo" /> + <definition value="As defined by Roland Mechling" /> </concept> <concept> - <code value="application/vnd.etsi.asic-e+zip"/> - <display value="vnd.etsi.asic-e+zip"/> - <definition value="As defined by Miguel Angel Reina Ortega"/> + <code value="application/vnd.dzr" /> + <display value="vnd.dzr" /> + <definition value="As defined by Carl Anderson" /> </concept> <concept> - <code value="application/vnd.etsi.cug+xml"/> - <display value="vnd.etsi.cug+xml"/> - <definition value="As defined by Shicheng Hu"/> + <code value="application/vnd.easykaraoke.cdgdownload" /> + <display value="vnd.easykaraoke.cdgdownload" /> + <definition value="As defined by Iain Downs" /> </concept> <concept> - <code value="application/vnd.etsi.iptvcommand+xml"/> - <display value="vnd.etsi.iptvcommand+xml"/> - <definition value="As defined by Shicheng Hu"/> + <code value="application/vnd.ecip.rlp" /> + <display value="vnd.ecip.rlp" /> + <definition value="As defined by Wei Tang" /> </concept> <concept> - <code value="application/vnd.etsi.iptvdiscovery+xml"/> - <display value="vnd.etsi.iptvdiscovery+xml"/> - <definition value="As defined by Shicheng Hu"/> + <code value="application/vnd.ecdis-update" /> + <display value="vnd.ecdis-update" /> + <definition value="As defined by Gert Buettgenbach" /> </concept> <concept> - <code value="application/vnd.etsi.iptvprofile+xml"/> - <display value="vnd.etsi.iptvprofile+xml"/> - <definition value="As defined by Shicheng Hu"/> + <code value="application/vnd.eclipse.ditto+json" /> + <display value="vnd.eclipse.ditto+json" /> + <definition value="As defined by Eclipse Ditto developers" /> </concept> <concept> - <code value="application/vnd.etsi.iptvsad-bc+xml"/> - <display value="vnd.etsi.iptvsad-bc+xml"/> - <definition value="As defined by Shicheng Hu"/> + <code value="application/vnd.ecowin.chart" /> + <display value="vnd.ecowin.chart" /> + <definition value="As defined by Thomas Olsson" /> </concept> <concept> - <code value="application/vnd.etsi.iptvsad-cod+xml"/> - <display value="vnd.etsi.iptvsad-cod+xml"/> - <definition value="As defined by Shicheng Hu"/> + <code value="application/vnd.ecowin.filerequest" /> + <display value="vnd.ecowin.filerequest" /> + <definition value="As defined by Thomas Olsson" /> </concept> <concept> - <code value="application/vnd.etsi.iptvsad-npvr+xml"/> - <display value="vnd.etsi.iptvsad-npvr+xml"/> - <definition value="As defined by Shicheng Hu"/> + <code value="application/vnd.ecowin.fileupdate" /> + <display value="vnd.ecowin.fileupdate" /> + <definition value="As defined by Thomas Olsson" /> </concept> <concept> - <code value="application/vnd.etsi.iptvservice+xml"/> - <display value="vnd.etsi.iptvservice+xml"/> - <definition value="As defined by Miguel Angel Reina Ortega"/> + <code value="application/vnd.ecowin.series" /> + <display value="vnd.ecowin.series" /> + <definition value="As defined by Thomas Olsson" /> </concept> <concept> - <code value="application/vnd.etsi.iptvsync+xml"/> - <display value="vnd.etsi.iptvsync+xml"/> - <definition value="As defined by Miguel Angel Reina Ortega"/> + <code value="application/vnd.ecowin.seriesrequest" /> + <display value="vnd.ecowin.seriesrequest" /> + <definition value="As defined by Thomas Olsson" /> </concept> <concept> - <code value="application/vnd.etsi.iptvueprofile+xml"/> - <display value="vnd.etsi.iptvueprofile+xml"/> - <definition value="As defined by Shicheng Hu"/> + <code value="application/vnd.ecowin.seriesupdate" /> + <display value="vnd.ecowin.seriesupdate" /> + <definition value="As defined by Thomas Olsson" /> </concept> <concept> - <code value="application/vnd.etsi.mcid+xml"/> - <display value="vnd.etsi.mcid+xml"/> - <definition value="As defined by Shicheng Hu"/> + <code value="application/vnd.efi.img" /> + <display value="vnd.efi.img" /> + <definition value="As defined by UEFI Forum, and Fu Siyuan" /> </concept> <concept> - <code value="application/vnd.etsi.mheg5"/> - <display value="vnd.etsi.mheg5"/> - <definition value="As defined by Miguel Angel Reina Ortega, and Ian Medland"/> + <code value="application/vnd.efi.iso" /> + <display value="vnd.efi.iso" /> + <definition value="As defined by UEFI Forum, and Fu Siyuan" /> </concept> <concept> - <code value="application/vnd.etsi.overload-control-policy-dataset+xml"/> - <display value="vnd.etsi.overload-control-policy-dataset+xml"/> - <definition value="As defined by Miguel Angel Reina Ortega"/> + <code value="application/vnd.eln+zip" /> + <display value="vnd.eln+zip" /> + <definition value="As defined by Nicolas CARPI" /> </concept> <concept> - <code value="application/vnd.etsi.pstn+xml"/> - <display value="vnd.etsi.pstn+xml"/> - <definition value="As defined by Jiwan Han, and Thomas Belling"/> + <code value="application/vnd.emclient.accessrequest+xml" /> + <display value="vnd.emclient.accessrequest+xml" /> + <definition value="As defined by Filip Navara" /> </concept> <concept> - <code value="application/vnd.etsi.sci+xml"/> - <display value="vnd.etsi.sci+xml"/> - <definition value="As defined by Shicheng Hu"/> + <code value="application/vnd.enliven" /> + <display value="vnd.enliven" /> + <definition value="As defined by Paul Santinelli Jr." /> </concept> <concept> - <code value="application/vnd.etsi.simservs+xml"/> - <display value="vnd.etsi.simservs+xml"/> - <definition value="As defined by Shicheng Hu"/> + <code value="application/vnd.enphase.envoy" /> + <display value="vnd.enphase.envoy" /> + <definition value="As defined by Chris Eich" /> </concept> <concept> - <code value="application/vnd.etsi.timestamp-token"/> - <display value="vnd.etsi.timestamp-token"/> - <definition value="As defined by Miguel Angel Reina Ortega"/> + <code value="application/vnd.eprints.data+xml" /> + <display value="vnd.eprints.data+xml" /> + <definition value="As defined by Tim Brody" /> </concept> <concept> - <code value="application/vnd.etsi.tsl+xml"/> - <display value="vnd.etsi.tsl+xml"/> - <definition value="As defined by Shicheng Hu"/> + <code value="application/vnd.epson.esf" /> + <display value="vnd.epson.esf" /> + <definition value="As defined by Shoji Hoshina" /> </concept> <concept> - <code value="application/vnd.etsi.tsl.der"/> - <display value="vnd.etsi.tsl.der"/> - <definition value="As defined by Shicheng Hu"/> + <code value="application/vnd.epson.msf" /> + <display value="vnd.epson.msf" /> + <definition value="As defined by Shoji Hoshina" /> </concept> <concept> - <code value="application/vnd.eu.kasparian.car+json"/> - <display value="vnd.eu.kasparian.car+json"/> - <definition value="As defined by Hervé Kasparian"/> + <code value="application/vnd.epson.quickanime" /> + <display value="vnd.epson.quickanime" /> + <definition value="As defined by Yu Gu" /> </concept> <concept> - <code value="application/vnd.eudora.data"/> - <display value="vnd.eudora.data"/> - <definition value="As defined by Pete Resnick"/> + <code value="application/vnd.epson.salt" /> + <display value="vnd.epson.salt" /> + <definition value="As defined by Yasuhito Nagatomo" /> </concept> <concept> - <code value="application/vnd.evolv.ecig.profile"/> - <display value="vnd.evolv.ecig.profile"/> - <definition value="As defined by James Bellinger"/> + <code value="application/vnd.epson.ssf" /> + <display value="vnd.epson.ssf" /> + <definition value="As defined by Shoji Hoshina" /> </concept> <concept> - <code value="application/vnd.evolv.ecig.settings"/> - <display value="vnd.evolv.ecig.settings"/> - <definition value="As defined by James Bellinger"/> + <code value="application/vnd.ericsson.quickcall" /> + <display value="vnd.ericsson.quickcall" /> + <definition value="As defined by Paul Tidwell" /> </concept> <concept> - <code value="application/vnd.evolv.ecig.theme"/> - <display value="vnd.evolv.ecig.theme"/> - <definition value="As defined by James Bellinger"/> + <code value="application/vnd.erofs" /> + <display value="vnd.erofs" /> + <definition value="As defined by Xiang Gao" /> </concept> <concept> - <code value="application/vnd.exstream-empower+zip"/> - <display value="vnd.exstream-empower+zip"/> - <definition value="As defined by Bill Kidwell"/> + <code value="application/vnd.espass-espass+zip" /> + <display value="vnd.espass-espass+zip" /> + <definition value="As defined by Marcus Ligi Büschleb" /> </concept> <concept> - <code value="application/vnd.exstream-package"/> - <display value="vnd.exstream-package"/> - <definition value="As defined by Bill Kidwell"/> + <code value="application/vnd.eszigno3+xml" /> + <display value="vnd.eszigno3+xml" /> + <definition value="As defined by Szilveszter Tóth" /> </concept> <concept> - <code value="application/vnd.ezpix-album"/> - <display value="vnd.ezpix-album"/> - <definition value="As defined by ElectronicZombieCorp"/> + <code value="application/vnd.etsi.aoc+xml" /> + <display value="vnd.etsi.aoc+xml" /> + <definition value="As defined by Shicheng Hu" /> </concept> <concept> - <code value="application/vnd.ezpix-package"/> - <display value="vnd.ezpix-package"/> - <definition value="As defined by ElectronicZombieCorp"/> + <code value="application/vnd.etsi.asic-s+zip" /> + <display value="vnd.etsi.asic-s+zip" /> + <definition value="As defined by Miguel Angel Reina Ortega" /> </concept> <concept> - <code value="application/vnd.f-secure.mobile"/> - <display value="vnd.f-secure.mobile"/> - <definition value="As defined by Samu Sarivaara"/> + <code value="application/vnd.etsi.asic-e+zip" /> + <display value="vnd.etsi.asic-e+zip" /> + <definition value="As defined by Miguel Angel Reina Ortega" /> </concept> <concept> - <code value="application/vnd.fastcopy-disk-image"/> - <display value="vnd.fastcopy-disk-image"/> - <definition value="As defined by Thomas Huth"/> + <code value="application/vnd.etsi.cug+xml" /> + <display value="vnd.etsi.cug+xml" /> + <definition value="As defined by Shicheng Hu" /> </concept> <concept> - <code value="application/vnd.familysearch.gedcom+zip"/> - <display value="vnd.familysearch.gedcom+zip"/> - <definition value="As defined by Gordon Clarke"/> + <code value="application/vnd.etsi.iptvcommand+xml" /> + <display value="vnd.etsi.iptvcommand+xml" /> + <definition value="As defined by Shicheng Hu" /> </concept> <concept> - <code value="application/vnd.fdsn.mseed"/> - <display value="vnd.fdsn.mseed"/> - <definition value="As defined by Chad Trabant"/> + <code value="application/vnd.etsi.iptvdiscovery+xml" /> + <display value="vnd.etsi.iptvdiscovery+xml" /> + <definition value="As defined by Shicheng Hu" /> </concept> <concept> - <code value="application/vnd.fdsn.seed"/> - <display value="vnd.fdsn.seed"/> - <definition value="As defined by Chad Trabant"/> + <code value="application/vnd.etsi.iptvprofile+xml" /> + <display value="vnd.etsi.iptvprofile+xml" /> + <definition value="As defined by Shicheng Hu" /> </concept> <concept> - <code value="application/vnd.fdsn.stationxml+xml"/> - <display value="vnd.fdsn.stationxml+xml"/> - <definition value="As defined by Chad Trabant"/> + <code value="application/vnd.etsi.iptvsad-bc+xml" /> + <display value="vnd.etsi.iptvsad-bc+xml" /> + <definition value="As defined by Shicheng Hu" /> </concept> <concept> - <code value="application/vnd.ffsns"/> - <display value="vnd.ffsns"/> - <definition value="As defined by Holstage"/> + <code value="application/vnd.etsi.iptvsad-cod+xml" /> + <display value="vnd.etsi.iptvsad-cod+xml" /> + <definition value="As defined by Shicheng Hu" /> </concept> <concept> - <code value="application/vnd.ficlab.flb+zip"/> - <display value="vnd.ficlab.flb+zip"/> - <definition value="As defined by Steve Gilberd"/> + <code value="application/vnd.etsi.iptvsad-npvr+xml" /> + <display value="vnd.etsi.iptvsad-npvr+xml" /> + <definition value="As defined by Shicheng Hu" /> </concept> <concept> - <code value="application/vnd.filmit.zfc"/> - <display value="vnd.filmit.zfc"/> - <definition value="As defined by Harms Moeller"/> + <code value="application/vnd.etsi.iptvservice+xml" /> + <display value="vnd.etsi.iptvservice+xml" /> + <definition value="As defined by Miguel Angel Reina Ortega" /> </concept> <concept> - <code value="application/vnd.fints"/> - <display value="vnd.fints"/> - <definition value="As defined by Ingo Hammann"/> + <code value="application/vnd.etsi.iptvsync+xml" /> + <display value="vnd.etsi.iptvsync+xml" /> + <definition value="As defined by Miguel Angel Reina Ortega" /> </concept> <concept> - <code value="application/vnd.firemonkeys.cloudcell"/> - <display value="vnd.firemonkeys.cloudcell"/> - <definition value="As defined by Alex Dubov"/> + <code value="application/vnd.etsi.iptvueprofile+xml" /> + <display value="vnd.etsi.iptvueprofile+xml" /> + <definition value="As defined by Shicheng Hu" /> </concept> <concept> - <code value="application/vnd.FloGraphIt"/> - <display value="vnd.FloGraphIt"/> - <definition value="As defined by Dick Floersch"/> + <code value="application/vnd.etsi.mcid+xml" /> + <display value="vnd.etsi.mcid+xml" /> + <definition value="As defined by Shicheng Hu" /> </concept> <concept> - <code value="application/vnd.fluxtime.clip"/> - <display value="vnd.fluxtime.clip"/> - <definition value="As defined by Marc Winter"/> + <code value="application/vnd.etsi.mheg5" /> + <display value="vnd.etsi.mheg5" /> + <definition value="As defined by Miguel Angel Reina Ortega, and Ian Medland" /> </concept> <concept> - <code value="application/vnd.font-fontforge-sfd"/> - <display value="vnd.font-fontforge-sfd"/> - <definition value="As defined by George Williams"/> + <code value="application/vnd.etsi.overload-control-policy-dataset+xml" /> + <display value="vnd.etsi.overload-control-policy-dataset+xml" /> + <definition value="As defined by Miguel Angel Reina Ortega" /> </concept> <concept> - <code value="application/vnd.framemaker"/> - <display value="vnd.framemaker"/> - <definition value="As defined by Mike Wexler"/> + <code value="application/vnd.etsi.pstn+xml" /> + <display value="vnd.etsi.pstn+xml" /> + <definition value="As defined by Jiwan Han, and Thomas Belling" /> </concept> <concept> - <code value="application/vnd.freelog.comic"/> - <display value="vnd.freelog.comic"/> - <definition value="As defined by Liu Qiancen"/> + <code value="application/vnd.etsi.sci+xml" /> + <display value="vnd.etsi.sci+xml" /> + <definition value="As defined by Shicheng Hu" /> </concept> <concept> - <code value="application/vnd.fsc.weblaunch"/> - <display value="vnd.fsc.weblaunch"/> - <definition value="As defined by Derek Smith"/> + <code value="application/vnd.etsi.simservs+xml" /> + <display value="vnd.etsi.simservs+xml" /> + <definition value="As defined by Shicheng Hu" /> </concept> <concept> - <code value="application/vnd.fujifilm.fb.docuworks"/> - <display value="vnd.fujifilm.fb.docuworks"/> - <definition value="As defined by Kazuya Iimura"/> + <code value="application/vnd.etsi.timestamp-token" /> + <display value="vnd.etsi.timestamp-token" /> + <definition value="As defined by Miguel Angel Reina Ortega" /> </concept> <concept> - <code value="application/vnd.fujifilm.fb.docuworks.binder"/> - <display value="vnd.fujifilm.fb.docuworks.binder"/> - <definition value="As defined by Kazuya Iimura"/> + <code value="application/vnd.etsi.tsl+xml" /> + <display value="vnd.etsi.tsl+xml" /> + <definition value="As defined by Shicheng Hu" /> </concept> <concept> - <code value="application/vnd.fujifilm.fb.docuworks.container"/> - <display value="vnd.fujifilm.fb.docuworks.container"/> - <definition value="As defined by Kazuya Iimura"/> + <code value="application/vnd.etsi.tsl.der" /> + <display value="vnd.etsi.tsl.der" /> + <definition value="As defined by Shicheng Hu" /> </concept> <concept> - <code value="application/vnd.fujifilm.fb.jfi+xml"/> - <display value="vnd.fujifilm.fb.jfi+xml"/> - <definition value="As defined by Keitaro Ishida"/> + <code value="application/vnd.eu.kasparian.car+json" /> + <display value="vnd.eu.kasparian.car+json" /> + <definition value="As defined by Hervé Kasparian" /> </concept> <concept> - <code value="application/vnd.fujitsu.oasys"/> - <display value="vnd.fujitsu.oasys"/> - <definition value="As defined by Nobukazu Togashi"/> + <code value="application/vnd.eudora.data" /> + <display value="vnd.eudora.data" /> + <definition value="As defined by Pete Resnick" /> </concept> <concept> - <code value="application/vnd.fujitsu.oasys2"/> - <display value="vnd.fujitsu.oasys2"/> - <definition value="As defined by Nobukazu Togashi"/> + <code value="application/vnd.evolv.ecig.profile" /> + <display value="vnd.evolv.ecig.profile" /> + <definition value="As defined by James Bellinger" /> </concept> <concept> - <code value="application/vnd.fujitsu.oasys3"/> - <display value="vnd.fujitsu.oasys3"/> - <definition value="As defined by Seiji Okudaira"/> + <code value="application/vnd.evolv.ecig.settings" /> + <display value="vnd.evolv.ecig.settings" /> + <definition value="As defined by James Bellinger" /> </concept> <concept> - <code value="application/vnd.fujitsu.oasysgp"/> - <display value="vnd.fujitsu.oasysgp"/> - <definition value="As defined by Masahiko Sugimoto"/> + <code value="application/vnd.evolv.ecig.theme" /> + <display value="vnd.evolv.ecig.theme" /> + <definition value="As defined by James Bellinger" /> </concept> <concept> - <code value="application/vnd.fujitsu.oasysprs"/> - <display value="vnd.fujitsu.oasysprs"/> - <definition value="As defined by Masumi Ogita"/> + <code value="application/vnd.exstream-empower+zip" /> + <display value="vnd.exstream-empower+zip" /> + <definition value="As defined by Bill Kidwell" /> </concept> <concept> - <code value="application/vnd.fujixerox.ART4"/> - <display value="vnd.fujixerox.ART4"/> - <definition value="As defined by Fumio Tanabe"/> + <code value="application/vnd.exstream-package" /> + <display value="vnd.exstream-package" /> + <definition value="As defined by Bill Kidwell" /> </concept> <concept> - <code value="application/vnd.fujixerox.ART-EX"/> - <display value="vnd.fujixerox.ART-EX"/> - <definition value="As defined by Fumio Tanabe"/> + <code value="application/vnd.ezpix-album" /> + <display value="vnd.ezpix-album" /> + <definition value="As defined by ElectronicZombieCorp" /> </concept> <concept> - <code value="application/vnd.fujixerox.ddd"/> - <display value="vnd.fujixerox.ddd"/> - <definition value="As defined by Masanori Onda"/> + <code value="application/vnd.ezpix-package" /> + <display value="vnd.ezpix-package" /> + <definition value="As defined by ElectronicZombieCorp" /> </concept> <concept> - <code value="application/vnd.fujixerox.docuworks"/> - <display value="vnd.fujixerox.docuworks"/> - <definition value="As defined by Takatomo Wakibayashi"/> + <code value="application/vnd.f-secure.mobile" /> + <display value="vnd.f-secure.mobile" /> + <definition value="As defined by Samu Sarivaara" /> </concept> <concept> - <code value="application/vnd.fujixerox.docuworks.binder"/> - <display value="vnd.fujixerox.docuworks.binder"/> - <definition value="As defined by Takashi Matsumoto"/> + <code value="application/vnd.fastcopy-disk-image" /> + <display value="vnd.fastcopy-disk-image" /> + <definition value="As defined by Thomas Huth" /> </concept> <concept> - <code value="application/vnd.fujixerox.docuworks.container"/> - <display value="vnd.fujixerox.docuworks.container"/> - <definition value="As defined by Kiyoshi Tashiro"/> + <code value="application/vnd.familysearch.gedcom+zip" /> + <display value="vnd.familysearch.gedcom+zip" /> + <definition value="As defined by Gordon Clarke" /> </concept> <concept> - <code value="application/vnd.fujixerox.HBPL"/> - <display value="vnd.fujixerox.HBPL"/> - <definition value="As defined by Fumio Tanabe"/> + <code value="application/vnd.fdsn.mseed" /> + <display value="vnd.fdsn.mseed" /> + <definition value="As defined by International FDSN" /> </concept> <concept> - <code value="application/vnd.fut-misnet"/> - <display value="vnd.fut-misnet"/> - <definition value="As defined by Jann Pruulman"/> + <code value="application/vnd.fdsn.seed" /> + <display value="vnd.fdsn.seed" /> + <definition value="As defined by Chad Trabant" /> </concept> <concept> - <code value="application/vnd.futoin+cbor"/> - <display value="vnd.futoin+cbor"/> - <definition value="As defined by Andrey Galkin"/> + <code value="application/vnd.fdsn.stationxml+xml" /> + <display value="vnd.fdsn.stationxml+xml" /> + <definition value="As defined by International FDSN" /> </concept> <concept> - <code value="application/vnd.futoin+json"/> - <display value="vnd.futoin+json"/> - <definition value="As defined by Andrey Galkin"/> + <code value="application/vnd.ffsns" /> + <display value="vnd.ffsns" /> + <definition value="As defined by Holstage" /> </concept> <concept> - <code value="application/vnd.fuzzysheet"/> - <display value="vnd.fuzzysheet"/> - <definition value="As defined by Simon Birtwistle"/> + <code value="application/vnd.fgb" /> + <display value="vnd.fgb" /> + <definition value="As defined by Björn Harrtell" /> </concept> <concept> - <code value="application/vnd.ga4gh.passport+jwt"/> - <display value="vnd.ga4gh.passport+jwt"/> - <definition value="As defined by GA4GH Secretariat"/> + <code value="application/vnd.ficlab.flb+zip" /> + <display value="vnd.ficlab.flb+zip" /> + <definition value="As defined by Steve Gilberd" /> </concept> <concept> - <code value="application/vnd.genomatix.tuxedo"/> - <display value="vnd.genomatix.tuxedo"/> - <definition value="As defined by Torben Frey"/> + <code value="application/vnd.filmit.zfc" /> + <display value="vnd.filmit.zfc" /> + <definition value="As defined by Harms Moeller" /> </concept> <concept> - <code value="application/vnd.genozip"/> - <display value="vnd.genozip"/> - <definition value="As defined by Divon Lan"/> + <code value="application/vnd.fints" /> + <display value="vnd.fints" /> + <definition value="As defined by Ingo Hammann" /> </concept> <concept> - <code value="application/vnd.gentics.grd+json"/> - <display value="vnd.gentics.grd+json"/> - <definition value="As defined by Philipp Gortan"/> + <code value="application/vnd.firemonkeys.cloudcell" /> + <display value="vnd.firemonkeys.cloudcell" /> + <definition value="As defined by Alex Dubov" /> </concept> <concept> - <code value="application/vnd.gentoo.catmetadata+xml"/> - <display value="vnd.gentoo.catmetadata+xml"/> - <definition value="As defined by Michal Górny"/> + <code value="application/vnd.FloGraphIt" /> + <display value="vnd.FloGraphIt" /> + <definition value="As defined by Dick Floersch" /> </concept> <concept> - <code value="application/vnd.gentoo.ebuild"/> - <display value="vnd.gentoo.ebuild"/> - <definition value="As defined by Michal Górny"/> + <code value="application/vnd.fluxtime.clip" /> + <display value="vnd.fluxtime.clip" /> + <definition value="As defined by Marc Winter" /> </concept> <concept> - <code value="application/vnd.gentoo.eclass"/> - <display value="vnd.gentoo.eclass"/> - <definition value="As defined by Michal Górny"/> + <code value="application/vnd.font-fontforge-sfd" /> + <display value="vnd.font-fontforge-sfd" /> + <definition value="As defined by George Williams" /> </concept> <concept> - <code value="application/vnd.gentoo.gpkg"/> - <display value="vnd.gentoo.gpkg"/> - <definition value="As defined by Michal Górny"/> + <code value="application/vnd.framemaker" /> + <display value="vnd.framemaker" /> + <definition value="As defined by Mike Wexler" /> </concept> <concept> - <code value="application/vnd.gentoo.manifest"/> - <display value="vnd.gentoo.manifest"/> - <definition value="As defined by Michal Górny"/> + <code value="application/vnd.freelog.comic" /> + <display value="vnd.freelog.comic" /> + <definition value="As defined by Liu Qiancen" /> </concept> <concept> - <code value="application/vnd.gentoo.xpak"/> - <display value="vnd.gentoo.xpak"/> - <definition value="As defined by Gentoo Portage Project"/> + <code value="application/vnd.fsc.weblaunch" /> + <display value="vnd.fsc.weblaunch" /> + <definition value="As defined by Derek Smith" /> </concept> <concept> - <code value="application/vnd.gentoo.pkgmetadata+xml"/> - <display value="vnd.gentoo.pkgmetadata+xml"/> - <definition value="As defined by Michal Górny"/> + <code value="application/vnd.fujifilm.fb.docuworks" /> + <display value="vnd.fujifilm.fb.docuworks" /> + <definition value="As defined by Kazuya Iimura" /> </concept> <concept> - <code value="application/vnd.geogebra.file"/> - <display value="vnd.geogebra.file"/> - <definition value="As defined by GeoGebra, and Yves Kreis"/> + <code value="application/vnd.fujifilm.fb.docuworks.binder" /> + <display value="vnd.fujifilm.fb.docuworks.binder" /> + <definition value="As defined by Kazuya Iimura" /> </concept> <concept> - <code value="application/vnd.geogebra.pinboard"/> - <display value="vnd.geogebra.pinboard"/> - <definition value="As defined by GeoGebra, and Michael Borcherds"/> + <code value="application/vnd.fujifilm.fb.docuworks.container" /> + <display value="vnd.fujifilm.fb.docuworks.container" /> + <definition value="As defined by Kazuya Iimura" /> </concept> <concept> - <code value="application/vnd.geogebra.slides"/> - <display value="vnd.geogebra.slides"/> - <definition value="As defined by GeoGebra, Michael Borcherds, and Markus Hohenwarter"/> + <code value="application/vnd.fujifilm.fb.jfi+xml" /> + <display value="vnd.fujifilm.fb.jfi+xml" /> + <definition value="As defined by Keitaro Ishida" /> </concept> <concept> - <code value="application/vnd.geogebra.tool"/> - <display value="vnd.geogebra.tool"/> - <definition value="As defined by GeoGebra, and Yves Kreis"/> + <code value="application/vnd.fujitsu.oasys" /> + <display value="vnd.fujitsu.oasys" /> + <definition value="As defined by Nobukazu Togashi" /> </concept> <concept> - <code value="application/vnd.geometry-explorer"/> - <display value="vnd.geometry-explorer"/> - <definition value="As defined by Michael Hvidsten"/> + <code value="application/vnd.fujitsu.oasys2" /> + <display value="vnd.fujitsu.oasys2" /> + <definition value="As defined by Nobukazu Togashi" /> </concept> <concept> - <code value="application/vnd.geonext"/> - <display value="vnd.geonext"/> - <definition value="As defined by Matthias Ehmann"/> + <code value="application/vnd.fujitsu.oasys3" /> + <display value="vnd.fujitsu.oasys3" /> + <definition value="As defined by Seiji Okudaira" /> </concept> <concept> - <code value="application/vnd.geoplan"/> - <display value="vnd.geoplan"/> - <definition value="As defined by Christian Mercat"/> + <code value="application/vnd.fujitsu.oasysgp" /> + <display value="vnd.fujitsu.oasysgp" /> + <definition value="As defined by Masahiko Sugimoto" /> </concept> <concept> - <code value="application/vnd.geospace"/> - <display value="vnd.geospace"/> - <definition value="As defined by Christian Mercat"/> + <code value="application/vnd.fujitsu.oasysprs" /> + <display value="vnd.fujitsu.oasysprs" /> + <definition value="As defined by Masumi Ogita" /> </concept> <concept> - <code value="application/vnd.gerber"/> - <display value="vnd.gerber"/> - <definition value="As defined by Thomas Weyn"/> + <code value="application/vnd.fujixerox.ART4" /> + <display value="vnd.fujixerox.ART4" /> + <definition value="As defined by Fumio Tanabe" /> </concept> <concept> - <code value="application/vnd.globalplatform.card-content-mgt"/> - <display value="vnd.globalplatform.card-content-mgt"/> - <definition value="As defined by Gil Bernabeu"/> + <code value="application/vnd.fujixerox.ART-EX" /> + <display value="vnd.fujixerox.ART-EX" /> + <definition value="As defined by Fumio Tanabe" /> </concept> <concept> - <code value="application/vnd.globalplatform.card-content-mgt-response"/> - <display value="vnd.globalplatform.card-content-mgt-response"/> - <definition value="As defined by Gil Bernabeu"/> + <code value="application/vnd.fujixerox.ddd" /> + <display value="vnd.fujixerox.ddd" /> + <definition value="As defined by Masanori Onda" /> </concept> <concept> - <code value="application/vnd.gmx - DEPRECATED"/> - <display value="vnd.gmx - DEPRECATED"/> - <definition value="As defined by Christian V. Sciberras"/> + <code value="application/vnd.fujixerox.docuworks" /> + <display value="vnd.fujixerox.docuworks" /> + <definition value="As defined by Takatomo Wakibayashi" /> </concept> <concept> - <code value="application/vnd.gnu.taler.exchange+json"/> - <display value="vnd.gnu.taler.exchange+json"/> - <definition value="As defined by Christian Grothoff"/> + <code value="application/vnd.fujixerox.docuworks.binder" /> + <display value="vnd.fujixerox.docuworks.binder" /> + <definition value="As defined by Takashi Matsumoto" /> </concept> <concept> - <code value="application/vnd.gnu.taler.merchant+json"/> - <display value="vnd.gnu.taler.merchant+json"/> - <definition value="As defined by Christian Grothoff"/> + <code value="application/vnd.fujixerox.docuworks.container" /> + <display value="vnd.fujixerox.docuworks.container" /> + <definition value="As defined by Kiyoshi Tashiro" /> </concept> <concept> - <code value="application/vnd.google-earth.kml+xml"/> - <display value="vnd.google-earth.kml+xml"/> - <definition value="As defined by Michael Ashbridge"/> + <code value="application/vnd.fujixerox.HBPL" /> + <display value="vnd.fujixerox.HBPL" /> + <definition value="As defined by Fumio Tanabe" /> </concept> <concept> - <code value="application/vnd.google-earth.kmz"/> - <display value="vnd.google-earth.kmz"/> - <definition value="As defined by Michael Ashbridge"/> + <code value="application/vnd.fut-misnet" /> + <display value="vnd.fut-misnet" /> + <definition value="As defined by Jann Pruulman" /> </concept> <concept> - <code value="application/vnd.gov.sk.e-form+zip"/> - <display value="vnd.gov.sk.e-form+zip"/> - <definition value="As defined by Stefan Szilva"/> + <code value="application/vnd.futoin+cbor" /> + <display value="vnd.futoin+cbor" /> + <definition value="As defined by Andrey Galkin" /> </concept> <concept> - <code value="application/vnd.gov.sk.xmldatacontainer+xml"/> - <display value="vnd.gov.sk.xmldatacontainer+xml"/> - <definition value="As defined by Stefan Szilva"/> + <code value="application/vnd.futoin+json" /> + <display value="vnd.futoin+json" /> + <definition value="As defined by Andrey Galkin" /> </concept> <concept> - <code value="application/vnd.gpxsee.map+xml"/> - <display value="vnd.gpxsee.map+xml"/> - <definition value="As defined by Martin Tuma"/> + <code value="application/vnd.fuzzysheet" /> + <display value="vnd.fuzzysheet" /> + <definition value="As defined by Simon Birtwistle" /> </concept> <concept> - <code value="application/vnd.grafeq"/> - <display value="vnd.grafeq"/> - <definition value="As defined by Jeff Tupper"/> + <code value="application/vnd.g3pix.g3fc" /> + <display value="vnd.g3pix.g3fc" /> + <definition value="As defined by Lucas Guimarães" /> </concept> <concept> - <code value="application/vnd.gridmp"/> - <display value="vnd.gridmp"/> - <definition value="As defined by Jeff Lawson"/> + <code value="application/vnd.ga4gh.passport+jwt" /> + <display value="vnd.ga4gh.passport+jwt" /> + <definition value="As defined by GA4GH Secretariat" /> </concept> <concept> - <code value="application/vnd.groove-account"/> - <display value="vnd.groove-account"/> - <definition value="As defined by Todd Joseph"/> + <code value="application/vnd.genomatix.tuxedo" /> + <display value="vnd.genomatix.tuxedo" /> + <definition value="As defined by Torben Frey" /> </concept> <concept> - <code value="application/vnd.groove-help"/> - <display value="vnd.groove-help"/> - <definition value="As defined by Todd Joseph"/> + <code value="application/vnd.genozip" /> + <display value="vnd.genozip" /> + <definition value="As defined by Divon Lan" /> </concept> <concept> - <code value="application/vnd.groove-identity-message"/> - <display value="vnd.groove-identity-message"/> - <definition value="As defined by Todd Joseph"/> + <code value="application/vnd.gentics.grd+json" /> + <display value="vnd.gentics.grd+json" /> + <definition value="As defined by Philipp Gortan" /> </concept> <concept> - <code value="application/vnd.groove-injector"/> - <display value="vnd.groove-injector"/> - <definition value="As defined by Todd Joseph"/> + <code value="application/vnd.gentoo.catmetadata+xml" /> + <display value="vnd.gentoo.catmetadata+xml" /> + <definition value="As defined by Michał Górny" /> </concept> <concept> - <code value="application/vnd.groove-tool-message"/> - <display value="vnd.groove-tool-message"/> - <definition value="As defined by Todd Joseph"/> + <code value="application/vnd.gentoo.ebuild" /> + <display value="vnd.gentoo.ebuild" /> + <definition value="As defined by Michał Górny" /> </concept> <concept> - <code value="application/vnd.groove-tool-template"/> - <display value="vnd.groove-tool-template"/> - <definition value="As defined by Todd Joseph"/> + <code value="application/vnd.gentoo.eclass" /> + <display value="vnd.gentoo.eclass" /> + <definition value="As defined by Michał Górny" /> </concept> <concept> - <code value="application/vnd.groove-vcard"/> - <display value="vnd.groove-vcard"/> - <definition value="As defined by Todd Joseph"/> + <code value="application/vnd.gentoo.gpkg" /> + <display value="vnd.gentoo.gpkg" /> + <definition value="As defined by Michał Górny" /> </concept> <concept> - <code value="application/vnd.hal+json"/> - <display value="vnd.hal+json"/> - <definition value="As defined by Mike Kelly"/> + <code value="application/vnd.gentoo.manifest" /> + <display value="vnd.gentoo.manifest" /> + <definition value="As defined by Michał Górny" /> </concept> <concept> - <code value="application/vnd.hal+xml"/> - <display value="vnd.hal+xml"/> - <definition value="As defined by Mike Kelly"/> + <code value="application/vnd.gentoo.xpak" /> + <display value="vnd.gentoo.xpak" /> + <definition value="As defined by Gentoo Portage Project" /> </concept> <concept> - <code value="application/vnd.HandHeld-Entertainment+xml"/> - <display value="vnd.HandHeld-Entertainment+xml"/> - <definition value="As defined by Eric Hamilton"/> + <code value="application/vnd.gentoo.pkgmetadata+xml" /> + <display value="vnd.gentoo.pkgmetadata+xml" /> + <definition value="As defined by Michał Górny" /> </concept> <concept> - <code value="application/vnd.hbci"/> - <display value="vnd.hbci"/> - <definition value="As defined by Ingo Hammann"/> + <code value="application/vnd.geogebra.file" /> + <display value="vnd.geogebra.file" /> + <definition value="As defined by GeoGebra, and Yves Kreis" /> </concept> <concept> - <code value="application/vnd.hc+json"/> - <display value="vnd.hc+json"/> - <definition value="As defined by Jan Schütze"/> + <code value="application/vnd.geogebra.pinboard" /> + <display value="vnd.geogebra.pinboard" /> + <definition value="As defined by GeoGebra, and Michael Borcherds" /> </concept> <concept> - <code value="application/vnd.hcl-bireports"/> - <display value="vnd.hcl-bireports"/> - <definition value="As defined by Doug R. Serres"/> + <code value="application/vnd.geogebra.slides" /> + <display value="vnd.geogebra.slides" /> + <definition value="As defined by GeoGebra, Michael Borcherds, and Markus Hohenwarter" /> </concept> <concept> - <code value="application/vnd.hdt"/> - <display value="vnd.hdt"/> - <definition value="As defined by Javier D. Fernández"/> + <code value="application/vnd.geogebra.tool" /> + <display value="vnd.geogebra.tool" /> + <definition value="As defined by GeoGebra, and Yves Kreis" /> </concept> <concept> - <code value="application/vnd.heroku+json"/> - <display value="vnd.heroku+json"/> - <definition value="As defined by Wesley Beary"/> + <code value="application/vnd.geometry-explorer" /> + <display value="vnd.geometry-explorer" /> + <definition value="As defined by Michael Hvidsten" /> </concept> <concept> - <code value="application/vnd.hhe.lesson-player"/> - <display value="vnd.hhe.lesson-player"/> - <definition value="As defined by Randy Jones"/> + <code value="application/vnd.geonext" /> + <display value="vnd.geonext" /> + <definition value="As defined by Matthias Ehmann" /> </concept> <concept> - <code value="application/vnd.hp-HPGL"/> - <display value="vnd.hp-HPGL"/> - <definition value="As defined by Bob Pentecost"/> + <code value="application/vnd.geoplan" /> + <display value="vnd.geoplan" /> + <definition value="As defined by Christian Mercat" /> </concept> <concept> - <code value="application/vnd.hp-hpid"/> - <display value="vnd.hp-hpid"/> - <definition value="As defined by Aloke Gupta"/> + <code value="application/vnd.geospace" /> + <display value="vnd.geospace" /> + <definition value="As defined by Christian Mercat" /> </concept> <concept> - <code value="application/vnd.hp-hps"/> - <display value="vnd.hp-hps"/> - <definition value="As defined by Steve Aubrey"/> + <code value="application/vnd.gerber" /> + <display value="vnd.gerber" /> + <definition value="As defined by Thomas Weyn" /> </concept> <concept> - <code value="application/vnd.hp-jlyt"/> - <display value="vnd.hp-jlyt"/> - <definition value="As defined by Amir Gaash"/> + <code value="application/vnd.globalplatform.card-content-mgt" /> + <display value="vnd.globalplatform.card-content-mgt" /> + <definition value="As defined by Gil Bernabeu" /> </concept> <concept> - <code value="application/vnd.hp-PCL"/> - <display value="vnd.hp-PCL"/> - <definition value="As defined by Bob Pentecost"/> + <code value="application/vnd.globalplatform.card-content-mgt-response" /> + <display value="vnd.globalplatform.card-content-mgt-response" /> + <definition value="As defined by Gil Bernabeu" /> </concept> <concept> - <code value="application/vnd.hp-PCLXL"/> - <display value="vnd.hp-PCLXL"/> - <definition value="As defined by Bob Pentecost"/> + <code value="application/vnd.gmx - DEPRECATED" /> + <display value="vnd.gmx - DEPRECATED" /> + <definition value="As defined by Christian V. Sciberras" /> </concept> <concept> - <code value="application/vnd.hsl"/> - <display value="vnd.hsl"/> - <definition value="As defined by Heungsub Lee"/> + <code value="application/vnd.gnu.taler.exchange+json" /> + <display value="vnd.gnu.taler.exchange+json" /> + <definition value="As defined by Christian Grothoff" /> </concept> <concept> - <code value="application/vnd.httphone"/> - <display value="vnd.httphone"/> - <definition value="As defined by Franck Lefevre"/> + <code value="application/vnd.gnu.taler.merchant+json" /> + <display value="vnd.gnu.taler.merchant+json" /> + <definition value="As defined by Christian Grothoff" /> </concept> <concept> - <code value="application/vnd.hydrostatix.sof-data"/> - <display value="vnd.hydrostatix.sof-data"/> - <definition value="As defined by Allen Gillam"/> + <code value="application/vnd.google-earth.kml+xml" /> + <display value="vnd.google-earth.kml+xml" /> + <definition value="As defined by Michael Ashbridge" /> </concept> <concept> - <code value="application/vnd.hyper-item+json"/> - <display value="vnd.hyper-item+json"/> - <definition value="As defined by Mario Demuth"/> + <code value="application/vnd.google-earth.kmz" /> + <display value="vnd.google-earth.kmz" /> + <definition value="As defined by Michael Ashbridge" /> </concept> <concept> - <code value="application/vnd.hyper+json"/> - <display value="vnd.hyper+json"/> - <definition value="As defined by Irakli Nadareishvili"/> + <code value="application/vnd.gov.sk.e-form+zip" /> + <display value="vnd.gov.sk.e-form+zip" /> + <definition value="As defined by Stefan Szilva" /> </concept> <concept> - <code value="application/vnd.hyperdrive+json"/> - <display value="vnd.hyperdrive+json"/> - <definition value="As defined by Daniel Sims"/> + <code value="application/vnd.gov.sk.xmldatacontainer+xml" /> + <display value="vnd.gov.sk.xmldatacontainer+xml" /> + <definition value="As defined by Stefan Szilva" /> </concept> <concept> - <code value="application/vnd.hzn-3d-crossword"/> - <display value="vnd.hzn-3d-crossword"/> - <definition value="As defined by James Minnis"/> + <code value="application/vnd.gpxsee.map+xml" /> + <display value="vnd.gpxsee.map+xml" /> + <definition value="As defined by Martin Tuma" /> </concept> <concept> - <code value="application/vnd.ibm.electronic-media"/> - <display value="vnd.ibm.electronic-media"/> - <definition value="As defined by Bruce Tantlinger"/> + <code value="application/vnd.grafeq" /> + <display value="vnd.grafeq" /> + <definition value="As defined by Jeff Tupper" /> </concept> <concept> - <code value="application/vnd.ibm.MiniPay"/> - <display value="vnd.ibm.MiniPay"/> - <definition value="As defined by Amir Herzberg"/> + <code value="application/vnd.gridmp" /> + <display value="vnd.gridmp" /> + <definition value="As defined by Jeff Lawson" /> </concept> <concept> - <code value="application/vnd.ibm.rights-management"/> - <display value="vnd.ibm.rights-management"/> - <definition value="As defined by Bruce Tantlinger"/> + <code value="application/vnd.groove-account" /> + <display value="vnd.groove-account" /> + <definition value="As defined by Todd Joseph" /> </concept> <concept> - <code value="application/vnd.ibm.secure-container"/> - <display value="vnd.ibm.secure-container"/> - <definition value="As defined by Bruce Tantlinger"/> + <code value="application/vnd.groove-help" /> + <display value="vnd.groove-help" /> + <definition value="As defined by Todd Joseph" /> </concept> <concept> - <code value="application/vnd.iccprofile"/> - <display value="vnd.iccprofile"/> - <definition value="As defined by Phil Green"/> + <code value="application/vnd.groove-identity-message" /> + <display value="vnd.groove-identity-message" /> + <definition value="As defined by Todd Joseph" /> </concept> <concept> - <code value="application/vnd.ieee.1905"/> - <display value="vnd.ieee.1905"/> - <definition value="As defined by Purva R Rajkotia"/> + <code value="application/vnd.groove-injector" /> + <display value="vnd.groove-injector" /> + <definition value="As defined by Todd Joseph" /> </concept> <concept> - <code value="application/vnd.igloader"/> - <display value="vnd.igloader"/> - <definition value="As defined by Tim Fisher"/> + <code value="application/vnd.groove-tool-message" /> + <display value="vnd.groove-tool-message" /> + <definition value="As defined by Todd Joseph" /> </concept> <concept> - <code value="application/vnd.imagemeter.folder+zip"/> - <display value="vnd.imagemeter.folder+zip"/> - <definition value="As defined by Dirk Farin"/> + <code value="application/vnd.groove-tool-template" /> + <display value="vnd.groove-tool-template" /> + <definition value="As defined by Todd Joseph" /> </concept> <concept> - <code value="application/vnd.imagemeter.image+zip"/> - <display value="vnd.imagemeter.image+zip"/> - <definition value="As defined by Dirk Farin"/> + <code value="application/vnd.groove-vcard" /> + <display value="vnd.groove-vcard" /> + <definition value="As defined by Todd Joseph" /> </concept> <concept> - <code value="application/vnd.immervision-ivp"/> - <display value="vnd.immervision-ivp"/> - <definition value="As defined by Mathieu Villegas"/> + <code value="application/vnd.hal+json" /> + <display value="vnd.hal+json" /> + <definition value="As defined by Mike Kelly" /> </concept> <concept> - <code value="application/vnd.immervision-ivu"/> - <display value="vnd.immervision-ivu"/> - <definition value="As defined by Mathieu Villegas"/> + <code value="application/vnd.hal+xml" /> + <display value="vnd.hal+xml" /> + <definition value="As defined by Mike Kelly" /> </concept> <concept> - <code value="application/vnd.ims.imsccv1p1"/> - <display value="vnd.ims.imsccv1p1"/> - <definition value="As defined by Lisa Mattson"/> + <code value="application/vnd.HandHeld-Entertainment+xml" /> + <display value="vnd.HandHeld-Entertainment+xml" /> + <definition value="As defined by Eric Hamilton" /> </concept> <concept> - <code value="application/vnd.ims.imsccv1p2"/> - <display value="vnd.ims.imsccv1p2"/> - <definition value="As defined by Lisa Mattson"/> + <code value="application/vnd.hbci" /> + <display value="vnd.hbci" /> + <definition value="As defined by Ingo Hammann" /> </concept> <concept> - <code value="application/vnd.ims.imsccv1p3"/> - <display value="vnd.ims.imsccv1p3"/> - <definition value="As defined by Lisa Mattson"/> + <code value="application/vnd.hc+json" /> + <display value="vnd.hc+json" /> + <definition value="As defined by Jan Schütze" /> </concept> <concept> - <code value="application/vnd.ims.lis.v2.result+json"/> - <display value="vnd.ims.lis.v2.result+json"/> - <definition value="As defined by Lisa Mattson"/> + <code value="application/vnd.hcl-bireports" /> + <display value="vnd.hcl-bireports" /> + <definition value="As defined by Doug R. Serres" /> </concept> <concept> - <code value="application/vnd.ims.lti.v2.toolconsumerprofile+json"/> - <display value="vnd.ims.lti.v2.toolconsumerprofile+json"/> - <definition value="As defined by Lisa Mattson"/> + <code value="application/vnd.hdt" /> + <display value="vnd.hdt" /> + <definition value="As defined by Javier D. Fernández" /> </concept> <concept> - <code value="application/vnd.ims.lti.v2.toolproxy.id+json"/> - <display value="vnd.ims.lti.v2.toolproxy.id+json"/> - <definition value="As defined by Lisa Mattson"/> + <code value="application/vnd.heroku+json" /> + <display value="vnd.heroku+json" /> + <definition value="As defined by Wesley Beary" /> </concept> <concept> - <code value="application/vnd.ims.lti.v2.toolproxy+json"/> - <display value="vnd.ims.lti.v2.toolproxy+json"/> - <definition value="As defined by Lisa Mattson"/> + <code value="application/vnd.hhe.lesson-player" /> + <display value="vnd.hhe.lesson-player" /> + <definition value="As defined by Randy Jones" /> </concept> <concept> - <code value="application/vnd.ims.lti.v2.toolsettings+json"/> - <display value="vnd.ims.lti.v2.toolsettings+json"/> - <definition value="As defined by Lisa Mattson"/> + <code value="application/vnd.hp-HPGL" /> + <display value="vnd.hp-HPGL" /> + <definition value="As defined by Bob Pentecost" /> </concept> <concept> - <code value="application/vnd.ims.lti.v2.toolsettings.simple+json"/> - <display value="vnd.ims.lti.v2.toolsettings.simple+json"/> - <definition value="As defined by Lisa Mattson"/> + <code value="application/vnd.hp-hpid" /> + <display value="vnd.hp-hpid" /> + <definition value="As defined by Aloke Gupta" /> </concept> <concept> - <code value="application/vnd.informedcontrol.rms+xml"/> - <display value="vnd.informedcontrol.rms+xml"/> - <definition value="As defined by Mark Wahl"/> + <code value="application/vnd.hp-hps" /> + <display value="vnd.hp-hps" /> + <definition value="As defined by Steve Aubrey" /> </concept> <concept> - <code value="application/vnd.infotech.project"/> - <display value="vnd.infotech.project"/> - <definition value="As defined by Charles Engelke"/> + <code value="application/vnd.hp-jlyt" /> + <display value="vnd.hp-jlyt" /> + <definition value="As defined by Amir Gaash" /> </concept> <concept> - <code value="application/vnd.infotech.project+xml"/> - <display value="vnd.infotech.project+xml"/> - <definition value="As defined by Charles Engelke"/> + <code value="application/vnd.hp-PCL" /> + <display value="vnd.hp-PCL" /> + <definition value="As defined by Bob Pentecost" /> </concept> <concept> - <code value="application/vnd.innopath.wamp.notification"/> - <display value="vnd.innopath.wamp.notification"/> - <definition value="As defined by Takanori Sudo"/> + <code value="application/vnd.hp-PCLXL" /> + <display value="vnd.hp-PCLXL" /> + <definition value="As defined by Bob Pentecost" /> </concept> <concept> - <code value="application/vnd.insors.igm"/> - <display value="vnd.insors.igm"/> - <definition value="As defined by Jon Swanson"/> + <code value="application/vnd.hsl" /> + <display value="vnd.hsl" /> + <definition value="As defined by Heungsub Lee" /> </concept> <concept> - <code value="application/vnd.intercon.formnet"/> - <display value="vnd.intercon.formnet"/> - <definition value="As defined by Tom Gurak"/> + <code value="application/vnd.httphone" /> + <display value="vnd.httphone" /> + <definition value="As defined by Franck Lefevre" /> </concept> <concept> - <code value="application/vnd.intergeo"/> - <display value="vnd.intergeo"/> - <definition value="As defined by Yves Kreis 2"/> + <code value="application/vnd.hydrostatix.sof-data" /> + <display value="vnd.hydrostatix.sof-data" /> + <definition value="As defined by Allen Gillam" /> </concept> <concept> - <code value="application/vnd.intertrust.digibox"/> - <display value="vnd.intertrust.digibox"/> - <definition value="As defined by Luke Tomasello"/> + <code value="application/vnd.hyper-item+json" /> + <display value="vnd.hyper-item+json" /> + <definition value="As defined by Mario Demuth" /> </concept> <concept> - <code value="application/vnd.intertrust.nncp"/> - <display value="vnd.intertrust.nncp"/> - <definition value="As defined by Luke Tomasello"/> + <code value="application/vnd.hyper+json" /> + <display value="vnd.hyper+json" /> + <definition value="As defined by Irakli Nadareishvili" /> </concept> <concept> - <code value="application/vnd.intu.qbo"/> - <display value="vnd.intu.qbo"/> - <definition value="As defined by Greg Scratchley"/> + <code value="application/vnd.hyperdrive+json" /> + <display value="vnd.hyperdrive+json" /> + <definition value="As defined by Daniel Sims" /> </concept> <concept> - <code value="application/vnd.intu.qfx"/> - <display value="vnd.intu.qfx"/> - <definition value="As defined by Greg Scratchley"/> + <code value="application/vnd.hzn-3d-crossword" /> + <display value="vnd.hzn-3d-crossword" /> + <definition value="As defined by James Minnis" /> </concept> <concept> - <code value="application/vnd.ipfs.ipns-record"/> - <display value="vnd.ipfs.ipns-record"/> - <definition value="As defined by Marcin Rataj"/> + <code value="application/vnd.ibm.electronic-media" /> + <display value="vnd.ibm.electronic-media" /> + <definition value="As defined by Bruce Tantlinger" /> </concept> <concept> - <code value="application/vnd.ipld.car"/> - <display value="vnd.ipld.car"/> - <definition value="As defined by Marcin Rataj"/> + <code value="application/vnd.ibm.MiniPay" /> + <display value="vnd.ibm.MiniPay" /> + <definition value="As defined by Amir Herzberg" /> </concept> <concept> - <code value="application/vnd.ipld.dag-cbor"/> - <display value="vnd.ipld.dag-cbor"/> - <definition value="As defined by Marcin Rataj"/> + <code value="application/vnd.ibm.rights-management" /> + <display value="vnd.ibm.rights-management" /> + <definition value="As defined by Bruce Tantlinger" /> </concept> <concept> - <code value="application/vnd.ipld.dag-json"/> - <display value="vnd.ipld.dag-json"/> - <definition value="As defined by Marcin Rataj"/> + <code value="application/vnd.ibm.secure-container" /> + <display value="vnd.ibm.secure-container" /> + <definition value="As defined by Bruce Tantlinger" /> </concept> <concept> - <code value="application/vnd.ipld.raw"/> - <display value="vnd.ipld.raw"/> - <definition value="As defined by Marcin Rataj"/> + <code value="application/vnd.iccprofile" /> + <display value="vnd.iccprofile" /> + <definition value="As defined by Phil Green" /> </concept> <concept> - <code value="application/vnd.iptc.g2.catalogitem+xml"/> - <display value="vnd.iptc.g2.catalogitem+xml"/> - <definition value="As defined by Michael Steidl"/> + <code value="application/vnd.ieee.1905" /> + <display value="vnd.ieee.1905" /> + <definition value="As defined by Purva R Rajkotia" /> </concept> <concept> - <code value="application/vnd.iptc.g2.conceptitem+xml"/> - <display value="vnd.iptc.g2.conceptitem+xml"/> - <definition value="As defined by Michael Steidl"/> + <code value="application/vnd.igloader" /> + <display value="vnd.igloader" /> + <definition value="As defined by Tim Fisher" /> </concept> <concept> - <code value="application/vnd.iptc.g2.knowledgeitem+xml"/> - <display value="vnd.iptc.g2.knowledgeitem+xml"/> - <definition value="As defined by Michael Steidl"/> + <code value="application/vnd.imagemeter.folder+zip" /> + <display value="vnd.imagemeter.folder+zip" /> + <definition value="As defined by Dirk Farin" /> </concept> <concept> - <code value="application/vnd.iptc.g2.newsitem+xml"/> - <display value="vnd.iptc.g2.newsitem+xml"/> - <definition value="As defined by Michael Steidl"/> + <code value="application/vnd.imagemeter.image+zip" /> + <display value="vnd.imagemeter.image+zip" /> + <definition value="As defined by Dirk Farin" /> </concept> <concept> - <code value="application/vnd.iptc.g2.newsmessage+xml"/> - <display value="vnd.iptc.g2.newsmessage+xml"/> - <definition value="As defined by Michael Steidl"/> + <code value="application/vnd.immervision-ivp" /> + <display value="vnd.immervision-ivp" /> + <definition value="As defined by Mathieu Villegas" /> </concept> <concept> - <code value="application/vnd.iptc.g2.packageitem+xml"/> - <display value="vnd.iptc.g2.packageitem+xml"/> - <definition value="As defined by Michael Steidl"/> + <code value="application/vnd.immervision-ivu" /> + <display value="vnd.immervision-ivu" /> + <definition value="As defined by Mathieu Villegas" /> </concept> <concept> - <code value="application/vnd.iptc.g2.planningitem+xml"/> - <display value="vnd.iptc.g2.planningitem+xml"/> - <definition value="As defined by Michael Steidl"/> + <code value="application/vnd.ims.imsccv1p1" /> + <display value="vnd.ims.imsccv1p1" /> + <definition value="As defined by Lisa Mattson" /> </concept> <concept> - <code value="application/vnd.ipunplugged.rcprofile"/> - <display value="vnd.ipunplugged.rcprofile"/> - <definition value="As defined by Per Ersson"/> + <code value="application/vnd.ims.imsccv1p2" /> + <display value="vnd.ims.imsccv1p2" /> + <definition value="As defined by Lisa Mattson" /> </concept> <concept> - <code value="application/vnd.irepository.package+xml"/> - <display value="vnd.irepository.package+xml"/> - <definition value="As defined by Martin Knowles"/> + <code value="application/vnd.ims.imsccv1p3" /> + <display value="vnd.ims.imsccv1p3" /> + <definition value="As defined by Lisa Mattson" /> </concept> <concept> - <code value="application/vnd.is-xpr"/> - <display value="vnd.is-xpr"/> - <definition value="As defined by Satish Navarajan"/> + <code value="application/vnd.ims.lis.v2.result+json" /> + <display value="vnd.ims.lis.v2.result+json" /> + <definition value="As defined by Lisa Mattson" /> </concept> <concept> - <code value="application/vnd.isac.fcs"/> - <display value="vnd.isac.fcs"/> - <definition value="As defined by Ryan Brinkman"/> + <code value="application/vnd.ims.lti.v2.toolconsumerprofile+json" /> + <display value="vnd.ims.lti.v2.toolconsumerprofile+json" /> + <definition value="As defined by Lisa Mattson" /> </concept> <concept> - <code value="application/vnd.jam"/> - <display value="vnd.jam"/> - <definition value="As defined by Brijesh Kumar"/> + <code value="application/vnd.ims.lti.v2.toolproxy.id+json" /> + <display value="vnd.ims.lti.v2.toolproxy.id+json" /> + <definition value="As defined by Lisa Mattson" /> </concept> <concept> - <code value="application/vnd.iso11783-10+zip"/> - <display value="vnd.iso11783-10+zip"/> - <definition value="As defined by Frank Wiebeler"/> + <code value="application/vnd.ims.lti.v2.toolproxy+json" /> + <display value="vnd.ims.lti.v2.toolproxy+json" /> + <definition value="As defined by Lisa Mattson" /> </concept> <concept> - <code value="application/vnd.japannet-directory-service"/> - <display value="vnd.japannet-directory-service"/> - <definition value="As defined by Kiyofusa Fujii"/> + <code value="application/vnd.ims.lti.v2.toolsettings+json" /> + <display value="vnd.ims.lti.v2.toolsettings+json" /> + <definition value="As defined by Lisa Mattson" /> </concept> <concept> - <code value="application/vnd.japannet-jpnstore-wakeup"/> - <display value="vnd.japannet-jpnstore-wakeup"/> - <definition value="As defined by Jun Yoshitake"/> + <code value="application/vnd.ims.lti.v2.toolsettings.simple+json" /> + <display value="vnd.ims.lti.v2.toolsettings.simple+json" /> + <definition value="As defined by Lisa Mattson" /> </concept> <concept> - <code value="application/vnd.japannet-payment-wakeup"/> - <display value="vnd.japannet-payment-wakeup"/> - <definition value="As defined by Kiyofusa Fujii"/> + <code value="application/vnd.informedcontrol.rms+xml" /> + <display value="vnd.informedcontrol.rms+xml" /> + <definition value="As defined by Mark Wahl" /> </concept> <concept> - <code value="application/vnd.japannet-registration"/> - <display value="vnd.japannet-registration"/> - <definition value="As defined by Jun Yoshitake"/> + <code value="application/vnd.infotech.project" /> + <display value="vnd.infotech.project" /> + <definition value="As defined by Charles Engelke" /> </concept> <concept> - <code value="application/vnd.japannet-registration-wakeup"/> - <display value="vnd.japannet-registration-wakeup"/> - <definition value="As defined by Kiyofusa Fujii"/> + <code value="application/vnd.infotech.project+xml" /> + <display value="vnd.infotech.project+xml" /> + <definition value="As defined by Charles Engelke" /> </concept> <concept> - <code value="application/vnd.japannet-setstore-wakeup"/> - <display value="vnd.japannet-setstore-wakeup"/> - <definition value="As defined by Jun Yoshitake"/> + <code value="application/vnd.innopath.wamp.notification" /> + <display value="vnd.innopath.wamp.notification" /> + <definition value="As defined by Takanori Sudo" /> </concept> <concept> - <code value="application/vnd.japannet-verification"/> - <display value="vnd.japannet-verification"/> - <definition value="As defined by Jun Yoshitake"/> + <code value="application/vnd.insors.igm" /> + <display value="vnd.insors.igm" /> + <definition value="As defined by Jon Swanson" /> </concept> <concept> - <code value="application/vnd.japannet-verification-wakeup"/> - <display value="vnd.japannet-verification-wakeup"/> - <definition value="As defined by Kiyofusa Fujii"/> + <code value="application/vnd.intercon.formnet" /> + <display value="vnd.intercon.formnet" /> + <definition value="As defined by Tom Gurak" /> </concept> <concept> - <code value="application/vnd.jcp.javame.midlet-rms"/> - <display value="vnd.jcp.javame.midlet-rms"/> - <definition value="As defined by Mikhail Gorshenev"/> + <code value="application/vnd.intergeo" /> + <display value="vnd.intergeo" /> + <definition value="As defined by Yves Kreis 2" /> </concept> <concept> - <code value="application/vnd.jisp"/> - <display value="vnd.jisp"/> - <definition value="As defined by Sebastiaan Deckers"/> + <code value="application/vnd.intertrust.digibox" /> + <display value="vnd.intertrust.digibox" /> + <definition value="As defined by Luke Tomasello" /> </concept> <concept> - <code value="application/vnd.joost.joda-archive"/> - <display value="vnd.joost.joda-archive"/> - <definition value="As defined by Joost"/> + <code value="application/vnd.intertrust.nncp" /> + <display value="vnd.intertrust.nncp" /> + <definition value="As defined by Luke Tomasello" /> </concept> <concept> - <code value="application/vnd.jsk.isdn-ngn"/> - <display value="vnd.jsk.isdn-ngn"/> - <definition value="As defined by Yokoyama Kiyonobu"/> + <code value="application/vnd.intu.qbo" /> + <display value="vnd.intu.qbo" /> + <definition value="As defined by Greg Scratchley" /> </concept> <concept> - <code value="application/vnd.kahootz"/> - <display value="vnd.kahootz"/> - <definition value="As defined by Tim Macdonald"/> + <code value="application/vnd.intu.qfx" /> + <display value="vnd.intu.qfx" /> + <definition value="As defined by Greg Scratchley" /> </concept> <concept> - <code value="application/vnd.kde.karbon"/> - <display value="vnd.kde.karbon"/> - <definition value="As defined by David Faure"/> + <code value="application/vnd.ipfs.ipns-record" /> + <display value="vnd.ipfs.ipns-record" /> + <definition value="As defined by Marcin Rataj" /> </concept> <concept> - <code value="application/vnd.kde.kchart"/> - <display value="vnd.kde.kchart"/> - <definition value="As defined by David Faure"/> + <code value="application/vnd.ipld.car" /> + <display value="vnd.ipld.car" /> + <definition value="As defined by Marcin Rataj" /> </concept> <concept> - <code value="application/vnd.kde.kformula"/> - <display value="vnd.kde.kformula"/> - <definition value="As defined by David Faure"/> + <code value="application/vnd.ipld.dag-cbor" /> + <display value="vnd.ipld.dag-cbor" /> + <definition value="As defined by Marcin Rataj" /> </concept> <concept> - <code value="application/vnd.kde.kivio"/> - <display value="vnd.kde.kivio"/> - <definition value="As defined by David Faure"/> + <code value="application/vnd.ipld.dag-json" /> + <display value="vnd.ipld.dag-json" /> + <definition value="As defined by Marcin Rataj" /> </concept> <concept> - <code value="application/vnd.kde.kontour"/> - <display value="vnd.kde.kontour"/> - <definition value="As defined by David Faure"/> + <code value="application/vnd.ipld.raw" /> + <display value="vnd.ipld.raw" /> + <definition value="As defined by Marcin Rataj" /> </concept> <concept> - <code value="application/vnd.kde.kpresenter"/> - <display value="vnd.kde.kpresenter"/> - <definition value="As defined by David Faure"/> + <code value="application/vnd.iptc.g2.catalogitem+xml" /> + <display value="vnd.iptc.g2.catalogitem+xml" /> + <definition value="As defined by Michael Steidl" /> </concept> <concept> - <code value="application/vnd.kde.kspread"/> - <display value="vnd.kde.kspread"/> - <definition value="As defined by David Faure"/> + <code value="application/vnd.iptc.g2.conceptitem+xml" /> + <display value="vnd.iptc.g2.conceptitem+xml" /> + <definition value="As defined by Michael Steidl" /> </concept> <concept> - <code value="application/vnd.kde.kword"/> - <display value="vnd.kde.kword"/> - <definition value="As defined by David Faure"/> + <code value="application/vnd.iptc.g2.knowledgeitem+xml" /> + <display value="vnd.iptc.g2.knowledgeitem+xml" /> + <definition value="As defined by Michael Steidl" /> </concept> <concept> - <code value="application/vnd.kdl"/> - <display value="vnd.kdl"/> - <definition value="As defined by Katerina Zoé Marchán Salvá"/> + <code value="application/vnd.iptc.g2.newsitem+xml" /> + <display value="vnd.iptc.g2.newsitem+xml" /> + <definition value="As defined by Michael Steidl" /> </concept> <concept> - <code value="application/vnd.kenameaapp"/> - <display value="vnd.kenameaapp"/> - <definition value="As defined by Dirk DiGiorgio-Haag"/> + <code value="application/vnd.iptc.g2.newsmessage+xml" /> + <display value="vnd.iptc.g2.newsmessage+xml" /> + <definition value="As defined by Michael Steidl" /> </concept> <concept> - <code value="application/vnd.keyman.kmp+zip"/> - <display value="vnd.keyman.kmp+zip"/> - <definition value="As defined by Marc Durdin"/> + <code value="application/vnd.iptc.g2.packageitem+xml" /> + <display value="vnd.iptc.g2.packageitem+xml" /> + <definition value="As defined by Michael Steidl" /> </concept> <concept> - <code value="application/vnd.keyman.kmx"/> - <display value="vnd.keyman.kmx"/> - <definition value="As defined by Marc Durdin"/> + <code value="application/vnd.iptc.g2.planningitem+xml" /> + <display value="vnd.iptc.g2.planningitem+xml" /> + <definition value="As defined by Michael Steidl" /> </concept> <concept> - <code value="application/vnd.kidspiration"/> - <display value="vnd.kidspiration"/> - <definition value="As defined by Jack Bennett"/> + <code value="application/vnd.ipunplugged.rcprofile" /> + <display value="vnd.ipunplugged.rcprofile" /> + <definition value="As defined by Per Ersson" /> </concept> <concept> - <code value="application/vnd.Kinar"/> - <display value="vnd.Kinar"/> - <definition value="As defined by Hemant Thakkar"/> + <code value="application/vnd.irepository.package+xml" /> + <display value="vnd.irepository.package+xml" /> + <definition value="As defined by Martin Knowles" /> </concept> <concept> - <code value="application/vnd.koan"/> - <display value="vnd.koan"/> - <definition value="As defined by Pete Cole"/> + <code value="application/vnd.is-xpr" /> + <display value="vnd.is-xpr" /> + <definition value="As defined by Satish Navarajan" /> </concept> <concept> - <code value="application/vnd.kodak-descriptor"/> - <display value="vnd.kodak-descriptor"/> - <definition value="As defined by Michael J. Donahue"/> + <code value="application/vnd.isac.fcs" /> + <display value="vnd.isac.fcs" /> + <definition value="As defined by Ryan Brinkman" /> </concept> <concept> - <code value="application/vnd.las"/> - <display value="vnd.las"/> - <definition value="As defined by NCGIS, and Bryan Blank"/> + <code value="application/vnd.jam" /> + <display value="vnd.jam" /> + <definition value="As defined by Brijesh Kumar" /> </concept> <concept> - <code value="application/vnd.las.las+json"/> - <display value="vnd.las.las+json"/> - <definition value="As defined by Rob Bailey"/> + <code value="application/vnd.iso11783-10+zip" /> + <display value="vnd.iso11783-10+zip" /> + <definition value="As defined by Frank Wiebeler" /> </concept> <concept> - <code value="application/vnd.las.las+xml"/> - <display value="vnd.las.las+xml"/> - <definition value="As defined by Rob Bailey"/> + <code value="application/vnd.japannet-directory-service" /> + <display value="vnd.japannet-directory-service" /> + <definition value="As defined by Kiyofusa Fujii" /> </concept> <concept> - <code value="application/vnd.laszip"/> - <display value="vnd.laszip"/> - <definition value="As defined by NCGIS, and Bryan Blank"/> + <code value="application/vnd.japannet-jpnstore-wakeup" /> + <display value="vnd.japannet-jpnstore-wakeup" /> + <definition value="As defined by Jun Yoshitake" /> </concept> <concept> - <code value="application/vnd.ldev.productlicensing"/> - <display value="vnd.ldev.productlicensing"/> - <definition value="As defined by L.development Polska"/> + <code value="application/vnd.japannet-payment-wakeup" /> + <display value="vnd.japannet-payment-wakeup" /> + <definition value="As defined by Kiyofusa Fujii" /> </concept> <concept> - <code value="application/vnd.leap+json"/> - <display value="vnd.leap+json"/> - <definition value="As defined by Mark C Fralick"/> + <code value="application/vnd.japannet-registration" /> + <display value="vnd.japannet-registration" /> + <definition value="As defined by Jun Yoshitake" /> </concept> <concept> - <code value="application/vnd.liberty-request+xml"/> - <display value="vnd.liberty-request+xml"/> - <definition value="As defined by Brett McDowell"/> + <code value="application/vnd.japannet-registration-wakeup" /> + <display value="vnd.japannet-registration-wakeup" /> + <definition value="As defined by Kiyofusa Fujii" /> </concept> <concept> - <code value="application/vnd.llamagraphics.life-balance.desktop"/> - <display value="vnd.llamagraphics.life-balance.desktop"/> - <definition value="As defined by Catherine E. White"/> + <code value="application/vnd.japannet-setstore-wakeup" /> + <display value="vnd.japannet-setstore-wakeup" /> + <definition value="As defined by Jun Yoshitake" /> </concept> <concept> - <code value="application/vnd.llamagraphics.life-balance.exchange+xml"/> - <display value="vnd.llamagraphics.life-balance.exchange+xml"/> - <definition value="As defined by Catherine E. White"/> + <code value="application/vnd.japannet-verification" /> + <display value="vnd.japannet-verification" /> + <definition value="As defined by Jun Yoshitake" /> </concept> <concept> - <code value="application/vnd.logipipe.circuit+zip"/> - <display value="vnd.logipipe.circuit+zip"/> - <definition value="As defined by Victor Kuchynsky"/> + <code value="application/vnd.japannet-verification-wakeup" /> + <display value="vnd.japannet-verification-wakeup" /> + <definition value="As defined by Kiyofusa Fujii" /> </concept> <concept> - <code value="application/vnd.loom"/> - <display value="vnd.loom"/> - <definition value="As defined by Sten Linnarsson"/> + <code value="application/vnd.jcp.javame.midlet-rms" /> + <display value="vnd.jcp.javame.midlet-rms" /> + <definition value="As defined by Mikhail Gorshenev" /> </concept> <concept> - <code value="application/vnd.lotus-1-2-3"/> - <display value="vnd.lotus-1-2-3"/> - <definition value="As defined by Paul Wattenberger"/> + <code value="application/vnd.jisp" /> + <display value="vnd.jisp" /> + <definition value="As defined by Sebastiaan Deckers" /> </concept> <concept> - <code value="application/vnd.lotus-approach"/> - <display value="vnd.lotus-approach"/> - <definition value="As defined by Paul Wattenberger"/> + <code value="application/vnd.joost.joda-archive" /> + <display value="vnd.joost.joda-archive" /> + <definition value="As defined by Joost" /> </concept> <concept> - <code value="application/vnd.lotus-freelance"/> - <display value="vnd.lotus-freelance"/> - <definition value="As defined by Paul Wattenberger"/> + <code value="application/vnd.jsk.isdn-ngn" /> + <display value="vnd.jsk.isdn-ngn" /> + <definition value="As defined by Yokoyama Kiyonobu" /> </concept> <concept> - <code value="application/vnd.lotus-notes"/> - <display value="vnd.lotus-notes"/> - <definition value="As defined by Michael Laramie"/> + <code value="application/vnd.kahootz" /> + <display value="vnd.kahootz" /> + <definition value="As defined by Tim Macdonald" /> </concept> <concept> - <code value="application/vnd.lotus-organizer"/> - <display value="vnd.lotus-organizer"/> - <definition value="As defined by Paul Wattenberger"/> + <code value="application/vnd.kde.karbon" /> + <display value="vnd.kde.karbon" /> + <definition value="As defined by David Faure" /> </concept> <concept> - <code value="application/vnd.lotus-screencam"/> - <display value="vnd.lotus-screencam"/> - <definition value="As defined by Paul Wattenberger"/> + <code value="application/vnd.kde.kchart" /> + <display value="vnd.kde.kchart" /> + <definition value="As defined by David Faure" /> </concept> <concept> - <code value="application/vnd.lotus-wordpro"/> - <display value="vnd.lotus-wordpro"/> - <definition value="As defined by Paul Wattenberger"/> + <code value="application/vnd.kde.kformula" /> + <display value="vnd.kde.kformula" /> + <definition value="As defined by David Faure" /> </concept> <concept> - <code value="application/vnd.macports.portpkg"/> - <display value="vnd.macports.portpkg"/> - <definition value="As defined by James Berry"/> + <code value="application/vnd.kde.kivio" /> + <display value="vnd.kde.kivio" /> + <definition value="As defined by David Faure" /> </concept> <concept> - <code value="application/vnd.mapbox-vector-tile"/> - <display value="vnd.mapbox-vector-tile"/> - <definition value="As defined by Blake Thompson"/> + <code value="application/vnd.kde.kontour" /> + <display value="vnd.kde.kontour" /> + <definition value="As defined by David Faure" /> </concept> <concept> - <code value="application/vnd.marlin.drm.actiontoken+xml"/> - <display value="vnd.marlin.drm.actiontoken+xml"/> - <definition value="As defined by Gary Ellison"/> + <code value="application/vnd.kde.kpresenter" /> + <display value="vnd.kde.kpresenter" /> + <definition value="As defined by David Faure" /> </concept> <concept> - <code value="application/vnd.marlin.drm.conftoken+xml"/> - <display value="vnd.marlin.drm.conftoken+xml"/> - <definition value="As defined by Gary Ellison"/> + <code value="application/vnd.kde.kspread" /> + <display value="vnd.kde.kspread" /> + <definition value="As defined by David Faure" /> </concept> <concept> - <code value="application/vnd.marlin.drm.license+xml"/> - <display value="vnd.marlin.drm.license+xml"/> - <definition value="As defined by Gary Ellison"/> + <code value="application/vnd.kde.kword" /> + <display value="vnd.kde.kword" /> + <definition value="As defined by David Faure" /> </concept> <concept> - <code value="application/vnd.marlin.drm.mdcf"/> - <display value="vnd.marlin.drm.mdcf"/> - <definition value="As defined by Gary Ellison"/> + <code value="application/vnd.kdl" /> + <display value="vnd.kdl" /> + <definition value="As defined by Katerina Zoé Marchán Salvá" /> </concept> <concept> - <code value="application/vnd.mason+json"/> - <display value="vnd.mason+json"/> - <definition value="As defined by Jorn Wildt"/> + <code value="application/vnd.kenameaapp" /> + <display value="vnd.kenameaapp" /> + <definition value="As defined by Dirk DiGiorgio-Haag" /> </concept> <concept> - <code value="application/vnd.maxar.archive.3tz+zip"/> - <display value="vnd.maxar.archive.3tz+zip"/> - <definition value="As defined by Erik Dahlström"/> + <code value="application/vnd.keyman.kmp+zip" /> + <display value="vnd.keyman.kmp+zip" /> + <definition value="As defined by Marc Durdin" /> </concept> <concept> - <code value="application/vnd.maxmind.maxmind-db"/> - <display value="vnd.maxmind.maxmind-db"/> - <definition value="As defined by William Stevenson"/> + <code value="application/vnd.keyman.kmx" /> + <display value="vnd.keyman.kmx" /> + <definition value="As defined by Marc Durdin" /> </concept> <concept> - <code value="application/vnd.mcd"/> - <display value="vnd.mcd"/> - <definition value="As defined by Tadashi Gotoh"/> + <code value="application/vnd.kidspiration" /> + <display value="vnd.kidspiration" /> + <definition value="As defined by Jack Bennett" /> </concept> <concept> - <code value="application/vnd.mdl"/> - <display value="vnd.mdl"/> - <definition value="As defined by Lutz Kettner"/> + <code value="application/vnd.Kinar" /> + <display value="vnd.Kinar" /> + <definition value="As defined by Hemant Thakkar" /> </concept> <concept> - <code value="application/vnd.mdl-mbsdf"/> - <display value="vnd.mdl-mbsdf"/> - <definition value="As defined by Lutz Kettner"/> + <code value="application/vnd.koan" /> + <display value="vnd.koan" /> + <definition value="As defined by Pete Cole" /> </concept> <concept> - <code value="application/vnd.medcalcdata"/> - <display value="vnd.medcalcdata"/> - <definition value="As defined by Frank Schoonjans"/> + <code value="application/vnd.kodak-descriptor" /> + <display value="vnd.kodak-descriptor" /> + <definition value="As defined by Michael J. Donahue" /> </concept> <concept> - <code value="application/vnd.mediastation.cdkey"/> - <display value="vnd.mediastation.cdkey"/> - <definition value="As defined by Henry Flurry"/> + <code value="application/vnd.las" /> + <display value="vnd.las" /> + <definition value="As defined by NCGIS, and Bryan Blank" /> </concept> <concept> - <code value="application/vnd.medicalholodeck.recordxr"/> - <display value="vnd.medicalholodeck.recordxr"/> - <definition value="As defined by Dominique Sandoz"/> + <code value="application/vnd.las.las+json" /> + <display value="vnd.las.las+json" /> + <definition value="As defined by Rob Bailey" /> </concept> <concept> - <code value="application/vnd.meridian-slingshot"/> - <display value="vnd.meridian-slingshot"/> - <definition value="As defined by Eric Wedel"/> + <code value="application/vnd.las.las+xml" /> + <display value="vnd.las.las+xml" /> + <definition value="As defined by Rob Bailey" /> </concept> <concept> - <code value="application/vnd.mermaid"/> - <display value="vnd.mermaid"/> - <definition value="As defined by Sidharth Vinod"/> + <code value="application/vnd.laszip" /> + <display value="vnd.laszip" /> + <definition value="As defined by NCGIS, and Bryan Blank" /> </concept> <concept> - <code value="application/vnd.MFER"/> - <display value="vnd.MFER"/> - <definition value="As defined by Masaaki Hirai"/> + <code value="application/vnd.ldev.productlicensing" /> + <display value="vnd.ldev.productlicensing" /> + <definition value="As defined by L.development Polska" /> </concept> <concept> - <code value="application/vnd.mfmp"/> - <display value="vnd.mfmp"/> - <definition value="As defined by Yukari Ikeda"/> + <code value="application/vnd.leap+json" /> + <display value="vnd.leap+json" /> + <definition value="As defined by Mark C Fralick" /> </concept> <concept> - <code value="application/vnd.micro+json"/> - <display value="vnd.micro+json"/> - <definition value="As defined by Dali Zheng"/> + <code value="application/vnd.liberty-request+xml" /> + <display value="vnd.liberty-request+xml" /> + <definition value="As defined by Brett McDowell" /> </concept> <concept> - <code value="application/vnd.micrografx.flo"/> - <display value="vnd.micrografx.flo"/> - <definition value="As defined by Joe Prevo"/> + <code value="application/vnd.llamagraphics.life-balance.desktop" /> + <display value="vnd.llamagraphics.life-balance.desktop" /> + <definition value="As defined by Catherine E. White" /> </concept> <concept> - <code value="application/vnd.micrografx.igx"/> - <display value="vnd.micrografx.igx"/> - <definition value="As defined by Joe Prevo"/> + <code value="application/vnd.llamagraphics.life-balance.exchange+xml" /> + <display value="vnd.llamagraphics.life-balance.exchange+xml" /> + <definition value="As defined by Catherine E. White" /> </concept> <concept> - <code value="application/vnd.microsoft.portable-executable"/> - <display value="vnd.microsoft.portable-executable"/> - <definition value="As defined by Henrik Andersson"/> + <code value="application/vnd.logipipe.circuit+zip" /> + <display value="vnd.logipipe.circuit+zip" /> + <definition value="As defined by Victor Kuchynsky" /> </concept> <concept> - <code value="application/vnd.microsoft.windows.thumbnail-cache"/> - <display value="vnd.microsoft.windows.thumbnail-cache"/> - <definition value="As defined by Henrik Andersson"/> + <code value="application/vnd.loom" /> + <display value="vnd.loom" /> + <definition value="As defined by Sten Linnarsson" /> </concept> <concept> - <code value="application/vnd.miele+json"/> - <display value="vnd.miele+json"/> - <definition value="As defined by Nils Langhammer"/> + <code value="application/vnd.lotus-1-2-3" /> + <display value="vnd.lotus-1-2-3" /> + <definition value="As defined by Paul Wattenberger" /> </concept> <concept> - <code value="application/vnd.mif"/> - <display value="vnd.mif"/> - <definition value="As defined by Mike Wexler"/> + <code value="application/vnd.lotus-approach" /> + <display value="vnd.lotus-approach" /> + <definition value="As defined by Paul Wattenberger" /> </concept> <concept> - <code value="application/vnd.minisoft-hp3000-save"/> - <display value="vnd.minisoft-hp3000-save"/> - <definition value="As defined by Chris Bartram"/> + <code value="application/vnd.lotus-freelance" /> + <display value="vnd.lotus-freelance" /> + <definition value="As defined by Paul Wattenberger" /> </concept> <concept> - <code value="application/vnd.mitsubishi.misty-guard.trustweb"/> - <display value="vnd.mitsubishi.misty-guard.trustweb"/> - <definition value="As defined by Tanaka"/> + <code value="application/vnd.lotus-notes" /> + <display value="vnd.lotus-notes" /> + <definition value="As defined by Michael Laramie" /> </concept> <concept> - <code value="application/vnd.Mobius.DAF"/> - <display value="vnd.Mobius.DAF"/> - <definition value="As defined by Allen K. Kabayama"/> + <code value="application/vnd.lotus-organizer" /> + <display value="vnd.lotus-organizer" /> + <definition value="As defined by Paul Wattenberger" /> </concept> <concept> - <code value="application/vnd.Mobius.DIS"/> - <display value="vnd.Mobius.DIS"/> - <definition value="As defined by Allen K. Kabayama"/> + <code value="application/vnd.lotus-screencam" /> + <display value="vnd.lotus-screencam" /> + <definition value="As defined by Paul Wattenberger" /> </concept> <concept> - <code value="application/vnd.Mobius.MBK"/> - <display value="vnd.Mobius.MBK"/> - <definition value="As defined by Alex Devasia"/> + <code value="application/vnd.lotus-wordpro" /> + <display value="vnd.lotus-wordpro" /> + <definition value="As defined by Paul Wattenberger" /> </concept> <concept> - <code value="application/vnd.Mobius.MQY"/> - <display value="vnd.Mobius.MQY"/> - <definition value="As defined by Alex Devasia"/> + <code value="application/vnd.macports.portpkg" /> + <display value="vnd.macports.portpkg" /> + <definition value="As defined by James Berry" /> </concept> <concept> - <code value="application/vnd.Mobius.MSL"/> - <display value="vnd.Mobius.MSL"/> - <definition value="As defined by Allen K. Kabayama"/> + <code value="application/vnd.maml" /> + <display value="vnd.maml" /> + <definition value="As defined by Anton Medvedev" /> </concept> <concept> - <code value="application/vnd.Mobius.PLC"/> - <display value="vnd.Mobius.PLC"/> - <definition value="As defined by Allen K. Kabayama"/> + <code value="application/vnd.mapbox-vector-tile" /> + <display value="vnd.mapbox-vector-tile" /> + <definition value="As defined by Blake Thompson" /> </concept> <concept> - <code value="application/vnd.Mobius.TXF"/> - <display value="vnd.Mobius.TXF"/> - <definition value="As defined by Allen K. Kabayama"/> + <code value="application/vnd.marlin.drm.actiontoken+xml" /> + <display value="vnd.marlin.drm.actiontoken+xml" /> + <definition value="As defined by Gary Ellison" /> </concept> <concept> - <code value="application/vnd.modl"/> - <display value="vnd.modl"/> - <definition value="As defined by Elliott Brown"/> + <code value="application/vnd.marlin.drm.conftoken+xml" /> + <display value="vnd.marlin.drm.conftoken+xml" /> + <definition value="As defined by Gary Ellison" /> </concept> <concept> - <code value="application/vnd.mophun.application"/> - <display value="vnd.mophun.application"/> - <definition value="As defined by Bjorn Wennerstrom"/> + <code value="application/vnd.marlin.drm.license+xml" /> + <display value="vnd.marlin.drm.license+xml" /> + <definition value="As defined by Gary Ellison" /> </concept> <concept> - <code value="application/vnd.mophun.certificate"/> - <display value="vnd.mophun.certificate"/> - <definition value="As defined by Bjorn Wennerstrom"/> + <code value="application/vnd.marlin.drm.mdcf" /> + <display value="vnd.marlin.drm.mdcf" /> + <definition value="As defined by Gary Ellison" /> </concept> <concept> - <code value="application/vnd.motorola.flexsuite"/> - <display value="vnd.motorola.flexsuite"/> - <definition value="As defined by Mark Patton"/> + <code value="application/vnd.mason+json" /> + <display value="vnd.mason+json" /> + <definition value="As defined by Jorn Wildt" /> </concept> <concept> - <code value="application/vnd.motorola.flexsuite.adsi"/> - <display value="vnd.motorola.flexsuite.adsi"/> - <definition value="As defined by Mark Patton"/> + <code value="application/vnd.maxar.archive.3tz+zip" /> + <display value="vnd.maxar.archive.3tz+zip" /> + <definition value="As defined by Erik Dahlström" /> </concept> <concept> - <code value="application/vnd.motorola.flexsuite.fis"/> - <display value="vnd.motorola.flexsuite.fis"/> - <definition value="As defined by Mark Patton"/> + <code value="application/vnd.maxmind.maxmind-db" /> + <display value="vnd.maxmind.maxmind-db" /> + <definition value="As defined by William Stevenson" /> </concept> <concept> - <code value="application/vnd.motorola.flexsuite.gotap"/> - <display value="vnd.motorola.flexsuite.gotap"/> - <definition value="As defined by Mark Patton"/> + <code value="application/vnd.mcd" /> + <display value="vnd.mcd" /> + <definition value="As defined by Tadashi Gotoh" /> </concept> <concept> - <code value="application/vnd.motorola.flexsuite.kmr"/> - <display value="vnd.motorola.flexsuite.kmr"/> - <definition value="As defined by Mark Patton"/> + <code value="application/vnd.mdl" /> + <display value="vnd.mdl" /> + <definition value="As defined by Lutz Kettner" /> </concept> <concept> - <code value="application/vnd.motorola.flexsuite.ttc"/> - <display value="vnd.motorola.flexsuite.ttc"/> - <definition value="As defined by Mark Patton"/> + <code value="application/vnd.mdl-mbsdf" /> + <display value="vnd.mdl-mbsdf" /> + <definition value="As defined by Lutz Kettner" /> </concept> <concept> - <code value="application/vnd.motorola.flexsuite.wem"/> - <display value="vnd.motorola.flexsuite.wem"/> - <definition value="As defined by Mark Patton"/> + <code value="application/vnd.medcalcdata" /> + <display value="vnd.medcalcdata" /> + <definition value="As defined by Frank Schoonjans" /> </concept> <concept> - <code value="application/vnd.motorola.iprm"/> - <display value="vnd.motorola.iprm"/> - <definition value="As defined by Rafie Shamsaasef"/> + <code value="application/vnd.mediastation.cdkey" /> + <display value="vnd.mediastation.cdkey" /> + <definition value="As defined by Henry Flurry" /> </concept> <concept> - <code value="application/vnd.mozilla.xul+xml"/> - <display value="vnd.mozilla.xul+xml"/> - <definition value="As defined by Braden N McDaniel"/> + <code value="application/vnd.medicalholodeck.recordxr" /> + <display value="vnd.medicalholodeck.recordxr" /> + <definition value="As defined by Dominique Sandoz" /> </concept> <concept> - <code value="application/vnd.ms-artgalry"/> - <display value="vnd.ms-artgalry"/> - <definition value="As defined by Dean Slawson"/> + <code value="application/vnd.meridian-slingshot" /> + <display value="vnd.meridian-slingshot" /> + <definition value="As defined by Eric Wedel" /> </concept> <concept> - <code value="application/vnd.ms-asf"/> - <display value="vnd.ms-asf"/> - <definition value="As defined by Eric Fleischman"/> + <code value="application/vnd.mermaid" /> + <display value="vnd.mermaid" /> + <definition value="As defined by Sidharth Vinod" /> </concept> <concept> - <code value="application/vnd.ms-cab-compressed"/> - <display value="vnd.ms-cab-compressed"/> - <definition value="As defined by Kim Scarborough"/> + <code value="application/vnd.MFER" /> + <display value="vnd.MFER" /> + <definition value="As defined by Masaaki Hirai" /> </concept> <concept> - <code value="application/vnd.ms-3mfdocument"/> - <display value="vnd.ms-3mfdocument"/> - <definition value="As defined by Shawn Maloney"/> + <code value="application/vnd.mfmp" /> + <display value="vnd.mfmp" /> + <definition value="As defined by Yukari Ikeda" /> </concept> <concept> - <code value="application/vnd.ms-excel"/> - <display value="vnd.ms-excel"/> - <definition value="As defined by Sukvinder S. Gill"/> + <code value="application/vnd.micro+json" /> + <display value="vnd.micro+json" /> + <definition value="As defined by Dali Zheng" /> </concept> <concept> - <code value="application/vnd.ms-excel.addin.macroEnabled.12"/> - <display value="vnd.ms-excel.addin.macroEnabled.12"/> - <definition value="As defined by Chris Rae"/> + <code value="application/vnd.micrografx.flo" /> + <display value="vnd.micrografx.flo" /> + <definition value="As defined by Joe Prevo" /> </concept> <concept> - <code value="application/vnd.ms-excel.sheet.binary.macroEnabled.12"/> - <display value="vnd.ms-excel.sheet.binary.macroEnabled.12"/> - <definition value="As defined by Chris Rae"/> + <code value="application/vnd.micrografx.igx" /> + <display value="vnd.micrografx.igx" /> + <definition value="As defined by Joe Prevo" /> </concept> <concept> - <code value="application/vnd.ms-excel.sheet.macroEnabled.12"/> - <display value="vnd.ms-excel.sheet.macroEnabled.12"/> - <definition value="As defined by Chris Rae"/> + <code value="application/vnd.microsoft.portable-executable" /> + <display value="vnd.microsoft.portable-executable" /> + <definition value="As defined by Henrik Andersson" /> </concept> <concept> - <code value="application/vnd.ms-excel.template.macroEnabled.12"/> - <display value="vnd.ms-excel.template.macroEnabled.12"/> - <definition value="As defined by Chris Rae"/> + <code value="application/vnd.microsoft.windows.thumbnail-cache" /> + <display value="vnd.microsoft.windows.thumbnail-cache" /> + <definition value="As defined by Henrik Andersson" /> </concept> <concept> - <code value="application/vnd.ms-fontobject"/> - <display value="vnd.ms-fontobject"/> - <definition value="As defined by Kim Scarborough"/> + <code value="application/vnd.miele+json" /> + <display value="vnd.miele+json" /> + <definition value="As defined by Nils Langhammer" /> </concept> <concept> - <code value="application/vnd.ms-htmlhelp"/> - <display value="vnd.ms-htmlhelp"/> - <definition value="As defined by Anatoly Techtonik"/> + <code value="application/vnd.mif" /> + <display value="vnd.mif" /> + <definition value="As defined by Mike Wexler" /> </concept> <concept> - <code value="application/vnd.ms-ims"/> - <display value="vnd.ms-ims"/> - <definition value="As defined by Eric Ledoux"/> + <code value="application/vnd.minisoft-hp3000-save" /> + <display value="vnd.minisoft-hp3000-save" /> + <definition value="As defined by Chris Bartram" /> </concept> <concept> - <code value="application/vnd.ms-lrm"/> - <display value="vnd.ms-lrm"/> - <definition value="As defined by Eric Ledoux"/> + <code value="application/vnd.mitsubishi.misty-guard.trustweb" /> + <display value="vnd.mitsubishi.misty-guard.trustweb" /> + <definition value="As defined by Tanaka" /> </concept> <concept> - <code value="application/vnd.ms-office.activeX+xml"/> - <display value="vnd.ms-office.activeX+xml"/> - <definition value="As defined by Chris Rae"/> + <code value="application/vnd.Mobius.DAF" /> + <display value="vnd.Mobius.DAF" /> + <definition value="As defined by Allen K. Kabayama" /> </concept> <concept> - <code value="application/vnd.ms-officetheme"/> - <display value="vnd.ms-officetheme"/> - <definition value="As defined by Chris Rae"/> + <code value="application/vnd.Mobius.DIS" /> + <display value="vnd.Mobius.DIS" /> + <definition value="As defined by Allen K. Kabayama" /> </concept> <concept> - <code value="application/vnd.ms-playready.initiator+xml"/> - <display value="vnd.ms-playready.initiator+xml"/> - <definition value="As defined by Daniel Schneider"/> + <code value="application/vnd.Mobius.MBK" /> + <display value="vnd.Mobius.MBK" /> + <definition value="As defined by Alex Devasia" /> </concept> <concept> - <code value="application/vnd.ms-powerpoint"/> - <display value="vnd.ms-powerpoint"/> - <definition value="As defined by Sukvinder S. Gill"/> + <code value="application/vnd.Mobius.MQY" /> + <display value="vnd.Mobius.MQY" /> + <definition value="As defined by Alex Devasia" /> </concept> <concept> - <code value="application/vnd.ms-powerpoint.addin.macroEnabled.12"/> - <display value="vnd.ms-powerpoint.addin.macroEnabled.12"/> - <definition value="As defined by Chris Rae"/> + <code value="application/vnd.Mobius.MSL" /> + <display value="vnd.Mobius.MSL" /> + <definition value="As defined by Allen K. Kabayama" /> </concept> <concept> - <code value="application/vnd.ms-powerpoint.presentation.macroEnabled.12"/> - <display value="vnd.ms-powerpoint.presentation.macroEnabled.12"/> - <definition value="As defined by Chris Rae"/> + <code value="application/vnd.Mobius.PLC" /> + <display value="vnd.Mobius.PLC" /> + <definition value="As defined by Allen K. Kabayama" /> </concept> <concept> - <code value="application/vnd.ms-powerpoint.slide.macroEnabled.12"/> - <display value="vnd.ms-powerpoint.slide.macroEnabled.12"/> - <definition value="As defined by Chris Rae"/> + <code value="application/vnd.Mobius.TXF" /> + <display value="vnd.Mobius.TXF" /> + <definition value="As defined by Allen K. Kabayama" /> </concept> <concept> - <code value="application/vnd.ms-powerpoint.slideshow.macroEnabled.12"/> - <display value="vnd.ms-powerpoint.slideshow.macroEnabled.12"/> - <definition value="As defined by Chris Rae"/> + <code value="application/vnd.modl" /> + <display value="vnd.modl" /> + <definition value="As defined by Elliott Brown" /> </concept> <concept> - <code value="application/vnd.ms-powerpoint.template.macroEnabled.12"/> - <display value="vnd.ms-powerpoint.template.macroEnabled.12"/> - <definition value="As defined by Chris Rae"/> + <code value="application/vnd.mophun.application" /> + <display value="vnd.mophun.application" /> + <definition value="As defined by Bjorn Wennerstrom" /> </concept> <concept> - <code value="application/vnd.ms-PrintDeviceCapabilities+xml"/> - <display value="vnd.ms-PrintDeviceCapabilities+xml"/> - <definition value="As defined by Justin Hutchings"/> + <code value="application/vnd.mophun.certificate" /> + <display value="vnd.mophun.certificate" /> + <definition value="As defined by Bjorn Wennerstrom" /> </concept> <concept> - <code value="application/vnd.ms-PrintSchemaTicket+xml"/> - <display value="vnd.ms-PrintSchemaTicket+xml"/> - <definition value="As defined by Justin Hutchings"/> + <code value="application/vnd.motorola.flexsuite" /> + <display value="vnd.motorola.flexsuite" /> + <definition value="As defined by Mark Patton" /> </concept> <concept> - <code value="application/vnd.ms-project"/> - <display value="vnd.ms-project"/> - <definition value="As defined by Sukvinder S. Gill"/> + <code value="application/vnd.motorola.flexsuite.adsi" /> + <display value="vnd.motorola.flexsuite.adsi" /> + <definition value="As defined by Mark Patton" /> </concept> <concept> - <code value="application/vnd.ms-tnef"/> - <display value="vnd.ms-tnef"/> - <definition value="As defined by Sukvinder S. Gill"/> + <code value="application/vnd.motorola.flexsuite.fis" /> + <display value="vnd.motorola.flexsuite.fis" /> + <definition value="As defined by Mark Patton" /> </concept> <concept> - <code value="application/vnd.ms-windows.devicepairing"/> - <display value="vnd.ms-windows.devicepairing"/> - <definition value="As defined by Justin Hutchings"/> + <code value="application/vnd.motorola.flexsuite.gotap" /> + <display value="vnd.motorola.flexsuite.gotap" /> + <definition value="As defined by Mark Patton" /> </concept> <concept> - <code value="application/vnd.ms-windows.nwprinting.oob"/> - <display value="vnd.ms-windows.nwprinting.oob"/> - <definition value="As defined by Justin Hutchings"/> + <code value="application/vnd.motorola.flexsuite.kmr" /> + <display value="vnd.motorola.flexsuite.kmr" /> + <definition value="As defined by Mark Patton" /> </concept> <concept> - <code value="application/vnd.ms-windows.printerpairing"/> - <display value="vnd.ms-windows.printerpairing"/> - <definition value="As defined by Justin Hutchings"/> + <code value="application/vnd.motorola.flexsuite.ttc" /> + <display value="vnd.motorola.flexsuite.ttc" /> + <definition value="As defined by Mark Patton" /> </concept> <concept> - <code value="application/vnd.ms-windows.wsd.oob"/> - <display value="vnd.ms-windows.wsd.oob"/> - <definition value="As defined by Justin Hutchings"/> + <code value="application/vnd.motorola.flexsuite.wem" /> + <display value="vnd.motorola.flexsuite.wem" /> + <definition value="As defined by Mark Patton" /> </concept> <concept> - <code value="application/vnd.ms-wmdrm.lic-chlg-req"/> - <display value="vnd.ms-wmdrm.lic-chlg-req"/> - <definition value="As defined by Kevin Lau"/> + <code value="application/vnd.motorola.iprm" /> + <display value="vnd.motorola.iprm" /> + <definition value="As defined by Rafie Shamsaasef" /> </concept> <concept> - <code value="application/vnd.ms-wmdrm.lic-resp"/> - <display value="vnd.ms-wmdrm.lic-resp"/> - <definition value="As defined by Kevin Lau"/> + <code value="application/vnd.mozilla.xul+xml" /> + <display value="vnd.mozilla.xul+xml" /> + <definition value="As defined by Braden N McDaniel" /> </concept> <concept> - <code value="application/vnd.ms-wmdrm.meter-chlg-req"/> - <display value="vnd.ms-wmdrm.meter-chlg-req"/> - <definition value="As defined by Kevin Lau"/> + <code value="application/vnd.ms-artgalry" /> + <display value="vnd.ms-artgalry" /> + <definition value="As defined by Dean Slawson" /> </concept> <concept> - <code value="application/vnd.ms-wmdrm.meter-resp"/> - <display value="vnd.ms-wmdrm.meter-resp"/> - <definition value="As defined by Kevin Lau"/> + <code value="application/vnd.ms-asf" /> + <display value="vnd.ms-asf" /> + <definition value="As defined by Eric Fleischman" /> </concept> <concept> - <code value="application/vnd.ms-word.document.macroEnabled.12"/> - <display value="vnd.ms-word.document.macroEnabled.12"/> - <definition value="As defined by Chris Rae"/> + <code value="application/vnd.ms-cab-compressed" /> + <display value="vnd.ms-cab-compressed" /> + <definition value="As defined by Kim Scarborough" /> </concept> <concept> - <code value="application/vnd.ms-word.template.macroEnabled.12"/> - <display value="vnd.ms-word.template.macroEnabled.12"/> - <definition value="As defined by Chris Rae"/> + <code value="application/vnd.ms-3mfdocument" /> + <display value="vnd.ms-3mfdocument" /> + <definition value="As defined by Shawn Maloney" /> </concept> <concept> - <code value="application/vnd.ms-works"/> - <display value="vnd.ms-works"/> - <definition value="As defined by Sukvinder S. Gill"/> + <code value="application/vnd.ms-excel" /> + <display value="vnd.ms-excel" /> + <definition value="As defined by Sukvinder S. Gill" /> </concept> <concept> - <code value="application/vnd.ms-wpl"/> - <display value="vnd.ms-wpl"/> - <definition value="As defined by Dan Plastina"/> + <code value="application/vnd.ms-excel.addin.macroEnabled.12" /> + <display value="vnd.ms-excel.addin.macroEnabled.12" /> + <definition value="As defined by Chris Rae" /> </concept> <concept> - <code value="application/vnd.ms-xpsdocument"/> - <display value="vnd.ms-xpsdocument"/> - <definition value="As defined by Jesse McGatha"/> + <code value="application/vnd.ms-excel.sheet.binary.macroEnabled.12" /> + <display value="vnd.ms-excel.sheet.binary.macroEnabled.12" /> + <definition value="As defined by Chris Rae" /> </concept> <concept> - <code value="application/vnd.msa-disk-image"/> - <display value="vnd.msa-disk-image"/> - <definition value="As defined by Thomas Huth"/> + <code value="application/vnd.ms-excel.sheet.macroEnabled.12" /> + <display value="vnd.ms-excel.sheet.macroEnabled.12" /> + <definition value="As defined by Chris Rae" /> </concept> <concept> - <code value="application/vnd.mseq"/> - <display value="vnd.mseq"/> - <definition value="As defined by Gwenael Le Bodic"/> + <code value="application/vnd.ms-excel.template.macroEnabled.12" /> + <display value="vnd.ms-excel.template.macroEnabled.12" /> + <definition value="As defined by Chris Rae" /> </concept> <concept> - <code value="application/vnd.msgpack"/> - <display value="vnd.msgpack"/> - <definition value="As defined by Alexander Ivanov"/> + <code value="application/vnd.ms-fontobject" /> + <display value="vnd.ms-fontobject" /> + <definition value="As defined by Kim Scarborough" /> </concept> <concept> - <code value="application/vnd.msign"/> - <display value="vnd.msign"/> - <definition value="As defined by Malte Borcherding"/> + <code value="application/vnd.ms-htmlhelp" /> + <display value="vnd.ms-htmlhelp" /> + <definition value="As defined by Anatoly Techtonik" /> </concept> <concept> - <code value="application/vnd.multiad.creator"/> - <display value="vnd.multiad.creator"/> - <definition value="As defined by Steve Mills"/> + <code value="application/vnd.ms-ims" /> + <display value="vnd.ms-ims" /> + <definition value="As defined by Eric Ledoux" /> </concept> <concept> - <code value="application/vnd.multiad.creator.cif"/> - <display value="vnd.multiad.creator.cif"/> - <definition value="As defined by Steve Mills"/> + <code value="application/vnd.ms-lrm" /> + <display value="vnd.ms-lrm" /> + <definition value="As defined by Eric Ledoux" /> </concept> <concept> - <code value="application/vnd.musician"/> - <display value="vnd.musician"/> - <definition value="As defined by Greg Adams"/> + <code value="application/vnd.ms-office.activeX+xml" /> + <display value="vnd.ms-office.activeX+xml" /> + <definition value="As defined by Chris Rae" /> </concept> <concept> - <code value="application/vnd.music-niff"/> - <display value="vnd.music-niff"/> - <definition value="As defined by Tim Butler"/> + <code value="application/vnd.ms-officetheme" /> + <display value="vnd.ms-officetheme" /> + <definition value="As defined by Chris Rae" /> </concept> <concept> - <code value="application/vnd.muvee.style"/> - <display value="vnd.muvee.style"/> - <definition value="As defined by Chandrashekhara Anantharamu"/> + <code value="application/vnd.ms-playready.initiator+xml" /> + <display value="vnd.ms-playready.initiator+xml" /> + <definition value="As defined by Daniel Schneider" /> </concept> <concept> - <code value="application/vnd.mynfc"/> - <display value="vnd.mynfc"/> - <definition value="As defined by Franck Lefevre"/> + <code value="application/vnd.ms-powerpoint" /> + <display value="vnd.ms-powerpoint" /> + <definition value="As defined by Sukvinder S. Gill" /> </concept> <concept> - <code value="application/vnd.nacamar.ybrid+json"/> - <display value="vnd.nacamar.ybrid+json"/> - <definition value="As defined by Sebastian A. Weiss"/> + <code value="application/vnd.ms-powerpoint.addin.macroEnabled.12" /> + <display value="vnd.ms-powerpoint.addin.macroEnabled.12" /> + <definition value="As defined by Chris Rae" /> </concept> <concept> - <code value="application/vnd.nato.bindingdataobject+cbor"/> - <display value="vnd.nato.bindingdataobject+cbor"/> - <definition value="As defined by Aidan Murdock"/> + <code value="application/vnd.ms-powerpoint.presentation.macroEnabled.12" /> + <display value="vnd.ms-powerpoint.presentation.macroEnabled.12" /> + <definition value="As defined by Chris Rae" /> </concept> <concept> - <code value="application/vnd.nato.bindingdataobject+json"/> - <display value="vnd.nato.bindingdataobject+json"/> - <definition value="As defined by Aidan Murdock"/> + <code value="application/vnd.ms-powerpoint.slide.macroEnabled.12" /> + <display value="vnd.ms-powerpoint.slide.macroEnabled.12" /> + <definition value="As defined by Chris Rae" /> </concept> <concept> - <code value="application/vnd.nato.bindingdataobject+xml"/> - <display value="vnd.nato.bindingdataobject+xml"/> - <definition value="As defined by Aidan Murdock"/> + <code value="application/vnd.ms-powerpoint.slideshow.macroEnabled.12" /> + <display value="vnd.ms-powerpoint.slideshow.macroEnabled.12" /> + <definition value="As defined by Chris Rae" /> </concept> <concept> - <code value="application/vnd.nato.openxmlformats-package.iepd+zip"/> - <display value="vnd.nato.openxmlformats-package.iepd+zip"/> - <definition value="As defined by Aidan Murdock"/> + <code value="application/vnd.ms-powerpoint.template.macroEnabled.12" /> + <display value="vnd.ms-powerpoint.template.macroEnabled.12" /> + <definition value="As defined by Chris Rae" /> </concept> <concept> - <code value="application/vnd.ncd.control"/> - <display value="vnd.ncd.control"/> - <definition value="As defined by Lauri Tarkkala"/> + <code value="application/vnd.ms-PrintDeviceCapabilities+xml" /> + <display value="vnd.ms-PrintDeviceCapabilities+xml" /> + <definition value="As defined by Justin Hutchings" /> </concept> <concept> - <code value="application/vnd.ncd.reference"/> - <display value="vnd.ncd.reference"/> - <definition value="As defined by Lauri Tarkkala"/> + <code value="application/vnd.ms-PrintSchemaTicket+xml" /> + <display value="vnd.ms-PrintSchemaTicket+xml" /> + <definition value="As defined by Justin Hutchings" /> </concept> <concept> - <code value="application/vnd.nearst.inv+json"/> - <display value="vnd.nearst.inv+json"/> - <definition value="As defined by Thomas Schoffelen"/> + <code value="application/vnd.ms-project" /> + <display value="vnd.ms-project" /> + <definition value="As defined by Sukvinder S. Gill" /> </concept> <concept> - <code value="application/vnd.nebumind.line"/> - <display value="vnd.nebumind.line"/> - <definition value="As defined by Andreas Molzer"/> + <code value="application/vnd.ms-tnef" /> + <display value="vnd.ms-tnef" /> + <definition value="As defined by Sukvinder S. Gill" /> </concept> <concept> - <code value="application/vnd.nervana"/> - <display value="vnd.nervana"/> - <definition value="As defined by Steve Judkins"/> + <code value="application/vnd.ms-windows.devicepairing" /> + <display value="vnd.ms-windows.devicepairing" /> + <definition value="As defined by Justin Hutchings" /> </concept> <concept> - <code value="application/vnd.netfpx"/> - <display value="vnd.netfpx"/> - <definition value="As defined by Andy Mutz"/> + <code value="application/vnd.ms-windows.nwprinting.oob" /> + <display value="vnd.ms-windows.nwprinting.oob" /> + <definition value="As defined by Justin Hutchings" /> </concept> <concept> - <code value="application/vnd.neurolanguage.nlu"/> - <display value="vnd.neurolanguage.nlu"/> - <definition value="As defined by Dan DuFeu"/> + <code value="application/vnd.ms-windows.printerpairing" /> + <display value="vnd.ms-windows.printerpairing" /> + <definition value="As defined by Justin Hutchings" /> </concept> <concept> - <code value="application/vnd.nimn"/> - <display value="vnd.nimn"/> - <definition value="As defined by Amit Kumar Gupta"/> + <code value="application/vnd.ms-windows.wsd.oob" /> + <display value="vnd.ms-windows.wsd.oob" /> + <definition value="As defined by Justin Hutchings" /> </concept> <concept> - <code value="application/vnd.nintendo.snes.rom"/> - <display value="vnd.nintendo.snes.rom"/> - <definition value="As defined by Henrik Andersson"/> + <code value="application/vnd.ms-wmdrm.lic-chlg-req" /> + <display value="vnd.ms-wmdrm.lic-chlg-req" /> + <definition value="As defined by Kevin Lau" /> </concept> <concept> - <code value="application/vnd.nintendo.nitro.rom"/> - <display value="vnd.nintendo.nitro.rom"/> - <definition value="As defined by Henrik Andersson"/> + <code value="application/vnd.ms-wmdrm.lic-resp" /> + <display value="vnd.ms-wmdrm.lic-resp" /> + <definition value="As defined by Kevin Lau" /> </concept> <concept> - <code value="application/vnd.nitf"/> - <display value="vnd.nitf"/> - <definition value="As defined by Steve Rogan"/> + <code value="application/vnd.ms-wmdrm.meter-chlg-req" /> + <display value="vnd.ms-wmdrm.meter-chlg-req" /> + <definition value="As defined by Kevin Lau" /> </concept> <concept> - <code value="application/vnd.noblenet-directory"/> - <display value="vnd.noblenet-directory"/> - <definition value="As defined by Monty Solomon"/> + <code value="application/vnd.ms-wmdrm.meter-resp" /> + <display value="vnd.ms-wmdrm.meter-resp" /> + <definition value="As defined by Kevin Lau" /> </concept> <concept> - <code value="application/vnd.noblenet-sealer"/> - <display value="vnd.noblenet-sealer"/> - <definition value="As defined by Monty Solomon"/> + <code value="application/vnd.ms-word.document.macroEnabled.12" /> + <display value="vnd.ms-word.document.macroEnabled.12" /> + <definition value="As defined by Chris Rae" /> </concept> <concept> - <code value="application/vnd.noblenet-web"/> - <display value="vnd.noblenet-web"/> - <definition value="As defined by Monty Solomon"/> + <code value="application/vnd.ms-word.template.macroEnabled.12" /> + <display value="vnd.ms-word.template.macroEnabled.12" /> + <definition value="As defined by Chris Rae" /> </concept> <concept> - <code value="application/vnd.nokia.catalogs"/> - <display value="vnd.nokia.catalogs"/> - <definition value="As defined by Nokia"/> + <code value="application/vnd.ms-works" /> + <display value="vnd.ms-works" /> + <definition value="As defined by Sukvinder S. Gill" /> </concept> <concept> - <code value="application/vnd.nokia.conml+wbxml"/> - <display value="vnd.nokia.conml+wbxml"/> - <definition value="As defined by Nokia"/> + <code value="application/vnd.ms-wpl" /> + <display value="vnd.ms-wpl" /> + <definition value="As defined by Dan Plastina" /> </concept> <concept> - <code value="application/vnd.nokia.conml+xml"/> - <display value="vnd.nokia.conml+xml"/> - <definition value="As defined by Nokia"/> + <code value="application/vnd.ms-xpsdocument" /> + <display value="vnd.ms-xpsdocument" /> + <definition value="As defined by Jesse McGatha" /> </concept> <concept> - <code value="application/vnd.nokia.iptv.config+xml"/> - <display value="vnd.nokia.iptv.config+xml"/> - <definition value="As defined by Nokia"/> + <code value="application/vnd.msa-disk-image" /> + <display value="vnd.msa-disk-image" /> + <definition value="As defined by Thomas Huth" /> </concept> <concept> - <code value="application/vnd.nokia.iSDS-radio-presets"/> - <display value="vnd.nokia.iSDS-radio-presets"/> - <definition value="As defined by Nokia"/> + <code value="application/vnd.mseq" /> + <display value="vnd.mseq" /> + <definition value="As defined by Gwenael Le Bodic" /> </concept> <concept> - <code value="application/vnd.nokia.landmark+wbxml"/> - <display value="vnd.nokia.landmark+wbxml"/> - <definition value="As defined by Nokia"/> + <code value="application/vnd.msgpack" /> + <display value="vnd.msgpack" /> + <definition value="As defined by Alexander Ivanov" /> </concept> <concept> - <code value="application/vnd.nokia.landmark+xml"/> - <display value="vnd.nokia.landmark+xml"/> - <definition value="As defined by Nokia"/> + <code value="application/vnd.msign" /> + <display value="vnd.msign" /> + <definition value="As defined by Malte Borcherding" /> </concept> <concept> - <code value="application/vnd.nokia.landmarkcollection+xml"/> - <display value="vnd.nokia.landmarkcollection+xml"/> - <definition value="As defined by Nokia"/> + <code value="application/vnd.multiad.creator" /> + <display value="vnd.multiad.creator" /> + <definition value="As defined by Steve Mills" /> </concept> <concept> - <code value="application/vnd.nokia.ncd"/> - <display value="vnd.nokia.ncd"/> - <definition value="As defined by Nokia"/> + <code value="application/vnd.multiad.creator.cif" /> + <display value="vnd.multiad.creator.cif" /> + <definition value="As defined by Steve Mills" /> </concept> <concept> - <code value="application/vnd.nokia.n-gage.ac+xml"/> - <display value="vnd.nokia.n-gage.ac+xml"/> - <definition value="As defined by Nokia"/> + <code value="application/vnd.musician" /> + <display value="vnd.musician" /> + <definition value="As defined by Greg Adams" /> </concept> <concept> - <code value="application/vnd.nokia.n-gage.data"/> - <display value="vnd.nokia.n-gage.data"/> - <definition value="As defined by Nokia"/> + <code value="application/vnd.music-niff" /> + <display value="vnd.music-niff" /> + <definition value="As defined by Tim Butler" /> </concept> <concept> - <code value="application/vnd.nokia.pcd+wbxml"/> - <display value="vnd.nokia.pcd+wbxml"/> - <definition value="As defined by Nokia"/> + <code value="application/vnd.muvee.style" /> + <display value="vnd.muvee.style" /> + <definition value="As defined by Chandrashekhara Anantharamu" /> </concept> <concept> - <code value="application/vnd.nokia.pcd+xml"/> - <display value="vnd.nokia.pcd+xml"/> - <definition value="As defined by Nokia"/> + <code value="application/vnd.mynfc" /> + <display value="vnd.mynfc" /> + <definition value="As defined by Franck Lefevre" /> </concept> <concept> - <code value="application/vnd.nokia.radio-preset"/> - <display value="vnd.nokia.radio-preset"/> - <definition value="As defined by Nokia"/> + <code value="application/vnd.nacamar.ybrid+json" /> + <display value="vnd.nacamar.ybrid+json" /> + <definition value="As defined by Sebastian A. Weiss" /> </concept> <concept> - <code value="application/vnd.nokia.radio-presets"/> - <display value="vnd.nokia.radio-presets"/> - <definition value="As defined by Nokia"/> + <code value="application/vnd.nato.bindingdataobject+cbor" /> + <display value="vnd.nato.bindingdataobject+cbor" /> + <definition value="As defined by Aidan Murdock" /> </concept> <concept> - <code value="application/vnd.novadigm.EDM"/> - <display value="vnd.novadigm.EDM"/> - <definition value="As defined by Janine Swenson"/> + <code value="application/vnd.nato.bindingdataobject+json" /> + <display value="vnd.nato.bindingdataobject+json" /> + <definition value="As defined by Aidan Murdock" /> </concept> <concept> - <code value="application/vnd.novadigm.EDX"/> - <display value="vnd.novadigm.EDX"/> - <definition value="As defined by Janine Swenson"/> + <code value="application/vnd.nato.bindingdataobject+xml" /> + <display value="vnd.nato.bindingdataobject+xml" /> + <definition value="As defined by Aidan Murdock" /> </concept> <concept> - <code value="application/vnd.novadigm.EXT"/> - <display value="vnd.novadigm.EXT"/> - <definition value="As defined by Janine Swenson"/> + <code value="application/vnd.nato.openxmlformats-package.iepd+zip" /> + <display value="vnd.nato.openxmlformats-package.iepd+zip" /> + <definition value="As defined by Aidan Murdock" /> </concept> <concept> - <code value="application/vnd.ntt-local.content-share"/> - <display value="vnd.ntt-local.content-share"/> - <definition value="As defined by Akinori Taya"/> + <code value="application/vnd.ncd.control" /> + <display value="vnd.ncd.control" /> + <definition value="As defined by Lauri Tarkkala" /> </concept> <concept> - <code value="application/vnd.ntt-local.file-transfer"/> - <display value="vnd.ntt-local.file-transfer"/> - <definition value="As defined by NTT-local"/> + <code value="application/vnd.ncd.reference" /> + <display value="vnd.ncd.reference" /> + <definition value="As defined by Lauri Tarkkala" /> </concept> <concept> - <code value="application/vnd.ntt-local.ogw_remote-access"/> - <display value="vnd.ntt-local.ogw_remote-access"/> - <definition value="As defined by NTT-local"/> + <code value="application/vnd.nearst.inv+json" /> + <display value="vnd.nearst.inv+json" /> + <definition value="As defined by Thomas Schoffelen" /> </concept> <concept> - <code value="application/vnd.ntt-local.sip-ta_remote"/> - <display value="vnd.ntt-local.sip-ta_remote"/> - <definition value="As defined by NTT-local"/> + <code value="application/vnd.nebumind.line" /> + <display value="vnd.nebumind.line" /> + <definition value="As defined by Andreas Molzer" /> </concept> <concept> - <code value="application/vnd.ntt-local.sip-ta_tcp_stream"/> - <display value="vnd.ntt-local.sip-ta_tcp_stream"/> - <definition value="As defined by NTT-local"/> + <code value="application/vnd.nervana" /> + <display value="vnd.nervana" /> + <definition value="As defined by Steve Judkins" /> </concept> <concept> - <code value="application/vnd.oai.workflows"/> - <display value="vnd.oai.workflows"/> - <definition value="As defined by Frank Kilcommins"/> + <code value="application/vnd.netfpx" /> + <display value="vnd.netfpx" /> + <definition value="As defined by Andy Mutz" /> </concept> <concept> - <code value="application/vnd.oai.workflows+json"/> - <display value="vnd.oai.workflows+json"/> - <definition value="As defined by Frank Kilcommins"/> + <code value="application/vnd.neurolanguage.nlu" /> + <display value="vnd.neurolanguage.nlu" /> + <definition value="As defined by Dan DuFeu" /> </concept> <concept> - <code value="application/vnd.oai.workflows+yaml"/> - <display value="vnd.oai.workflows+yaml"/> - <definition value="As defined by Frank Kilcommins"/> + <code value="application/vnd.nimn" /> + <display value="vnd.nimn" /> + <definition value="As defined by Amit Kumar Gupta" /> </concept> <concept> - <code value="application/vnd.oasis.opendocument.base"/> - <display value="vnd.oasis.opendocument.base"/> - <definition value="As defined by OASIS TC Admin, and OASIS"/> + <code value="application/vnd.nintendo.snes.rom" /> + <display value="vnd.nintendo.snes.rom" /> + <definition value="As defined by Henrik Andersson" /> </concept> <concept> - <code value="application/vnd.oasis.opendocument.chart"/> - <display value="vnd.oasis.opendocument.chart"/> - <definition value="As defined by OASIS TC Admin, and OASIS"/> + <code value="application/vnd.nintendo.nitro.rom" /> + <display value="vnd.nintendo.nitro.rom" /> + <definition value="As defined by Henrik Andersson" /> </concept> <concept> - <code value="application/vnd.oasis.opendocument.chart-template"/> - <display value="vnd.oasis.opendocument.chart-template"/> - <definition value="As defined by OASIS TC Admin, and OASIS"/> + <code value="application/vnd.nitf" /> + <display value="vnd.nitf" /> + <definition value="As defined by Steve Rogan" /> </concept> <concept> - <code value="application/vnd.oasis.opendocument.formula"/> - <display value="vnd.oasis.opendocument.formula"/> - <definition value="As defined by OASIS TC Admin, and OASIS"/> + <code value="application/vnd.noblenet-directory" /> + <display value="vnd.noblenet-directory" /> + <definition value="As defined by Monty Solomon" /> </concept> <concept> - <code value="application/vnd.oasis.opendocument.formula-template"/> - <display value="vnd.oasis.opendocument.formula-template"/> - <definition value="As defined by OASIS TC Admin, and OASIS"/> + <code value="application/vnd.noblenet-sealer" /> + <display value="vnd.noblenet-sealer" /> + <definition value="As defined by Monty Solomon" /> </concept> <concept> - <code value="application/vnd.oasis.opendocument.graphics"/> - <display value="vnd.oasis.opendocument.graphics"/> - <definition value="As defined by OASIS TC Admin, and OASIS"/> + <code value="application/vnd.noblenet-web" /> + <display value="vnd.noblenet-web" /> + <definition value="As defined by Monty Solomon" /> </concept> <concept> - <code value="application/vnd.oasis.opendocument.graphics-template"/> - <display value="vnd.oasis.opendocument.graphics-template"/> - <definition value="As defined by OASIS TC Admin, and OASIS"/> + <code value="application/vnd.nokia.catalogs" /> + <display value="vnd.nokia.catalogs" /> + <definition value="As defined by Nokia" /> </concept> <concept> - <code value="application/vnd.oasis.opendocument.image"/> - <display value="vnd.oasis.opendocument.image"/> - <definition value="As defined by OASIS TC Admin, and OASIS"/> + <code value="application/vnd.nokia.conml+wbxml" /> + <display value="vnd.nokia.conml+wbxml" /> + <definition value="As defined by Nokia" /> </concept> <concept> - <code value="application/vnd.oasis.opendocument.image-template"/> - <display value="vnd.oasis.opendocument.image-template"/> - <definition value="As defined by OASIS TC Admin, and OASIS"/> + <code value="application/vnd.nokia.conml+xml" /> + <display value="vnd.nokia.conml+xml" /> + <definition value="As defined by Nokia" /> </concept> <concept> - <code value="application/vnd.oasis.opendocument.presentation"/> - <display value="vnd.oasis.opendocument.presentation"/> - <definition value="As defined by OASIS TC Admin, and OASIS"/> + <code value="application/vnd.nokia.iptv.config+xml" /> + <display value="vnd.nokia.iptv.config+xml" /> + <definition value="As defined by Nokia" /> </concept> <concept> - <code value="application/vnd.oasis.opendocument.presentation-template"/> - <display value="vnd.oasis.opendocument.presentation-template"/> - <definition value="As defined by OASIS TC Admin, and OASIS"/> + <code value="application/vnd.nokia.iSDS-radio-presets" /> + <display value="vnd.nokia.iSDS-radio-presets" /> + <definition value="As defined by Nokia" /> </concept> <concept> - <code value="application/vnd.oasis.opendocument.spreadsheet"/> - <display value="vnd.oasis.opendocument.spreadsheet"/> - <definition value="As defined by OASIS TC Admin, and OASIS"/> + <code value="application/vnd.nokia.landmark+wbxml" /> + <display value="vnd.nokia.landmark+wbxml" /> + <definition value="As defined by Nokia" /> </concept> <concept> - <code value="application/vnd.oasis.opendocument.spreadsheet-template"/> - <display value="vnd.oasis.opendocument.spreadsheet-template"/> - <definition value="As defined by OASIS TC Admin, and OASIS"/> + <code value="application/vnd.nokia.landmark+xml" /> + <display value="vnd.nokia.landmark+xml" /> + <definition value="As defined by Nokia" /> </concept> <concept> - <code value="application/vnd.oasis.opendocument.text"/> - <display value="vnd.oasis.opendocument.text"/> - <definition value="As defined by OASIS TC Admin, and OASIS"/> + <code value="application/vnd.nokia.landmarkcollection+xml" /> + <display value="vnd.nokia.landmarkcollection+xml" /> + <definition value="As defined by Nokia" /> </concept> <concept> - <code value="application/vnd.oasis.opendocument.text-master"/> - <display value="vnd.oasis.opendocument.text-master"/> - <definition value="As defined by OASIS TC Admin, and OASIS"/> + <code value="application/vnd.nokia.ncd" /> + <display value="vnd.nokia.ncd" /> + <definition value="As defined by Nokia" /> </concept> <concept> - <code value="application/vnd.oasis.opendocument.text-master-template"/> - <display value="vnd.oasis.opendocument.text-master-template"/> - <definition value="As defined by OASIS TC Admin, and OASIS"/> + <code value="application/vnd.nokia.n-gage.ac+xml" /> + <display value="vnd.nokia.n-gage.ac+xml" /> + <definition value="As defined by Nokia" /> </concept> <concept> - <code value="application/vnd.oasis.opendocument.text-template"/> - <display value="vnd.oasis.opendocument.text-template"/> - <definition value="As defined by OASIS TC Admin, and OASIS"/> + <code value="application/vnd.nokia.n-gage.data" /> + <display value="vnd.nokia.n-gage.data" /> + <definition value="As defined by Nokia" /> </concept> <concept> - <code value="application/vnd.oasis.opendocument.text-web"/> - <display value="vnd.oasis.opendocument.text-web"/> - <definition value="As defined by OASIS TC Admin, and OASIS"/> + <code value="application/vnd.nokia.pcd+wbxml" /> + <display value="vnd.nokia.pcd+wbxml" /> + <definition value="As defined by Nokia" /> </concept> <concept> - <code value="application/vnd.obn"/> - <display value="vnd.obn"/> - <definition value="As defined by Matthias Hessling"/> + <code value="application/vnd.nokia.pcd+xml" /> + <display value="vnd.nokia.pcd+xml" /> + <definition value="As defined by Nokia" /> </concept> <concept> - <code value="application/vnd.ocf+cbor"/> - <display value="vnd.ocf+cbor"/> - <definition value="As defined by Michael Koster"/> + <code value="application/vnd.nokia.radio-preset" /> + <display value="vnd.nokia.radio-preset" /> + <definition value="As defined by Nokia" /> </concept> <concept> - <code value="application/vnd.oci.image.manifest.v1+json"/> - <display value="vnd.oci.image.manifest.v1+json"/> - <definition value="As defined by Steven Lasker"/> + <code value="application/vnd.nokia.radio-presets" /> + <display value="vnd.nokia.radio-presets" /> + <definition value="As defined by Nokia" /> </concept> <concept> - <code value="application/vnd.oftn.l10n+json"/> - <display value="vnd.oftn.l10n+json"/> - <definition value="As defined by Eli Grey"/> + <code value="application/vnd.novadigm.EDM" /> + <display value="vnd.novadigm.EDM" /> + <definition value="As defined by Janine Swenson" /> </concept> <concept> - <code value="application/vnd.oipf.contentaccessdownload+xml"/> - <display value="vnd.oipf.contentaccessdownload+xml"/> - <definition value="As defined by Claire DEsclercs"/> + <code value="application/vnd.novadigm.EDX" /> + <display value="vnd.novadigm.EDX" /> + <definition value="As defined by Janine Swenson" /> </concept> <concept> - <code value="application/vnd.oipf.contentaccessstreaming+xml"/> - <display value="vnd.oipf.contentaccessstreaming+xml"/> - <definition value="As defined by Claire DEsclercs"/> + <code value="application/vnd.novadigm.EXT" /> + <display value="vnd.novadigm.EXT" /> + <definition value="As defined by Janine Swenson" /> </concept> <concept> - <code value="application/vnd.oipf.cspg-hexbinary"/> - <display value="vnd.oipf.cspg-hexbinary"/> - <definition value="As defined by Claire DEsclercs"/> + <code value="application/vnd.ntt-local.content-share" /> + <display value="vnd.ntt-local.content-share" /> + <definition value="As defined by Akinori Taya" /> </concept> <concept> - <code value="application/vnd.oipf.dae.svg+xml"/> - <display value="vnd.oipf.dae.svg+xml"/> - <definition value="As defined by Claire DEsclercs"/> + <code value="application/vnd.ntt-local.file-transfer" /> + <display value="vnd.ntt-local.file-transfer" /> + <definition value="As defined by NTT-local" /> </concept> <concept> - <code value="application/vnd.oipf.dae.xhtml+xml"/> - <display value="vnd.oipf.dae.xhtml+xml"/> - <definition value="As defined by Claire DEsclercs"/> + <code value="application/vnd.ntt-local.ogw_remote-access" /> + <display value="vnd.ntt-local.ogw_remote-access" /> + <definition value="As defined by NTT-local" /> </concept> <concept> - <code value="application/vnd.oipf.mippvcontrolmessage+xml"/> - <display value="vnd.oipf.mippvcontrolmessage+xml"/> - <definition value="As defined by Claire DEsclercs"/> + <code value="application/vnd.ntt-local.sip-ta_remote" /> + <display value="vnd.ntt-local.sip-ta_remote" /> + <definition value="As defined by NTT-local" /> </concept> <concept> - <code value="application/vnd.oipf.pae.gem"/> - <display value="vnd.oipf.pae.gem"/> - <definition value="As defined by Claire DEsclercs"/> + <code value="application/vnd.ntt-local.sip-ta_tcp_stream" /> + <display value="vnd.ntt-local.sip-ta_tcp_stream" /> + <definition value="As defined by NTT-local" /> </concept> <concept> - <code value="application/vnd.oipf.spdiscovery+xml"/> - <display value="vnd.oipf.spdiscovery+xml"/> - <definition value="As defined by Claire DEsclercs"/> + <code value="application/vnd.nubaltec.nudoku-game" /> + <display value="vnd.nubaltec.nudoku-game" /> + <definition value="As defined by Peter Koellner" /> </concept> <concept> - <code value="application/vnd.oipf.spdlist+xml"/> - <display value="vnd.oipf.spdlist+xml"/> - <definition value="As defined by Claire DEsclercs"/> + <code value="application/vnd.oai.workflows" /> + <display value="vnd.oai.workflows" /> + <definition value="As defined by Frank Kilcommins" /> </concept> <concept> - <code value="application/vnd.oipf.ueprofile+xml"/> - <display value="vnd.oipf.ueprofile+xml"/> - <definition value="As defined by Claire DEsclercs"/> + <code value="application/vnd.oai.workflows+json" /> + <display value="vnd.oai.workflows+json" /> + <definition value="As defined by Frank Kilcommins" /> </concept> <concept> - <code value="application/vnd.oipf.userprofile+xml"/> - <display value="vnd.oipf.userprofile+xml"/> - <definition value="As defined by Claire DEsclercs"/> + <code value="application/vnd.oai.workflows+yaml" /> + <display value="vnd.oai.workflows+yaml" /> + <definition value="As defined by Frank Kilcommins" /> </concept> <concept> - <code value="application/vnd.olpc-sugar"/> - <display value="vnd.olpc-sugar"/> - <definition value="As defined by John Palmieri"/> + <code value="application/vnd.oasis.opendocument.base" /> + <display value="vnd.oasis.opendocument.base" /> + <definition value="As defined by OASIS TC Admin, and OASIS" /> </concept> <concept> - <code value="application/vnd.oma.bcast.associated-procedure-parameter+xml"/> - <display value="vnd.oma.bcast.associated-procedure-parameter+xml"/> - <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority"/> + <code value="application/vnd.oasis.opendocument.chart" /> + <display value="vnd.oasis.opendocument.chart" /> + <definition value="As defined by OASIS TC Admin, and OASIS" /> </concept> <concept> - <code value="application/vnd.oma.bcast.drm-trigger+xml"/> - <display value="vnd.oma.bcast.drm-trigger+xml"/> - <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority"/> + <code value="application/vnd.oasis.opendocument.chart-template" /> + <display value="vnd.oasis.opendocument.chart-template" /> + <definition value="As defined by OASIS TC Admin, and OASIS" /> </concept> <concept> - <code value="application/vnd.oma.bcast.imd+xml"/> - <display value="vnd.oma.bcast.imd+xml"/> - <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority"/> + <code value="application/vnd.oasis.opendocument.formula" /> + <display value="vnd.oasis.opendocument.formula" /> + <definition value="As defined by OASIS TC Admin, and OASIS" /> </concept> <concept> - <code value="application/vnd.oma.bcast.ltkm"/> - <display value="vnd.oma.bcast.ltkm"/> - <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority"/> + <code value="application/vnd.oasis.opendocument.formula-template" /> + <display value="vnd.oasis.opendocument.formula-template" /> + <definition value="As defined by OASIS TC Admin, and OASIS" /> </concept> <concept> - <code value="application/vnd.oma.bcast.notification+xml"/> - <display value="vnd.oma.bcast.notification+xml"/> - <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority"/> + <code value="application/vnd.oasis.opendocument.graphics" /> + <display value="vnd.oasis.opendocument.graphics" /> + <definition value="As defined by OASIS TC Admin, and OASIS" /> </concept> <concept> - <code value="application/vnd.oma.bcast.provisioningtrigger"/> - <display value="vnd.oma.bcast.provisioningtrigger"/> - <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority"/> + <code value="application/vnd.oasis.opendocument.graphics-template" /> + <display value="vnd.oasis.opendocument.graphics-template" /> + <definition value="As defined by OASIS TC Admin, and OASIS" /> </concept> <concept> - <code value="application/vnd.oma.bcast.sgboot"/> - <display value="vnd.oma.bcast.sgboot"/> - <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority"/> + <code value="application/vnd.oasis.opendocument.image" /> + <display value="vnd.oasis.opendocument.image" /> + <definition value="As defined by OASIS TC Admin, and OASIS" /> </concept> <concept> - <code value="application/vnd.oma.bcast.sgdd+xml"/> - <display value="vnd.oma.bcast.sgdd+xml"/> - <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority"/> + <code value="application/vnd.oasis.opendocument.image-template" /> + <display value="vnd.oasis.opendocument.image-template" /> + <definition value="As defined by OASIS TC Admin, and OASIS" /> </concept> <concept> - <code value="application/vnd.oma.bcast.sgdu"/> - <display value="vnd.oma.bcast.sgdu"/> - <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority"/> + <code value="application/vnd.oasis.opendocument.presentation" /> + <display value="vnd.oasis.opendocument.presentation" /> + <definition value="As defined by OASIS TC Admin, and OASIS" /> </concept> <concept> - <code value="application/vnd.oma.bcast.simple-symbol-container"/> - <display value="vnd.oma.bcast.simple-symbol-container"/> - <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority"/> + <code value="application/vnd.oasis.opendocument.presentation-template" /> + <display value="vnd.oasis.opendocument.presentation-template" /> + <definition value="As defined by OASIS TC Admin, and OASIS" /> </concept> <concept> - <code value="application/vnd.oma.bcast.smartcard-trigger+xml"/> - <display value="vnd.oma.bcast.smartcard-trigger+xml"/> - <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority"/> + <code value="application/vnd.oasis.opendocument.spreadsheet" /> + <display value="vnd.oasis.opendocument.spreadsheet" /> + <definition value="As defined by OASIS TC Admin, and OASIS" /> </concept> <concept> - <code value="application/vnd.oma.bcast.sprov+xml"/> - <display value="vnd.oma.bcast.sprov+xml"/> - <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority"/> + <code value="application/vnd.oasis.opendocument.spreadsheet-template" /> + <display value="vnd.oasis.opendocument.spreadsheet-template" /> + <definition value="As defined by OASIS TC Admin, and OASIS" /> </concept> <concept> - <code value="application/vnd.oma.bcast.stkm"/> - <display value="vnd.oma.bcast.stkm"/> - <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority"/> + <code value="application/vnd.oasis.opendocument.text" /> + <display value="vnd.oasis.opendocument.text" /> + <definition value="As defined by OASIS TC Admin, and OASIS" /> </concept> <concept> - <code value="application/vnd.oma.cab-address-book+xml"/> - <display value="vnd.oma.cab-address-book+xml"/> - <definition value="As defined by Hao Wang, and OMA"/> + <code value="application/vnd.oasis.opendocument.text-master" /> + <display value="vnd.oasis.opendocument.text-master" /> + <definition value="As defined by OASIS TC Admin, and OASIS" /> </concept> <concept> - <code value="application/vnd.oma.cab-feature-handler+xml"/> - <display value="vnd.oma.cab-feature-handler+xml"/> - <definition value="As defined by Hao Wang, and OMA"/> + <code value="application/vnd.oasis.opendocument.text-master-template" /> + <display value="vnd.oasis.opendocument.text-master-template" /> + <definition value="As defined by OASIS TC Admin, and OASIS" /> </concept> <concept> - <code value="application/vnd.oma.cab-pcc+xml"/> - <display value="vnd.oma.cab-pcc+xml"/> - <definition value="As defined by Hao Wang, and OMA"/> + <code value="application/vnd.oasis.opendocument.text-template" /> + <display value="vnd.oasis.opendocument.text-template" /> + <definition value="As defined by OASIS TC Admin, and OASIS" /> </concept> <concept> - <code value="application/vnd.oma.cab-subs-invite+xml"/> - <display value="vnd.oma.cab-subs-invite+xml"/> - <definition value="As defined by Hao Wang, and OMA"/> + <code value="application/vnd.oasis.opendocument.text-web" /> + <display value="vnd.oasis.opendocument.text-web" /> + <definition value="As defined by OASIS TC Admin, and OASIS" /> </concept> <concept> - <code value="application/vnd.oma.cab-user-prefs+xml"/> - <display value="vnd.oma.cab-user-prefs+xml"/> - <definition value="As defined by Hao Wang, and OMA"/> + <code value="application/vnd.obn" /> + <display value="vnd.obn" /> + <definition value="As defined by Matthias Hessling" /> </concept> <concept> - <code value="application/vnd.oma.dcd"/> - <display value="vnd.oma.dcd"/> - <definition value="As defined by Avi Primo, and Open Mobile Naming Authority"/> + <code value="application/vnd.ocf+cbor" /> + <display value="vnd.ocf+cbor" /> + <definition value="As defined by Michael Koster" /> </concept> <concept> - <code value="application/vnd.oma.dcdc"/> - <display value="vnd.oma.dcdc"/> - <definition value="As defined by Avi Primo, and Open Mobile Naming Authority"/> + <code value="application/vnd.oci.image.manifest.v1+json" /> + <display value="vnd.oci.image.manifest.v1+json" /> + <definition value="As defined by Steven Lasker" /> </concept> <concept> - <code value="application/vnd.oma.dd2+xml"/> - <display value="vnd.oma.dd2+xml"/> - <definition value="As defined by Jun Sato, and Open Mobile Alliance BAC DLDRM WG"/> + <code value="application/vnd.oftn.l10n+json" /> + <display value="vnd.oftn.l10n+json" /> + <definition value="As defined by Eli Grey" /> </concept> <concept> - <code value="application/vnd.oma.drm.risd+xml"/> - <display value="vnd.oma.drm.risd+xml"/> - <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority"/> + <code value="application/vnd.oipf.contentaccessdownload+xml" /> + <display value="vnd.oipf.contentaccessdownload+xml" /> + <definition value="As defined by Claire DEsclercs" /> </concept> <concept> - <code value="application/vnd.oma.group-usage-list+xml"/> - <display value="vnd.oma.group-usage-list+xml"/> - <definition value="As defined by Sean Kelley, and OMA Presence and Availability PAG WG"/> + <code value="application/vnd.oipf.contentaccessstreaming+xml" /> + <display value="vnd.oipf.contentaccessstreaming+xml" /> + <definition value="As defined by Claire DEsclercs" /> </concept> <concept> - <code value="application/vnd.oma.lwm2m+cbor"/> - <display value="vnd.oma.lwm2m+cbor"/> - <definition value="As defined by Open Mobile Naming Authority, and John Mudge"/> + <code value="application/vnd.oipf.cspg-hexbinary" /> + <display value="vnd.oipf.cspg-hexbinary" /> + <definition value="As defined by Claire DEsclercs" /> </concept> <concept> - <code value="application/vnd.oma.lwm2m+json"/> - <display value="vnd.oma.lwm2m+json"/> - <definition value="As defined by Open Mobile Naming Authority, and John Mudge"/> + <code value="application/vnd.oipf.dae.svg+xml" /> + <display value="vnd.oipf.dae.svg+xml" /> + <definition value="As defined by Claire DEsclercs" /> </concept> <concept> - <code value="application/vnd.oma.lwm2m+tlv"/> - <display value="vnd.oma.lwm2m+tlv"/> - <definition value="As defined by Open Mobile Naming Authority, and John Mudge"/> + <code value="application/vnd.oipf.dae.xhtml+xml" /> + <display value="vnd.oipf.dae.xhtml+xml" /> + <definition value="As defined by Claire DEsclercs" /> </concept> <concept> - <code value="application/vnd.oma.pal+xml"/> - <display value="vnd.oma.pal+xml"/> - <definition value="As defined by Brian McColgan, and Open Mobile Naming Authority"/> + <code value="application/vnd.oipf.mippvcontrolmessage+xml" /> + <display value="vnd.oipf.mippvcontrolmessage+xml" /> + <definition value="As defined by Claire DEsclercs" /> </concept> <concept> - <code value="application/vnd.oma.poc.detailed-progress-report+xml"/> - <display value="vnd.oma.poc.detailed-progress-report+xml"/> - <definition value="As defined by OMA Push to Talk over Cellular POC WG"/> + <code value="application/vnd.oipf.pae.gem" /> + <display value="vnd.oipf.pae.gem" /> + <definition value="As defined by Claire DEsclercs" /> </concept> <concept> - <code value="application/vnd.oma.poc.final-report+xml"/> - <display value="vnd.oma.poc.final-report+xml"/> - <definition value="As defined by OMA Push to Talk over Cellular POC WG"/> + <code value="application/vnd.oipf.spdiscovery+xml" /> + <display value="vnd.oipf.spdiscovery+xml" /> + <definition value="As defined by Claire DEsclercs" /> </concept> <concept> - <code value="application/vnd.oma.poc.groups+xml"/> - <display value="vnd.oma.poc.groups+xml"/> - <definition value="As defined by Sean Kelley, and OMA Push to Talk over Cellular POC WG"/> + <code value="application/vnd.oipf.spdlist+xml" /> + <display value="vnd.oipf.spdlist+xml" /> + <definition value="As defined by Claire DEsclercs" /> </concept> <concept> - <code value="application/vnd.oma.poc.invocation-descriptor+xml"/> - <display value="vnd.oma.poc.invocation-descriptor+xml"/> - <definition value="As defined by OMA Push to Talk over Cellular POC WG"/> + <code value="application/vnd.oipf.ueprofile+xml" /> + <display value="vnd.oipf.ueprofile+xml" /> + <definition value="As defined by Claire DEsclercs" /> </concept> <concept> - <code value="application/vnd.oma.poc.optimized-progress-report+xml"/> - <display value="vnd.oma.poc.optimized-progress-report+xml"/> - <definition value="As defined by OMA Push to Talk over Cellular POC WG"/> + <code value="application/vnd.oipf.userprofile+xml" /> + <display value="vnd.oipf.userprofile+xml" /> + <definition value="As defined by Claire DEsclercs" /> </concept> <concept> - <code value="application/vnd.oma.push"/> - <display value="vnd.oma.push"/> - <definition value="As defined by Bryan Sullivan, and OMA"/> + <code value="application/vnd.olpc-sugar" /> + <display value="vnd.olpc-sugar" /> + <definition value="As defined by John Palmieri" /> </concept> <concept> - <code value="application/vnd.oma.scidm.messages+xml"/> - <display value="vnd.oma.scidm.messages+xml"/> - <definition value="As defined by Wenjun Zeng, and Open Mobile Naming Authority"/> + <code value="application/vnd.oma.bcast.associated-procedure-parameter+xml" /> + <display value="vnd.oma.bcast.associated-procedure-parameter+xml" /> + <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority" /> </concept> <concept> - <code value="application/vnd.oma.xcap-directory+xml"/> - <display value="vnd.oma.xcap-directory+xml"/> - <definition value="As defined by Sean Kelley, and OMA Presence and Availability PAG WG"/> + <code value="application/vnd.oma.bcast.drm-trigger+xml" /> + <display value="vnd.oma.bcast.drm-trigger+xml" /> + <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority" /> </concept> <concept> - <code value="application/vnd.omads-email+xml"/> - <display value="vnd.omads-email+xml"/> - <definition value="As defined by OMA Data Synchronization WG"/> + <code value="application/vnd.oma.bcast.imd+xml" /> + <display value="vnd.oma.bcast.imd+xml" /> + <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority" /> </concept> <concept> - <code value="application/vnd.omads-file+xml"/> - <display value="vnd.omads-file+xml"/> - <definition value="As defined by OMA Data Synchronization WG"/> + <code value="application/vnd.oma.bcast.ltkm" /> + <display value="vnd.oma.bcast.ltkm" /> + <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority" /> </concept> <concept> - <code value="application/vnd.omads-folder+xml"/> - <display value="vnd.omads-folder+xml"/> - <definition value="As defined by OMA Data Synchronization WG"/> + <code value="application/vnd.oma.bcast.notification+xml" /> + <display value="vnd.oma.bcast.notification+xml" /> + <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority" /> </concept> <concept> - <code value="application/vnd.omaloc-supl-init"/> - <display value="vnd.omaloc-supl-init"/> - <definition value="As defined by Julien Grange"/> + <code value="application/vnd.oma.bcast.provisioningtrigger" /> + <display value="vnd.oma.bcast.provisioningtrigger" /> + <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority" /> </concept> <concept> - <code value="application/vnd.oma-scws-config"/> - <display value="vnd.oma-scws-config"/> - <definition value="As defined by Ilan Mahalal"/> + <code value="application/vnd.oma.bcast.sgboot" /> + <display value="vnd.oma.bcast.sgboot" /> + <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority" /> </concept> <concept> - <code value="application/vnd.oma-scws-http-request"/> - <display value="vnd.oma-scws-http-request"/> - <definition value="As defined by Ilan Mahalal"/> + <code value="application/vnd.oma.bcast.sgdd+xml" /> + <display value="vnd.oma.bcast.sgdd+xml" /> + <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority" /> </concept> <concept> - <code value="application/vnd.oma-scws-http-response"/> - <display value="vnd.oma-scws-http-response"/> - <definition value="As defined by Ilan Mahalal"/> + <code value="application/vnd.oma.bcast.sgdu" /> + <display value="vnd.oma.bcast.sgdu" /> + <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority" /> </concept> <concept> - <code value="application/vnd.onepager"/> - <display value="vnd.onepager"/> - <definition value="As defined by Nathan Black"/> + <code value="application/vnd.oma.bcast.simple-symbol-container" /> + <display value="vnd.oma.bcast.simple-symbol-container" /> + <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority" /> </concept> <concept> - <code value="application/vnd.onepagertamp"/> - <display value="vnd.onepagertamp"/> - <definition value="As defined by Nathan Black"/> + <code value="application/vnd.oma.bcast.smartcard-trigger+xml" /> + <display value="vnd.oma.bcast.smartcard-trigger+xml" /> + <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority" /> </concept> <concept> - <code value="application/vnd.onepagertamx"/> - <display value="vnd.onepagertamx"/> - <definition value="As defined by Nathan Black"/> + <code value="application/vnd.oma.bcast.sprov+xml" /> + <display value="vnd.oma.bcast.sprov+xml" /> + <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority" /> </concept> <concept> - <code value="application/vnd.onepagertat"/> - <display value="vnd.onepagertat"/> - <definition value="As defined by Nathan Black"/> + <code value="application/vnd.oma.bcast.stkm" /> + <display value="vnd.oma.bcast.stkm" /> + <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority" /> </concept> <concept> - <code value="application/vnd.onepagertatp"/> - <display value="vnd.onepagertatp"/> - <definition value="As defined by Nathan Black"/> + <code value="application/vnd.oma.cab-address-book+xml" /> + <display value="vnd.oma.cab-address-book+xml" /> + <definition value="As defined by Hao Wang, and OMA" /> </concept> <concept> - <code value="application/vnd.onepagertatx"/> - <display value="vnd.onepagertatx"/> - <definition value="As defined by Nathan Black"/> + <code value="application/vnd.oma.cab-feature-handler+xml" /> + <display value="vnd.oma.cab-feature-handler+xml" /> + <definition value="As defined by Hao Wang, and OMA" /> </concept> <concept> - <code value="application/vnd.onvif.metadata"/> - <display value="vnd.onvif.metadata"/> - <definition value="As defined by Hans Busch"/> + <code value="application/vnd.oma.cab-pcc+xml" /> + <display value="vnd.oma.cab-pcc+xml" /> + <definition value="As defined by Hao Wang, and OMA" /> </concept> <concept> - <code value="application/vnd.openblox.game-binary"/> - <display value="vnd.openblox.game-binary"/> - <definition value="As defined by Mark Otaris"/> + <code value="application/vnd.oma.cab-subs-invite+xml" /> + <display value="vnd.oma.cab-subs-invite+xml" /> + <definition value="As defined by Hao Wang, and OMA" /> </concept> <concept> - <code value="application/vnd.openblox.game+xml"/> - <display value="vnd.openblox.game+xml"/> - <definition value="As defined by Mark Otaris"/> + <code value="application/vnd.oma.cab-user-prefs+xml" /> + <display value="vnd.oma.cab-user-prefs+xml" /> + <definition value="As defined by Hao Wang, and OMA" /> </concept> <concept> - <code value="application/vnd.openeye.oeb"/> - <display value="vnd.openeye.oeb"/> - <definition value="As defined by Craig Bruce"/> + <code value="application/vnd.oma.dcd" /> + <display value="vnd.oma.dcd" /> + <definition value="As defined by Avi Primo, and Open Mobile Naming Authority" /> </concept> <concept> - <code value="application/vnd.openstreetmap.data+xml"/> - <display value="vnd.openstreetmap.data+xml"/> - <definition value="As defined by Paul Norman"/> + <code value="application/vnd.oma.dcdc" /> + <display value="vnd.oma.dcdc" /> + <definition value="As defined by Avi Primo, and Open Mobile Naming Authority" /> </concept> <concept> - <code value="application/vnd.opentimestamps.ots"/> - <display value="vnd.opentimestamps.ots"/> - <definition value="As defined by Peter Todd"/> + <code value="application/vnd.oma.dd2+xml" /> + <display value="vnd.oma.dd2+xml" /> + <definition value="As defined by Jun Sato, and Open Mobile Alliance BAC DLDRM WG" /> </concept> <concept> - <code value="application/vnd.openvpi.dspx+json"/> - <display value="vnd.openvpi.dspx+json"/> - <definition value="As defined by Crindzebra Sjimo"/> + <code value="application/vnd.oma.drm.risd+xml" /> + <display value="vnd.oma.drm.risd+xml" /> + <definition value="As defined by Uwe Rauschenbach, and Open Mobile Naming Authority" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.custom-properties+xml"/> - <display value="vnd.openxmlformats-officedocument.custom-properties+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.oma.group-usage-list+xml" /> + <display value="vnd.oma.group-usage-list+xml" /> + <definition value="As defined by Sean Kelley, and OMA Presence and Availability PAG WG" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.customXmlProperties+xml"/> - <display value="vnd.openxmlformats-officedocument.customXmlProperties+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.oma.lwm2m+cbor" /> + <display value="vnd.oma.lwm2m+cbor" /> + <definition value="As defined by Open Mobile Naming Authority, and John Mudge" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.drawing+xml"/> - <display value="vnd.openxmlformats-officedocument.drawing+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.oma.lwm2m+json" /> + <display value="vnd.oma.lwm2m+json" /> + <definition value="As defined by Open Mobile Naming Authority, and John Mudge" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.drawingml.chart+xml"/> - <display value="vnd.openxmlformats-officedocument.drawingml.chart+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.oma.lwm2m+tlv" /> + <display value="vnd.oma.lwm2m+tlv" /> + <definition value="As defined by Open Mobile Naming Authority, and John Mudge" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml"/> - <display value="vnd.openxmlformats-officedocument.drawingml.chartshapes+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.oma.pal+xml" /> + <display value="vnd.oma.pal+xml" /> + <definition value="As defined by Brian McColgan, and Open Mobile Naming Authority" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml"/> - <display value="vnd.openxmlformats-officedocument.drawingml.diagramColors+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.oma.poc.detailed-progress-report+xml" /> + <display value="vnd.oma.poc.detailed-progress-report+xml" /> + <definition value="As defined by OMA Push to Talk over Cellular POC WG" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml"/> - <display value="vnd.openxmlformats-officedocument.drawingml.diagramData+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.oma.poc.final-report+xml" /> + <display value="vnd.oma.poc.final-report+xml" /> + <definition value="As defined by OMA Push to Talk over Cellular POC WG" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml"/> - <display value="vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.oma.poc.groups+xml" /> + <display value="vnd.oma.poc.groups+xml" /> + <definition value="As defined by Sean Kelley, and OMA Push to Talk over Cellular POC WG" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml"/> - <display value="vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.oma.poc.invocation-descriptor+xml" /> + <display value="vnd.oma.poc.invocation-descriptor+xml" /> + <definition value="As defined by OMA Push to Talk over Cellular POC WG" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.extended-properties+xml"/> - <display value="vnd.openxmlformats-officedocument.extended-properties+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.oma.poc.optimized-progress-report+xml" /> + <display value="vnd.oma.poc.optimized-progress-report+xml" /> + <definition value="As defined by OMA Push to Talk over Cellular POC WG" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml"/> - <display value="vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.oma.push" /> + <display value="vnd.oma.push" /> + <definition value="As defined by Bryan Sullivan, and OMA" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.comments+xml"/> - <display value="vnd.openxmlformats-officedocument.presentationml.comments+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.oma.scidm.messages+xml" /> + <display value="vnd.oma.scidm.messages+xml" /> + <definition value="As defined by Wenjun Zeng, and Open Mobile Naming Authority" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml"/> - <display value="vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.oma.xcap-directory+xml" /> + <display value="vnd.oma.xcap-directory+xml" /> + <definition value="As defined by Sean Kelley, and OMA Presence and Availability PAG WG" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml"/> - <display value="vnd.openxmlformats-officedocument.presentationml.notesMaster+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.omads-email+xml" /> + <display value="vnd.omads-email+xml" /> + <definition value="As defined by OMA Data Synchronization WG" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml"/> - <display value="vnd.openxmlformats-officedocument.presentationml.notesSlide+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.omads-file+xml" /> + <display value="vnd.omads-file+xml" /> + <definition value="As defined by OMA Data Synchronization WG" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.presentation"/> - <display value="vnd.openxmlformats-officedocument.presentationml.presentation"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.omads-folder+xml" /> + <display value="vnd.omads-folder+xml" /> + <definition value="As defined by OMA Data Synchronization WG" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml"/> - <display value="vnd.openxmlformats-officedocument.presentationml.presentation.main+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.omaloc-supl-init" /> + <display value="vnd.omaloc-supl-init" /> + <definition value="As defined by Julien Grange" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.presProps+xml"/> - <display value="vnd.openxmlformats-officedocument.presentationml.presProps+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.oma-scws-config" /> + <display value="vnd.oma-scws-config" /> + <definition value="As defined by Ilan Mahalal" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.slide"/> - <display value="vnd.openxmlformats-officedocument.presentationml.slide"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.oma-scws-http-request" /> + <display value="vnd.oma-scws-http-request" /> + <definition value="As defined by Ilan Mahalal" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.slide+xml"/> - <display value="vnd.openxmlformats-officedocument.presentationml.slide+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.oma-scws-http-response" /> + <display value="vnd.oma-scws-http-response" /> + <definition value="As defined by Ilan Mahalal" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml"/> - <display value="vnd.openxmlformats-officedocument.presentationml.slideLayout+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.oms.cellular-cose-content+cbor" /> + <display value="vnd.oms.cellular-cose-content+cbor" /> + <definition value="As defined by Torben Markussen, and OMS-Group e. V." /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml"/> - <display value="vnd.openxmlformats-officedocument.presentationml.slideMaster+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.onepager" /> + <display value="vnd.onepager" /> + <definition value="As defined by Nathan Black" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.slideshow"/> - <display value="vnd.openxmlformats-officedocument.presentationml.slideshow"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.onepagertamp" /> + <display value="vnd.onepagertamp" /> + <definition value="As defined by Nathan Black" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml"/> - <display value="vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.onepagertamx" /> + <display value="vnd.onepagertamx" /> + <definition value="As defined by Nathan Black" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml"/> - <display value="vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.onepagertat" /> + <display value="vnd.onepagertat" /> + <definition value="As defined by Nathan Black" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml"/> - <display value="vnd.openxmlformats-officedocument.presentationml.tableStyles+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.onepagertatp" /> + <display value="vnd.onepagertatp" /> + <definition value="As defined by Nathan Black" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.tags+xml"/> - <display value="vnd.openxmlformats-officedocument.presentationml.tags+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.onepagertatx" /> + <display value="vnd.onepagertatx" /> + <definition value="As defined by Nathan Black" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.template"/> - <display value="vnd.openxmlformats-officedocument.presentationml.template"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.onvif.metadata" /> + <display value="vnd.onvif.metadata" /> + <definition value="As defined by Hans Busch" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.template.main+xml"/> - <display value="vnd.openxmlformats-officedocument.presentationml.template.main+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openblox.game-binary" /> + <display value="vnd.openblox.game-binary" /> + <definition value="As defined by Mark Otaris" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml"/> - <display value="vnd.openxmlformats-officedocument.presentationml.viewProps+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openblox.game+xml" /> + <display value="vnd.openblox.game+xml" /> + <definition value="As defined by Mark Otaris" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openeye.oeb" /> + <display value="vnd.openeye.oeb" /> + <definition value="As defined by Craig Bruce" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openstreetmap.data+xml" /> + <display value="vnd.openstreetmap.data+xml" /> + <definition value="As defined by Paul Norman" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.comments+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.opentimestamps.ots" /> + <display value="vnd.opentimestamps.ots" /> + <definition value="As defined by Peter Todd" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.connections+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openvpi.dspx+json" /> + <display value="vnd.openvpi.dspx+json" /> + <definition value="As defined by Crindzebra Sjimo" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.custom-properties+xml" /> + <display value="vnd.openxmlformats-officedocument.custom-properties+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.customXmlProperties+xml" /> + <display value="vnd.openxmlformats-officedocument.customXmlProperties+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.drawing+xml" /> + <display value="vnd.openxmlformats-officedocument.drawing+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.drawingml.chart+xml" /> + <display value="vnd.openxmlformats-officedocument.drawingml.chart+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml" /> + <display value="vnd.openxmlformats-officedocument.drawingml.chartshapes+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml" /> + <display value="vnd.openxmlformats-officedocument.drawingml.diagramColors+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml" /> + <display value="vnd.openxmlformats-officedocument.drawingml.diagramData+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml" /> + <display value="vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml" /> + <display value="vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.sheet"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.extended-properties+xml" /> + <display value="vnd.openxmlformats-officedocument.extended-properties+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml" /> + <display value="vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.comments+xml" /> + <display value="vnd.openxmlformats-officedocument.presentationml.comments+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml" /> + <display value="vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.table+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml" /> + <display value="vnd.openxmlformats-officedocument.presentationml.notesMaster+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml" /> + <display value="vnd.openxmlformats-officedocument.presentationml.notesSlide+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.template"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.template"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.presentation" /> + <display value="vnd.openxmlformats-officedocument.presentationml.presentation" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml" /> + <display value="vnd.openxmlformats-officedocument.presentationml.presentation.main+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.presProps+xml" /> + <display value="vnd.openxmlformats-officedocument.presentationml.presProps+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.slide" /> + <display value="vnd.openxmlformats-officedocument.presentationml.slide" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/> - <display value="vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.slide+xml" /> + <display value="vnd.openxmlformats-officedocument.presentationml.slide+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.theme+xml"/> - <display value="vnd.openxmlformats-officedocument.theme+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml" /> + <display value="vnd.openxmlformats-officedocument.presentationml.slideLayout+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.themeOverride+xml"/> - <display value="vnd.openxmlformats-officedocument.themeOverride+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml" /> + <display value="vnd.openxmlformats-officedocument.presentationml.slideMaster+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.vmlDrawing"/> - <display value="vnd.openxmlformats-officedocument.vmlDrawing"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.slideshow" /> + <display value="vnd.openxmlformats-officedocument.presentationml.slideshow" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml"/> - <display value="vnd.openxmlformats-officedocument.wordprocessingml.comments+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml" /> + <display value="vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.document"/> - <display value="vnd.openxmlformats-officedocument.wordprocessingml.document"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml" /> + <display value="vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"/> - <display value="vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml" /> + <display value="vnd.openxmlformats-officedocument.presentationml.tableStyles+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/> - <display value="vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.tags+xml" /> + <display value="vnd.openxmlformats-officedocument.presentationml.tags+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml"/> - <display value="vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.template" /> + <display value="vnd.openxmlformats-officedocument.presentationml.template" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml"/> - <display value="vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.template.main+xml" /> + <display value="vnd.openxmlformats-officedocument.presentationml.template.main+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml"/> - <display value="vnd.openxmlformats-officedocument.wordprocessingml.footer+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml" /> + <display value="vnd.openxmlformats-officedocument.presentationml.viewProps+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml"/> - <display value="vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml"/> - <display value="vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml"/> - <display value="vnd.openxmlformats-officedocument.wordprocessingml.settings+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.comments+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"/> - <display value="vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.connections+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.template"/> - <display value="vnd.openxmlformats-officedocument.wordprocessingml.template"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml"/> - <display value="vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml"/> - <display value="vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-package.core-properties+xml"/> - <display value="vnd.openxmlformats-package.core-properties+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml"/> - <display value="vnd.openxmlformats-package.digital-signature-xmlsignature+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.openxmlformats-package.relationships+xml"/> - <display value="vnd.openxmlformats-package.relationships+xml"/> - <definition value="As defined by Makoto Murata"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.oracle.resource+json"/> - <display value="vnd.oracle.resource+json"/> - <definition value="As defined by Ning Dong"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.orange.indata"/> - <display value="vnd.orange.indata"/> - <definition value="As defined by CHATRAS Bruno"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.osa.netdeploy"/> - <display value="vnd.osa.netdeploy"/> - <definition value="As defined by Steven Klos"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.osgeo.mapguide.package"/> - <display value="vnd.osgeo.mapguide.package"/> - <definition value="As defined by Jason Birch"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.sheet" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.osgi.bundle"/> - <display value="vnd.osgi.bundle"/> - <definition value="As defined by Peter Kriens"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.osgi.dp"/> - <display value="vnd.osgi.dp"/> - <definition value="As defined by Peter Kriens"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.osgi.subsystem"/> - <display value="vnd.osgi.subsystem"/> - <definition value="As defined by Peter Kriens"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.styles+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.otps.ct-kip+xml"/> - <display value="vnd.otps.ct-kip+xml"/> - <definition value="As defined by Magnus Nystrom"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.table+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.oxli.countgraph"/> - <display value="vnd.oxli.countgraph"/> - <definition value="As defined by C. Titus Brown"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.pagerduty+json"/> - <display value="vnd.pagerduty+json"/> - <definition value="As defined by Steve Rice"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.template" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.template" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.palm"/> - <display value="vnd.palm"/> - <definition value="As defined by Gavin Peacock"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.panoply"/> - <display value="vnd.panoply"/> - <definition value="As defined by Natarajan Balasundara"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.paos.xml"/> - <display value="vnd.paos.xml"/> - <definition value="As defined by John Kemp"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.patentdive"/> - <display value="vnd.patentdive"/> - <definition value="As defined by Christian Trosclair"/> + <code value="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml" /> + <display value="vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.patientecommsdoc"/> - <display value="vnd.patientecommsdoc"/> - <definition value="As defined by Andrew David Kendall"/> + <code value="application/vnd.openxmlformats-officedocument.theme+xml" /> + <display value="vnd.openxmlformats-officedocument.theme+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.pawaafile"/> - <display value="vnd.pawaafile"/> - <definition value="As defined by Prakash Baskaran"/> + <code value="application/vnd.openxmlformats-officedocument.themeOverride+xml" /> + <display value="vnd.openxmlformats-officedocument.themeOverride+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.pcos"/> - <display value="vnd.pcos"/> - <definition value="As defined by Slawomir Lisznianski"/> + <code value="application/vnd.openxmlformats-officedocument.vmlDrawing" /> + <display value="vnd.openxmlformats-officedocument.vmlDrawing" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.pg.format"/> - <display value="vnd.pg.format"/> - <definition value="As defined by April Gandert"/> + <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml" /> + <display value="vnd.openxmlformats-officedocument.wordprocessingml.comments+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.pg.osasli"/> - <display value="vnd.pg.osasli"/> - <definition value="As defined by April Gandert"/> + <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.document" /> + <display value="vnd.openxmlformats-officedocument.wordprocessingml.document" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.piaccess.application-licence"/> - <display value="vnd.piaccess.application-licence"/> - <definition value="As defined by Lucas Maneos"/> + <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" /> + <display value="vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.picsel"/> - <display value="vnd.picsel"/> - <definition value="As defined by Giuseppe Naccarato"/> + <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml" /> + <display value="vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.pmi.widget"/> - <display value="vnd.pmi.widget"/> - <definition value="As defined by Rhys Lewis"/> + <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml" /> + <display value="vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.poc.group-advertisement+xml"/> - <display value="vnd.poc.group-advertisement+xml"/> - <definition value="As defined by Sean Kelley, and OMA Push to Talk over Cellular POC WG"/> + <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml" /> + <display value="vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.pocketlearn"/> - <display value="vnd.pocketlearn"/> - <definition value="As defined by Jorge Pando"/> + <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml" /> + <display value="vnd.openxmlformats-officedocument.wordprocessingml.footer+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.powerbuilder6"/> - <display value="vnd.powerbuilder6"/> - <definition value="As defined by David Guy"/> + <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml" /> + <display value="vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.powerbuilder6-s"/> - <display value="vnd.powerbuilder6-s"/> - <definition value="As defined by David Guy"/> + <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml" /> + <display value="vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.powerbuilder7"/> - <display value="vnd.powerbuilder7"/> - <definition value="As defined by Reed Shilts"/> + <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml" /> + <display value="vnd.openxmlformats-officedocument.wordprocessingml.settings+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.powerbuilder75"/> - <display value="vnd.powerbuilder75"/> - <definition value="As defined by Reed Shilts"/> + <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml" /> + <display value="vnd.openxmlformats-officedocument.wordprocessingml.styles+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.powerbuilder75-s"/> - <display value="vnd.powerbuilder75-s"/> - <definition value="As defined by Reed Shilts"/> + <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.template" /> + <display value="vnd.openxmlformats-officedocument.wordprocessingml.template" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.powerbuilder7-s"/> - <display value="vnd.powerbuilder7-s"/> - <definition value="As defined by Reed Shilts"/> + <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml" /> + <display value="vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.preminet"/> - <display value="vnd.preminet"/> - <definition value="As defined by Juoko Tenhunen"/> + <code value="application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml" /> + <display value="vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.previewsystems.box"/> - <display value="vnd.previewsystems.box"/> - <definition value="As defined by Roman Smolgovsky"/> + <code value="application/vnd.openxmlformats-package.core-properties+xml" /> + <display value="vnd.openxmlformats-package.core-properties+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.proteus.magazine"/> - <display value="vnd.proteus.magazine"/> - <definition value="As defined by Pete Hoch"/> + <code value="application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml" /> + <display value="vnd.openxmlformats-package.digital-signature-xmlsignature+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.psfs"/> - <display value="vnd.psfs"/> - <definition value="As defined by Kristopher Durski"/> + <code value="application/vnd.openxmlformats-package.relationships+xml" /> + <display value="vnd.openxmlformats-package.relationships+xml" /> + <definition value="As defined by Makoto Murata" /> </concept> <concept> - <code value="application/vnd.pt.mundusmundi"/> - <display value="vnd.pt.mundusmundi"/> - <definition value="As defined by Igor Lima Bolacha Severino"/> + <code value="application/vnd.oracle.resource+json" /> + <display value="vnd.oracle.resource+json" /> + <definition value="As defined by Ning Dong" /> </concept> <concept> - <code value="application/vnd.publishare-delta-tree"/> - <display value="vnd.publishare-delta-tree"/> - <definition value="As defined by Oren Ben-Kiki"/> + <code value="application/vnd.orange.indata" /> + <display value="vnd.orange.indata" /> + <definition value="As defined by CHATRAS Bruno" /> </concept> <concept> - <code value="application/vnd.pvi.ptid1"/> - <display value="vnd.pvi.ptid1"/> - <definition value="As defined by Charles P. Lamb"/> + <code value="application/vnd.osa.netdeploy" /> + <display value="vnd.osa.netdeploy" /> + <definition value="As defined by Steven Klos" /> </concept> <concept> - <code value="application/vnd.pwg-multiplexed"/> - <display value="vnd.pwg-multiplexed"/> - <definition value="As defined by rfc3391"/> + <code value="application/vnd.osgeo.mapguide.package" /> + <display value="vnd.osgeo.mapguide.package" /> + <definition value="As defined by Jason Birch" /> </concept> <concept> - <code value="application/vnd.pwg-xhtml-print+xml"/> - <display value="vnd.pwg-xhtml-print+xml"/> - <definition value="As defined by Don Wright"/> + <code value="application/vnd.osgi.bundle" /> + <display value="vnd.osgi.bundle" /> + <definition value="As defined by Peter Kriens" /> </concept> <concept> - <code value="application/vnd.qualcomm.brew-app-res"/> - <display value="vnd.qualcomm.brew-app-res"/> - <definition value="As defined by Glenn Forrester"/> + <code value="application/vnd.osgi.dp" /> + <display value="vnd.osgi.dp" /> + <definition value="As defined by Peter Kriens" /> </concept> <concept> - <code value="application/vnd.quarantainenet"/> - <display value="vnd.quarantainenet"/> - <definition value="As defined by Casper Joost Eyckelhof"/> + <code value="application/vnd.osgi.subsystem" /> + <display value="vnd.osgi.subsystem" /> + <definition value="As defined by Peter Kriens" /> </concept> <concept> - <code value="application/vnd.Quark.QuarkXPress"/> - <display value="vnd.Quark.QuarkXPress"/> - <definition value="As defined by Hannes Scheidler"/> + <code value="application/vnd.otps.ct-kip+xml" /> + <display value="vnd.otps.ct-kip+xml" /> + <definition value="As defined by Magnus Nystrom" /> </concept> <concept> - <code value="application/vnd.quobject-quoxdocument"/> - <display value="vnd.quobject-quoxdocument"/> - <definition value="As defined by Matthias Ludwig"/> + <code value="application/vnd.oxli.countgraph" /> + <display value="vnd.oxli.countgraph" /> + <definition value="As defined by C. Titus Brown" /> </concept> <concept> - <code value="application/vnd.radisys.moml+xml"/> - <display value="vnd.radisys.moml+xml"/> - <definition value="As defined by rfc5707"/> + <code value="application/vnd.pagerduty+json" /> + <display value="vnd.pagerduty+json" /> + <definition value="As defined by Steve Rice" /> </concept> <concept> - <code value="application/vnd.radisys.msml-audit-conf+xml"/> - <display value="vnd.radisys.msml-audit-conf+xml"/> - <definition value="As defined by rfc5707"/> + <code value="application/vnd.palm" /> + <display value="vnd.palm" /> + <definition value="As defined by Gavin Peacock" /> </concept> <concept> - <code value="application/vnd.radisys.msml-audit-conn+xml"/> - <display value="vnd.radisys.msml-audit-conn+xml"/> - <definition value="As defined by rfc5707"/> + <code value="application/vnd.panoply" /> + <display value="vnd.panoply" /> + <definition value="As defined by Natarajan Balasundara" /> </concept> <concept> - <code value="application/vnd.radisys.msml-audit-dialog+xml"/> - <display value="vnd.radisys.msml-audit-dialog+xml"/> - <definition value="As defined by rfc5707"/> + <code value="application/vnd.paos.xml" /> + <display value="vnd.paos.xml" /> + <definition value="As defined by John Kemp" /> </concept> <concept> - <code value="application/vnd.radisys.msml-audit-stream+xml"/> - <display value="vnd.radisys.msml-audit-stream+xml"/> - <definition value="As defined by rfc5707"/> + <code value="application/vnd.patentdive" /> + <display value="vnd.patentdive" /> + <definition value="As defined by Christian Trosclair" /> </concept> <concept> - <code value="application/vnd.radisys.msml-audit+xml"/> - <display value="vnd.radisys.msml-audit+xml"/> - <definition value="As defined by rfc5707"/> + <code value="application/vnd.patientecommsdoc" /> + <display value="vnd.patientecommsdoc" /> + <definition value="As defined by Andrew David Kendall" /> </concept> <concept> - <code value="application/vnd.radisys.msml-conf+xml"/> - <display value="vnd.radisys.msml-conf+xml"/> - <definition value="As defined by rfc5707"/> + <code value="application/vnd.pawaafile" /> + <display value="vnd.pawaafile" /> + <definition value="As defined by Prakash Baskaran" /> </concept> <concept> - <code value="application/vnd.radisys.msml-dialog-base+xml"/> - <display value="vnd.radisys.msml-dialog-base+xml"/> - <definition value="As defined by rfc5707"/> + <code value="application/vnd.pcos" /> + <display value="vnd.pcos" /> + <definition value="As defined by Slawomir Lisznianski" /> </concept> <concept> - <code value="application/vnd.radisys.msml-dialog-fax-detect+xml"/> - <display value="vnd.radisys.msml-dialog-fax-detect+xml"/> - <definition value="As defined by rfc5707"/> + <code value="application/vnd.pg.format" /> + <display value="vnd.pg.format" /> + <definition value="As defined by April Gandert" /> </concept> <concept> - <code value="application/vnd.radisys.msml-dialog-fax-sendrecv+xml"/> - <display value="vnd.radisys.msml-dialog-fax-sendrecv+xml"/> - <definition value="As defined by rfc5707"/> + <code value="application/vnd.pg.osasli" /> + <display value="vnd.pg.osasli" /> + <definition value="As defined by April Gandert" /> </concept> <concept> - <code value="application/vnd.radisys.msml-dialog-group+xml"/> - <display value="vnd.radisys.msml-dialog-group+xml"/> - <definition value="As defined by rfc5707"/> + <code value="application/vnd.piaccess.application-licence" /> + <display value="vnd.piaccess.application-licence" /> + <definition value="As defined by Lucas Maneos" /> </concept> <concept> - <code value="application/vnd.radisys.msml-dialog-speech+xml"/> - <display value="vnd.radisys.msml-dialog-speech+xml"/> - <definition value="As defined by rfc5707"/> + <code value="application/vnd.picsel" /> + <display value="vnd.picsel" /> + <definition value="As defined by Giuseppe Naccarato" /> </concept> <concept> - <code value="application/vnd.radisys.msml-dialog-transform+xml"/> - <display value="vnd.radisys.msml-dialog-transform+xml"/> - <definition value="As defined by rfc5707"/> + <code value="application/vnd.pmi.widget" /> + <display value="vnd.pmi.widget" /> + <definition value="As defined by Rhys Lewis" /> </concept> <concept> - <code value="application/vnd.radisys.msml-dialog+xml"/> - <display value="vnd.radisys.msml-dialog+xml"/> - <definition value="As defined by rfc5707"/> + <code value="application/vnd.pmtiles" /> + <display value="vnd.pmtiles" /> + <definition value="As defined by Sascha Brawer" /> </concept> <concept> - <code value="application/vnd.radisys.msml+xml"/> - <display value="vnd.radisys.msml+xml"/> - <definition value="As defined by rfc5707"/> + <code value="application/vnd.poc.group-advertisement+xml" /> + <display value="vnd.poc.group-advertisement+xml" /> + <definition value="As defined by Sean Kelley, and OMA Push to Talk over Cellular POC WG" /> </concept> <concept> - <code value="application/vnd.rainstor.data"/> - <display value="vnd.rainstor.data"/> - <definition value="As defined by Kevin Crook"/> + <code value="application/vnd.pocketlearn" /> + <display value="vnd.pocketlearn" /> + <definition value="As defined by Jorge Pando" /> </concept> <concept> - <code value="application/vnd.rapid"/> - <display value="vnd.rapid"/> - <definition value="As defined by Etay Szekely"/> + <code value="application/vnd.powerbuilder6" /> + <display value="vnd.powerbuilder6" /> + <definition value="As defined by David Guy" /> </concept> <concept> - <code value="application/vnd.rar"/> - <display value="vnd.rar"/> - <definition value="As defined by Kim Scarborough"/> + <code value="application/vnd.powerbuilder6-s" /> + <display value="vnd.powerbuilder6-s" /> + <definition value="As defined by David Guy" /> </concept> <concept> - <code value="application/vnd.realvnc.bed"/> - <display value="vnd.realvnc.bed"/> - <definition value="As defined by Nick Reeves"/> + <code value="application/vnd.powerbuilder7" /> + <display value="vnd.powerbuilder7" /> + <definition value="As defined by Reed Shilts" /> </concept> <concept> - <code value="application/vnd.recordare.musicxml"/> - <display value="vnd.recordare.musicxml"/> - <definition value="As defined by W3C Music Notation Community Group"/> + <code value="application/vnd.powerbuilder75" /> + <display value="vnd.powerbuilder75" /> + <definition value="As defined by Reed Shilts" /> </concept> <concept> - <code value="application/vnd.recordare.musicxml+xml"/> - <display value="vnd.recordare.musicxml+xml"/> - <definition value="As defined by W3C Music Notation Community Group"/> + <code value="application/vnd.powerbuilder75-s" /> + <display value="vnd.powerbuilder75-s" /> + <definition value="As defined by Reed Shilts" /> </concept> <concept> - <code value="application/vnd.relpipe"/> - <display value="vnd.relpipe"/> - <definition value="As defined by Frantisek Kucera"/> + <code value="application/vnd.powerbuilder7-s" /> + <display value="vnd.powerbuilder7-s" /> + <definition value="As defined by Reed Shilts" /> </concept> <concept> - <code value="application/vnd.RenLearn.rlprint"/> - <display value="vnd.RenLearn.rlprint"/> - <definition value="As defined by James Wick"/> + <code value="application/vnd.pp.systemverify+xml" /> + <display value="vnd.pp.systemverify+xml" /> + <definition value="As defined by Graham Leggett" /> </concept> <concept> - <code value="application/vnd.resilient.logic"/> - <display value="vnd.resilient.logic"/> - <definition value="As defined by Benedikt Muessig"/> + <code value="application/vnd.preminet" /> + <display value="vnd.preminet" /> + <definition value="As defined by Juoko Tenhunen" /> </concept> <concept> - <code value="application/vnd.restful+json"/> - <display value="vnd.restful+json"/> - <definition value="As defined by Stephen Mizell"/> + <code value="application/vnd.previewsystems.box" /> + <display value="vnd.previewsystems.box" /> + <definition value="As defined by Roman Smolgovsky" /> </concept> <concept> - <code value="application/vnd.rig.cryptonote"/> - <display value="vnd.rig.cryptonote"/> - <definition value="As defined by Ken Jibiki"/> + <code value="application/vnd.project-graph" /> + <display value="vnd.project-graph" /> + <definition value="As defined by Tianyu Zhang" /> </concept> <concept> - <code value="application/vnd.route66.link66+xml"/> - <display value="vnd.route66.link66+xml"/> - <definition value="As defined by Sybren Kikstra"/> + <code value="application/vnd.proteus.magazine" /> + <display value="vnd.proteus.magazine" /> + <definition value="As defined by Pete Hoch" /> </concept> <concept> - <code value="application/vnd.rs-274x"/> - <display value="vnd.rs-274x"/> - <definition value="As defined by Lee Harding"/> + <code value="application/vnd.psfs" /> + <display value="vnd.psfs" /> + <definition value="As defined by Kristopher Durski" /> </concept> <concept> - <code value="application/vnd.ruckus.download"/> - <display value="vnd.ruckus.download"/> - <definition value="As defined by Jerry Harris"/> + <code value="application/vnd.pt.mundusmundi" /> + <display value="vnd.pt.mundusmundi" /> + <definition value="As defined by Igor Lima Bolacha Severino" /> </concept> <concept> - <code value="application/vnd.s3sms"/> - <display value="vnd.s3sms"/> - <definition value="As defined by Lauri Tarkkala"/> + <code value="application/vnd.publishare-delta-tree" /> + <display value="vnd.publishare-delta-tree" /> + <definition value="As defined by Oren Ben-Kiki" /> </concept> <concept> - <code value="application/vnd.sailingtracker.track"/> - <display value="vnd.sailingtracker.track"/> - <definition value="As defined by Heikki Vesalainen"/> + <code value="application/vnd.pvi.ptid1" /> + <display value="vnd.pvi.ptid1" /> + <definition value="As defined by Charles P. Lamb" /> </concept> <concept> - <code value="application/vnd.sar"/> - <display value="vnd.sar"/> - <definition value="As defined by Markus Strehle"/> + <code value="application/vnd.pwg-multiplexed" /> + <display value="vnd.pwg-multiplexed" /> + <definition value="As defined by rfc3391" /> </concept> <concept> - <code value="application/vnd.sbm.cid"/> - <display value="vnd.sbm.cid"/> - <definition value="As defined by Shinji Kusakari"/> + <code value="application/vnd.pwg-xhtml-print+xml" /> + <display value="vnd.pwg-xhtml-print+xml" /> + <definition value="As defined by Don Wright" /> </concept> <concept> - <code value="application/vnd.sbm.mid2"/> - <display value="vnd.sbm.mid2"/> - <definition value="As defined by Masanori Murai"/> + <code value="application/vnd.pyon+json" /> + <display value="vnd.pyon+json" /> + <definition value="As defined by Eduardo Rodrigues" /> </concept> <concept> - <code value="application/vnd.scribus"/> - <display value="vnd.scribus"/> - <definition value="As defined by Craig Bradney"/> + <code value="application/vnd.qualcomm.brew-app-res" /> + <display value="vnd.qualcomm.brew-app-res" /> + <definition value="As defined by Glenn Forrester" /> </concept> <concept> - <code value="application/vnd.sealed.3df"/> - <display value="vnd.sealed.3df"/> - <definition value="As defined by John Kwan"/> + <code value="application/vnd.quarantainenet" /> + <display value="vnd.quarantainenet" /> + <definition value="As defined by Casper Joost Eyckelhof" /> </concept> <concept> - <code value="application/vnd.sealed.csf"/> - <display value="vnd.sealed.csf"/> - <definition value="As defined by John Kwan"/> + <code value="application/vnd.Quark.QuarkXPress" /> + <display value="vnd.Quark.QuarkXPress" /> + <definition value="As defined by Hannes Scheidler" /> </concept> <concept> - <code value="application/vnd.sealed.doc"/> - <display value="vnd.sealed.doc"/> - <definition value="As defined by David Petersen"/> + <code value="application/vnd.quobject-quoxdocument" /> + <display value="vnd.quobject-quoxdocument" /> + <definition value="As defined by Matthias Ludwig" /> </concept> <concept> - <code value="application/vnd.sealed.eml"/> - <display value="vnd.sealed.eml"/> - <definition value="As defined by David Petersen"/> + <code value="application/vnd.R74n.sandboxels+json" /> + <display value="vnd.R74n.sandboxels+json" /> + <definition value="As defined by R74n" /> </concept> <concept> - <code value="application/vnd.sealed.mht"/> - <display value="vnd.sealed.mht"/> - <definition value="As defined by David Petersen"/> + <code value="application/vnd.radisys.moml+xml" /> + <display value="vnd.radisys.moml+xml" /> + <definition value="As defined by rfc5707" /> </concept> <concept> - <code value="application/vnd.sealed.net"/> - <display value="vnd.sealed.net"/> - <definition value="As defined by Martin Lambert"/> + <code value="application/vnd.radisys.msml-audit-conf+xml" /> + <display value="vnd.radisys.msml-audit-conf+xml" /> + <definition value="As defined by rfc5707" /> </concept> <concept> - <code value="application/vnd.sealed.ppt"/> - <display value="vnd.sealed.ppt"/> - <definition value="As defined by David Petersen"/> + <code value="application/vnd.radisys.msml-audit-conn+xml" /> + <display value="vnd.radisys.msml-audit-conn+xml" /> + <definition value="As defined by rfc5707" /> </concept> <concept> - <code value="application/vnd.sealed.tiff"/> - <display value="vnd.sealed.tiff"/> - <definition value="As defined by John Kwan, and Martin Lambert"/> + <code value="application/vnd.radisys.msml-audit-dialog+xml" /> + <display value="vnd.radisys.msml-audit-dialog+xml" /> + <definition value="As defined by rfc5707" /> </concept> <concept> - <code value="application/vnd.sealed.xls"/> - <display value="vnd.sealed.xls"/> - <definition value="As defined by David Petersen"/> + <code value="application/vnd.radisys.msml-audit-stream+xml" /> + <display value="vnd.radisys.msml-audit-stream+xml" /> + <definition value="As defined by rfc5707" /> </concept> <concept> - <code value="application/vnd.sealedmedia.softseal.html"/> - <display value="vnd.sealedmedia.softseal.html"/> - <definition value="As defined by David Petersen"/> + <code value="application/vnd.radisys.msml-audit+xml" /> + <display value="vnd.radisys.msml-audit+xml" /> + <definition value="As defined by rfc5707" /> </concept> <concept> - <code value="application/vnd.sealedmedia.softseal.pdf"/> - <display value="vnd.sealedmedia.softseal.pdf"/> - <definition value="As defined by David Petersen"/> + <code value="application/vnd.radisys.msml-conf+xml" /> + <display value="vnd.radisys.msml-conf+xml" /> + <definition value="As defined by rfc5707" /> </concept> <concept> - <code value="application/vnd.seemail"/> - <display value="vnd.seemail"/> - <definition value="As defined by Steve Webb"/> + <code value="application/vnd.radisys.msml-dialog-base+xml" /> + <display value="vnd.radisys.msml-dialog-base+xml" /> + <definition value="As defined by rfc5707" /> </concept> <concept> - <code value="application/vnd.seis+json"/> - <display value="vnd.seis+json"/> - <definition value="As defined by ICT Manager"/> + <code value="application/vnd.radisys.msml-dialog-fax-detect+xml" /> + <display value="vnd.radisys.msml-dialog-fax-detect+xml" /> + <definition value="As defined by rfc5707" /> </concept> <concept> - <code value="application/vnd.sema"/> - <display value="vnd.sema"/> - <definition value="As defined by Anders Hansson"/> + <code value="application/vnd.radisys.msml-dialog-fax-sendrecv+xml" /> + <display value="vnd.radisys.msml-dialog-fax-sendrecv+xml" /> + <definition value="As defined by rfc5707" /> </concept> <concept> - <code value="application/vnd.semd"/> - <display value="vnd.semd"/> - <definition value="As defined by Anders Hansson"/> + <code value="application/vnd.radisys.msml-dialog-group+xml" /> + <display value="vnd.radisys.msml-dialog-group+xml" /> + <definition value="As defined by rfc5707" /> </concept> <concept> - <code value="application/vnd.semf"/> - <display value="vnd.semf"/> - <definition value="As defined by Anders Hansson"/> + <code value="application/vnd.radisys.msml-dialog-speech+xml" /> + <display value="vnd.radisys.msml-dialog-speech+xml" /> + <definition value="As defined by rfc5707" /> </concept> <concept> - <code value="application/vnd.shade-save-file"/> - <display value="vnd.shade-save-file"/> - <definition value="As defined by Connor Horman"/> + <code value="application/vnd.radisys.msml-dialog-transform+xml" /> + <display value="vnd.radisys.msml-dialog-transform+xml" /> + <definition value="As defined by rfc5707" /> </concept> <concept> - <code value="application/vnd.shana.informed.formdata"/> - <display value="vnd.shana.informed.formdata"/> - <definition value="As defined by Guy Selzler"/> + <code value="application/vnd.radisys.msml-dialog+xml" /> + <display value="vnd.radisys.msml-dialog+xml" /> + <definition value="As defined by rfc5707" /> </concept> <concept> - <code value="application/vnd.shana.informed.formtemplate"/> - <display value="vnd.shana.informed.formtemplate"/> - <definition value="As defined by Guy Selzler"/> + <code value="application/vnd.radisys.msml+xml" /> + <display value="vnd.radisys.msml+xml" /> + <definition value="As defined by rfc5707" /> </concept> <concept> - <code value="application/vnd.shana.informed.interchange"/> - <display value="vnd.shana.informed.interchange"/> - <definition value="As defined by Guy Selzler"/> + <code value="application/vnd.rainstor.data" /> + <display value="vnd.rainstor.data" /> + <definition value="As defined by Kevin Crook" /> </concept> <concept> - <code value="application/vnd.shana.informed.package"/> - <display value="vnd.shana.informed.package"/> - <definition value="As defined by Guy Selzler"/> + <code value="application/vnd.rapid" /> + <display value="vnd.rapid" /> + <definition value="As defined by Etay Szekely" /> </concept> <concept> - <code value="application/vnd.shootproof+json"/> - <display value="vnd.shootproof+json"/> - <definition value="As defined by Ben Ramsey"/> + <code value="application/vnd.rar" /> + <display value="vnd.rar" /> + <definition value="As defined by Kim Scarborough" /> </concept> <concept> - <code value="application/vnd.shopkick+json"/> - <display value="vnd.shopkick+json"/> - <definition value="As defined by Ronald Jacobs"/> + <code value="application/vnd.realvnc.bed" /> + <display value="vnd.realvnc.bed" /> + <definition value="As defined by Nick Reeves" /> </concept> <concept> - <code value="application/vnd.shp"/> - <display value="vnd.shp"/> - <definition value="As defined by Mi Tar"/> + <code value="application/vnd.recordare.musicxml" /> + <display value="vnd.recordare.musicxml" /> + <definition value="As defined by W3C Music Notation Community Group" /> </concept> <concept> - <code value="application/vnd.shx"/> - <display value="vnd.shx"/> - <definition value="As defined by Mi Tar"/> + <code value="application/vnd.recordare.musicxml+xml" /> + <display value="vnd.recordare.musicxml+xml" /> + <definition value="As defined by W3C Music Notation Community Group" /> </concept> <concept> - <code value="application/vnd.sigrok.session"/> - <display value="vnd.sigrok.session"/> - <definition value="As defined by Uwe Hermann"/> + <code value="application/vnd.relpipe" /> + <display value="vnd.relpipe" /> + <definition value="As defined by Frantisek Kucera" /> </concept> <concept> - <code value="application/vnd.SimTech-MindMapper"/> - <display value="vnd.SimTech-MindMapper"/> - <definition value="As defined by Patrick Koh"/> + <code value="application/vnd.RenLearn.rlprint" /> + <display value="vnd.RenLearn.rlprint" /> + <definition value="As defined by James Wick" /> </concept> <concept> - <code value="application/vnd.siren+json"/> - <display value="vnd.siren+json"/> - <definition value="As defined by Kevin Swiber"/> + <code value="application/vnd.resilient.logic" /> + <display value="vnd.resilient.logic" /> + <definition value="As defined by Benedikt Muessig" /> </concept> <concept> - <code value="application/vnd.sketchometry"/> - <display value="vnd.sketchometry"/> - <definition value="As defined by Center for Mobile Learning with Digital Technology"/> + <code value="application/vnd.restful+json" /> + <display value="vnd.restful+json" /> + <definition value="As defined by Stephen Mizell" /> </concept> <concept> - <code value="application/vnd.smaf"/> - <display value="vnd.smaf"/> - <definition value="As defined by Hiroaki Takahashi"/> + <code value="application/vnd.rig.cryptonote" /> + <display value="vnd.rig.cryptonote" /> + <definition value="As defined by Ken Jibiki" /> </concept> <concept> - <code value="application/vnd.smart.notebook"/> - <display value="vnd.smart.notebook"/> - <definition value="As defined by Jonathan Neitz"/> + <code value="application/vnd.route66.link66+xml" /> + <display value="vnd.route66.link66+xml" /> + <definition value="As defined by Sybren Kikstra" /> </concept> <concept> - <code value="application/vnd.smart.teacher"/> - <display value="vnd.smart.teacher"/> - <definition value="As defined by Michael Boyle"/> + <code value="application/vnd.rs-274x" /> + <display value="vnd.rs-274x" /> + <definition value="As defined by Lee Harding" /> </concept> <concept> - <code value="application/vnd.smintio.portals.archive"/> - <display value="vnd.smintio.portals.archive"/> - <definition value="As defined by Reinhard Holzner"/> + <code value="application/vnd.ruckus.download" /> + <display value="vnd.ruckus.download" /> + <definition value="As defined by Jerry Harris" /> </concept> <concept> - <code value="application/vnd.snesdev-page-table"/> - <display value="vnd.snesdev-page-table"/> - <definition value="As defined by Connor Horman"/> + <code value="application/vnd.s3sms" /> + <display value="vnd.s3sms" /> + <definition value="As defined by Lauri Tarkkala" /> </concept> <concept> - <code value="application/vnd.software602.filler.form+xml"/> - <display value="vnd.software602.filler.form+xml"/> - <definition value="As defined by Jakub Hytka, and Martin Vondrous"/> + <code value="application/vnd.sailingtracker.track" /> + <display value="vnd.sailingtracker.track" /> + <definition value="As defined by Heikki Vesalainen" /> </concept> <concept> - <code value="application/vnd.software602.filler.form-xml-zip"/> - <display value="vnd.software602.filler.form-xml-zip"/> - <definition value="As defined by Jakub Hytka, and Martin Vondrous"/> + <code value="application/vnd.sar" /> + <display value="vnd.sar" /> + <definition value="As defined by Markus Strehle" /> </concept> <concept> - <code value="application/vnd.solent.sdkm+xml"/> - <display value="vnd.solent.sdkm+xml"/> - <definition value="As defined by Cliff Gauntlett"/> + <code value="application/vnd.sbm.cid" /> + <display value="vnd.sbm.cid" /> + <definition value="As defined by Shinji Kusakari" /> </concept> <concept> - <code value="application/vnd.spotfire.dxp"/> - <display value="vnd.spotfire.dxp"/> - <definition value="As defined by Stefan Jernberg"/> + <code value="application/vnd.sbm.mid2" /> + <display value="vnd.sbm.mid2" /> + <definition value="As defined by Masanori Murai" /> </concept> <concept> - <code value="application/vnd.spotfire.sfs"/> - <display value="vnd.spotfire.sfs"/> - <definition value="As defined by Stefan Jernberg"/> + <code value="application/vnd.scribus" /> + <display value="vnd.scribus" /> + <definition value="As defined by Craig Bradney" /> </concept> <concept> - <code value="application/vnd.sqlite3"/> - <display value="vnd.sqlite3"/> - <definition value="As defined by Clemens Ladisch"/> + <code value="application/vnd.sealed.3df" /> + <display value="vnd.sealed.3df" /> + <definition value="As defined by John Kwan" /> </concept> <concept> - <code value="application/vnd.sss-cod"/> - <display value="vnd.sss-cod"/> - <definition value="As defined by Asang Dani"/> + <code value="application/vnd.sealed.csf" /> + <display value="vnd.sealed.csf" /> + <definition value="As defined by John Kwan" /> </concept> <concept> - <code value="application/vnd.sss-dtf"/> - <display value="vnd.sss-dtf"/> - <definition value="As defined by Eric Bruno"/> + <code value="application/vnd.sealed.doc" /> + <display value="vnd.sealed.doc" /> + <definition value="As defined by David Petersen" /> </concept> <concept> - <code value="application/vnd.sss-ntf"/> - <display value="vnd.sss-ntf"/> - <definition value="As defined by Eric Bruno"/> + <code value="application/vnd.sealed.eml" /> + <display value="vnd.sealed.eml" /> + <definition value="As defined by David Petersen" /> </concept> <concept> - <code value="application/vnd.stepmania.package"/> - <display value="vnd.stepmania.package"/> - <definition value="As defined by Henrik Andersson"/> + <code value="application/vnd.sealed.mht" /> + <display value="vnd.sealed.mht" /> + <definition value="As defined by David Petersen" /> </concept> <concept> - <code value="application/vnd.stepmania.stepchart"/> - <display value="vnd.stepmania.stepchart"/> - <definition value="As defined by Henrik Andersson"/> + <code value="application/vnd.sealed.net" /> + <display value="vnd.sealed.net" /> + <definition value="As defined by Martin Lambert" /> </concept> <concept> - <code value="application/vnd.street-stream"/> - <display value="vnd.street-stream"/> - <definition value="As defined by Glenn Levitt"/> + <code value="application/vnd.sealed.ppt" /> + <display value="vnd.sealed.ppt" /> + <definition value="As defined by David Petersen" /> </concept> <concept> - <code value="application/vnd.sun.wadl+xml"/> - <display value="vnd.sun.wadl+xml"/> - <definition value="As defined by Marc Hadley"/> + <code value="application/vnd.sealed.tiff" /> + <display value="vnd.sealed.tiff" /> + <definition value="As defined by John Kwan, and Martin Lambert" /> </concept> <concept> - <code value="application/vnd.sus-calendar"/> - <display value="vnd.sus-calendar"/> - <definition value="As defined by Jonathan Niedfeldt"/> + <code value="application/vnd.sealed.xls" /> + <display value="vnd.sealed.xls" /> + <definition value="As defined by David Petersen" /> </concept> <concept> - <code value="application/vnd.svd"/> - <display value="vnd.svd"/> - <definition value="As defined by Scott Becker"/> + <code value="application/vnd.sealedmedia.softseal.html" /> + <display value="vnd.sealedmedia.softseal.html" /> + <definition value="As defined by David Petersen" /> </concept> <concept> - <code value="application/vnd.swiftview-ics"/> - <display value="vnd.swiftview-ics"/> - <definition value="As defined by Glenn Widener"/> + <code value="application/vnd.sealedmedia.softseal.pdf" /> + <display value="vnd.sealedmedia.softseal.pdf" /> + <definition value="As defined by David Petersen" /> </concept> <concept> - <code value="application/vnd.sybyl.mol2"/> - <display value="vnd.sybyl.mol2"/> - <definition value="As defined by Finn Rayk Gärtner"/> + <code value="application/vnd.seemail" /> + <display value="vnd.seemail" /> + <definition value="As defined by Steve Webb" /> </concept> <concept> - <code value="application/vnd.sycle+xml"/> - <display value="vnd.sycle+xml"/> - <definition value="As defined by Johann Terblanche"/> + <code value="application/vnd.seis+json" /> + <display value="vnd.seis+json" /> + <definition value="As defined by ICT Manager" /> </concept> <concept> - <code value="application/vnd.syft+json"/> - <display value="vnd.syft+json"/> - <definition value="As defined by Dan Luhring"/> + <code value="application/vnd.sema" /> + <display value="vnd.sema" /> + <definition value="As defined by Anders Hansson" /> </concept> <concept> - <code value="application/vnd.syncml.dm.notification"/> - <display value="vnd.syncml.dm.notification"/> - <definition value="As defined by Peter Thompson, and OMA-DM Work Group"/> + <code value="application/vnd.semd" /> + <display value="vnd.semd" /> + <definition value="As defined by Anders Hansson" /> </concept> <concept> - <code value="application/vnd.syncml.dmddf+xml"/> - <display value="vnd.syncml.dmddf+xml"/> - <definition value="As defined by OMA-DM Work Group"/> + <code value="application/vnd.semf" /> + <display value="vnd.semf" /> + <definition value="As defined by Anders Hansson" /> </concept> <concept> - <code value="application/vnd.syncml.dmtnds+wbxml"/> - <display value="vnd.syncml.dmtnds+wbxml"/> - <definition value="As defined by OMA-DM Work Group"/> + <code value="application/vnd.shade-save-file" /> + <display value="vnd.shade-save-file" /> + <definition value="As defined by Connor Horman" /> </concept> <concept> - <code value="application/vnd.syncml.dmtnds+xml"/> - <display value="vnd.syncml.dmtnds+xml"/> - <definition value="As defined by OMA-DM Work Group"/> + <code value="application/vnd.shana.informed.formdata" /> + <display value="vnd.shana.informed.formdata" /> + <definition value="As defined by Guy Selzler" /> </concept> <concept> - <code value="application/vnd.syncml.dmddf+wbxml"/> - <display value="vnd.syncml.dmddf+wbxml"/> - <definition value="As defined by OMA-DM Work Group"/> + <code value="application/vnd.shana.informed.formtemplate" /> + <display value="vnd.shana.informed.formtemplate" /> + <definition value="As defined by Guy Selzler" /> </concept> <concept> - <code value="application/vnd.syncml.dm+wbxml"/> - <display value="vnd.syncml.dm+wbxml"/> - <definition value="As defined by OMA-DM Work Group"/> + <code value="application/vnd.shana.informed.interchange" /> + <display value="vnd.shana.informed.interchange" /> + <definition value="As defined by Guy Selzler" /> </concept> <concept> - <code value="application/vnd.syncml.dm+xml"/> - <display value="vnd.syncml.dm+xml"/> - <definition value="As defined by Bindu Rama Rao, and OMA-DM Work Group"/> + <code value="application/vnd.shana.informed.package" /> + <display value="vnd.shana.informed.package" /> + <definition value="As defined by Guy Selzler" /> </concept> <concept> - <code value="application/vnd.syncml.ds.notification"/> - <display value="vnd.syncml.ds.notification"/> - <definition value="As defined by OMA Data Synchronization WG"/> + <code value="application/vnd.shootproof+json" /> + <display value="vnd.shootproof+json" /> + <definition value="As defined by Ben Ramsey" /> </concept> <concept> - <code value="application/vnd.syncml+xml"/> - <display value="vnd.syncml+xml"/> - <definition value="As defined by OMA Data Synchronization WG"/> + <code value="application/vnd.shopkick+json" /> + <display value="vnd.shopkick+json" /> + <definition value="As defined by Ronald Jacobs" /> </concept> <concept> - <code value="application/vnd.tableschema+json"/> - <display value="vnd.tableschema+json"/> - <definition value="As defined by Paul Walsh"/> + <code value="application/vnd.shp" /> + <display value="vnd.shp" /> + <definition value="As defined by Mi Tar" /> </concept> <concept> - <code value="application/vnd.tao.intent-module-archive"/> - <display value="vnd.tao.intent-module-archive"/> - <definition value="As defined by Daniel Shelton"/> + <code value="application/vnd.shx" /> + <display value="vnd.shx" /> + <definition value="As defined by Mi Tar" /> </concept> <concept> - <code value="application/vnd.tcpdump.pcap"/> - <display value="vnd.tcpdump.pcap"/> - <definition value="As defined by Guy Harris, and Glen Turner"/> + <code value="application/vnd.sigrok.session" /> + <display value="vnd.sigrok.session" /> + <definition value="As defined by Uwe Hermann" /> </concept> <concept> - <code value="application/vnd.think-cell.ppttc+json"/> - <display value="vnd.think-cell.ppttc+json"/> - <definition value="As defined by Arno Schoedl"/> + <code value="application/vnd.SimTech-MindMapper" /> + <display value="vnd.SimTech-MindMapper" /> + <definition value="As defined by Patrick Koh" /> </concept> <concept> - <code value="application/vnd.tml"/> - <display value="vnd.tml"/> - <definition value="As defined by Joey Smith"/> + <code value="application/vnd.siren+json" /> + <display value="vnd.siren+json" /> + <definition value="As defined by Kevin Swiber" /> </concept> <concept> - <code value="application/vnd.tmd.mediaflex.api+xml"/> - <display value="vnd.tmd.mediaflex.api+xml"/> - <definition value="As defined by Alex Sibilev"/> + <code value="application/vnd.sirtx.vmv0" /> + <display value="vnd.sirtx.vmv0" /> + <definition value="As defined by Philipp Schafft" /> </concept> <concept> - <code value="application/vnd.tmobile-livetv"/> - <display value="vnd.tmobile-livetv"/> - <definition value="As defined by Nicolas Helin"/> + <code value="application/vnd.sketchometry" /> + <display value="vnd.sketchometry" /> + <definition value="As defined by Center for Mobile Learning with Digital Technology" /> </concept> <concept> - <code value="application/vnd.tri.onesource"/> - <display value="vnd.tri.onesource"/> - <definition value="As defined by Rick Rupp"/> + <code value="application/vnd.smaf" /> + <display value="vnd.smaf" /> + <definition value="As defined by Hiroaki Takahashi" /> </concept> <concept> - <code value="application/vnd.trid.tpt"/> - <display value="vnd.trid.tpt"/> - <definition value="As defined by Frank Cusack"/> + <code value="application/vnd.smart.notebook" /> + <display value="vnd.smart.notebook" /> + <definition value="As defined by Jonathan Neitz" /> </concept> <concept> - <code value="application/vnd.triscape.mxs"/> - <display value="vnd.triscape.mxs"/> - <definition value="As defined by Steven Simonoff"/> + <code value="application/vnd.smart.teacher" /> + <display value="vnd.smart.teacher" /> + <definition value="As defined by Michael Boyle" /> </concept> <concept> - <code value="application/vnd.trueapp"/> - <display value="vnd.trueapp"/> - <definition value="As defined by J. Scott Hepler"/> + <code value="application/vnd.smintio.portals.archive" /> + <display value="vnd.smintio.portals.archive" /> + <definition value="As defined by Reinhard Holzner" /> </concept> <concept> - <code value="application/vnd.truedoc"/> - <display value="vnd.truedoc"/> - <definition value="As defined by Brad Chase"/> + <code value="application/vnd.snesdev-page-table" /> + <display value="vnd.snesdev-page-table" /> + <definition value="As defined by Connor Horman" /> </concept> <concept> - <code value="application/vnd.ubisoft.webplayer"/> - <display value="vnd.ubisoft.webplayer"/> - <definition value="As defined by Martin Talbot"/> + <code value="application/vnd.software602.filler.form+xml" /> + <display value="vnd.software602.filler.form+xml" /> + <definition value="As defined by Jakub Hytka, and Martin Vondrous" /> </concept> <concept> - <code value="application/vnd.ufdl"/> - <display value="vnd.ufdl"/> - <definition value="As defined by Dave Manning"/> + <code value="application/vnd.software602.filler.form-xml-zip" /> + <display value="vnd.software602.filler.form-xml-zip" /> + <definition value="As defined by Jakub Hytka, and Martin Vondrous" /> </concept> <concept> - <code value="application/vnd.uic.osdm+json"/> - <display value="vnd.uic.osdm+json"/> - <definition value="As defined by David Sarfatti"/> + <code value="application/vnd.solent.sdkm+xml" /> + <display value="vnd.solent.sdkm+xml" /> + <definition value="As defined by Cliff Gauntlett" /> </concept> <concept> - <code value="application/vnd.uiq.theme"/> - <display value="vnd.uiq.theme"/> - <definition value="As defined by Tim Ocock"/> + <code value="application/vnd.spotfire.dxp" /> + <display value="vnd.spotfire.dxp" /> + <definition value="As defined by Stefan Jernberg" /> </concept> <concept> - <code value="application/vnd.umajin"/> - <display value="vnd.umajin"/> - <definition value="As defined by Jamie Riden"/> + <code value="application/vnd.spotfire.sfs" /> + <display value="vnd.spotfire.sfs" /> + <definition value="As defined by Stefan Jernberg" /> </concept> <concept> - <code value="application/vnd.unity"/> - <display value="vnd.unity"/> - <definition value="As defined by Unity3d"/> + <code value="application/vnd.sqlite3" /> + <display value="vnd.sqlite3" /> + <definition value="As defined by Clemens Ladisch" /> </concept> <concept> - <code value="application/vnd.uoml+xml"/> - <display value="vnd.uoml+xml"/> - <definition value="As defined by Arne Gerdes"/> + <code value="application/vnd.sss-cod" /> + <display value="vnd.sss-cod" /> + <definition value="As defined by Asang Dani" /> </concept> <concept> - <code value="application/vnd.uplanet.alert"/> - <display value="vnd.uplanet.alert"/> - <definition value="As defined by Bruce Martin"/> + <code value="application/vnd.sss-dtf" /> + <display value="vnd.sss-dtf" /> + <definition value="As defined by Eric Bruno" /> </concept> <concept> - <code value="application/vnd.uplanet.alert-wbxml"/> - <display value="vnd.uplanet.alert-wbxml"/> - <definition value="As defined by Bruce Martin"/> + <code value="application/vnd.sss-ntf" /> + <display value="vnd.sss-ntf" /> + <definition value="As defined by Eric Bruno" /> </concept> <concept> - <code value="application/vnd.uplanet.bearer-choice"/> - <display value="vnd.uplanet.bearer-choice"/> - <definition value="As defined by Bruce Martin"/> + <code value="application/vnd.stepmania.package" /> + <display value="vnd.stepmania.package" /> + <definition value="As defined by Henrik Andersson" /> </concept> <concept> - <code value="application/vnd.uplanet.bearer-choice-wbxml"/> - <display value="vnd.uplanet.bearer-choice-wbxml"/> - <definition value="As defined by Bruce Martin"/> + <code value="application/vnd.stepmania.stepchart" /> + <display value="vnd.stepmania.stepchart" /> + <definition value="As defined by Henrik Andersson" /> </concept> <concept> - <code value="application/vnd.uplanet.cacheop"/> - <display value="vnd.uplanet.cacheop"/> - <definition value="As defined by Bruce Martin"/> + <code value="application/vnd.street-stream" /> + <display value="vnd.street-stream" /> + <definition value="As defined by Glenn Levitt" /> </concept> <concept> - <code value="application/vnd.uplanet.cacheop-wbxml"/> - <display value="vnd.uplanet.cacheop-wbxml"/> - <definition value="As defined by Bruce Martin"/> + <code value="application/vnd.sun.wadl+xml" /> + <display value="vnd.sun.wadl+xml" /> + <definition value="As defined by Marc Hadley" /> </concept> <concept> - <code value="application/vnd.uplanet.channel"/> - <display value="vnd.uplanet.channel"/> - <definition value="As defined by Bruce Martin"/> + <code value="application/vnd.superfile.super" /> + <display value="vnd.superfile.super" /> + <definition value="As defined by Shane Valdez" /> </concept> <concept> - <code value="application/vnd.uplanet.channel-wbxml"/> - <display value="vnd.uplanet.channel-wbxml"/> - <definition value="As defined by Bruce Martin"/> + <code value="application/vnd.sus-calendar" /> + <display value="vnd.sus-calendar" /> + <definition value="As defined by Jonathan Niedfeldt" /> </concept> <concept> - <code value="application/vnd.uplanet.list"/> - <display value="vnd.uplanet.list"/> - <definition value="As defined by Bruce Martin"/> + <code value="application/vnd.svd" /> + <display value="vnd.svd" /> + <definition value="As defined by Scott Becker" /> </concept> <concept> - <code value="application/vnd.uplanet.listcmd"/> - <display value="vnd.uplanet.listcmd"/> - <definition value="As defined by Bruce Martin"/> + <code value="application/vnd.swiftview-ics" /> + <display value="vnd.swiftview-ics" /> + <definition value="As defined by Glenn Widener" /> </concept> <concept> - <code value="application/vnd.uplanet.listcmd-wbxml"/> - <display value="vnd.uplanet.listcmd-wbxml"/> - <definition value="As defined by Bruce Martin"/> + <code value="application/vnd.sybyl.mol2" /> + <display value="vnd.sybyl.mol2" /> + <definition value="As defined by Finn Rayk Gärtner" /> </concept> <concept> - <code value="application/vnd.uplanet.list-wbxml"/> - <display value="vnd.uplanet.list-wbxml"/> - <definition value="As defined by Bruce Martin"/> + <code value="application/vnd.sycle+xml" /> + <display value="vnd.sycle+xml" /> + <definition value="As defined by Johann Terblanche" /> </concept> <concept> - <code value="application/vnd.uri-map"/> - <display value="vnd.uri-map"/> - <definition value="As defined by Sebastian Baer"/> + <code value="application/vnd.syft+json" /> + <display value="vnd.syft+json" /> + <definition value="As defined by Dan Nurmi" /> </concept> <concept> - <code value="application/vnd.uplanet.signal"/> - <display value="vnd.uplanet.signal"/> - <definition value="As defined by Bruce Martin"/> + <code value="application/vnd.syncml.dm.notification" /> + <display value="vnd.syncml.dm.notification" /> + <definition value="As defined by Peter Thompson, and OMA-DM Work Group" /> </concept> <concept> - <code value="application/vnd.valve.source.material"/> - <display value="vnd.valve.source.material"/> - <definition value="As defined by Henrik Andersson"/> + <code value="application/vnd.syncml.dmddf+xml" /> + <display value="vnd.syncml.dmddf+xml" /> + <definition value="As defined by OMA-DM Work Group" /> </concept> <concept> - <code value="application/vnd.vcx"/> - <display value="vnd.vcx"/> - <definition value="As defined by Taisuke Sugimoto"/> + <code value="application/vnd.syncml.dmtnds+wbxml" /> + <display value="vnd.syncml.dmtnds+wbxml" /> + <definition value="As defined by OMA-DM Work Group" /> </concept> <concept> - <code value="application/vnd.vd-study"/> - <display value="vnd.vd-study"/> - <definition value="As defined by Luc Rogge"/> + <code value="application/vnd.syncml.dmtnds+xml" /> + <display value="vnd.syncml.dmtnds+xml" /> + <definition value="As defined by OMA-DM Work Group" /> </concept> <concept> - <code value="application/vnd.vectorworks"/> - <display value="vnd.vectorworks"/> - <definition value="As defined by Lyndsey Ferguson, and Biplab Sarkar"/> + <code value="application/vnd.syncml.dmddf+wbxml" /> + <display value="vnd.syncml.dmddf+wbxml" /> + <definition value="As defined by OMA-DM Work Group" /> </concept> <concept> - <code value="application/vnd.vel+json"/> - <display value="vnd.vel+json"/> - <definition value="As defined by James Wigger"/> + <code value="application/vnd.syncml.dm+wbxml" /> + <display value="vnd.syncml.dm+wbxml" /> + <definition value="As defined by OMA-DM Work Group" /> </concept> <concept> - <code value="application/vnd.veraison.tsm-report+cbor"/> - <display value="vnd.veraison.tsm-report+cbor"/> - <definition value="As defined by Thomas Fossati"/> + <code value="application/vnd.syncml.dm+xml" /> + <display value="vnd.syncml.dm+xml" /> + <definition value="As defined by Bindu Rama Rao, and OMA-DM Work Group" /> </concept> <concept> - <code value="application/vnd.veraison.tsm-report+json"/> - <display value="vnd.veraison.tsm-report+json"/> - <definition value="As defined by Thomas Fossati"/> + <code value="application/vnd.syncml.ds.notification" /> + <display value="vnd.syncml.ds.notification" /> + <definition value="As defined by OMA Data Synchronization WG" /> </concept> <concept> - <code value="application/vnd.verimatrix.vcas"/> - <display value="vnd.verimatrix.vcas"/> - <definition value="As defined by Petr Peterka"/> + <code value="application/vnd.syncml+xml" /> + <display value="vnd.syncml+xml" /> + <definition value="As defined by OMA Data Synchronization WG" /> </concept> <concept> - <code value="application/vnd.veritone.aion+json"/> - <display value="vnd.veritone.aion+json"/> - <definition value="As defined by Al Brown"/> + <code value="application/vnd.tableschema+json" /> + <display value="vnd.tableschema+json" /> + <definition value="As defined by Paul Walsh" /> </concept> <concept> - <code value="application/vnd.veryant.thin"/> - <display value="vnd.veryant.thin"/> - <definition value="As defined by Massimo Bertoli"/> + <code value="application/vnd.tao.intent-module-archive" /> + <display value="vnd.tao.intent-module-archive" /> + <definition value="As defined by Daniel Shelton" /> </concept> <concept> - <code value="application/vnd.ves.encrypted"/> - <display value="vnd.ves.encrypted"/> - <definition value="As defined by Jim Zubov"/> + <code value="application/vnd.tcpdump.pcap" /> + <display value="vnd.tcpdump.pcap" /> + <definition value="As defined by Guy Harris, and Glen Turner" /> </concept> <concept> - <code value="application/vnd.vidsoft.vidconference"/> - <display value="vnd.vidsoft.vidconference"/> - <definition value="As defined by Robert Hess"/> + <code value="application/vnd.think-cell.ppttc+json" /> + <display value="vnd.think-cell.ppttc+json" /> + <definition value="As defined by Arno Schoedl" /> </concept> <concept> - <code value="application/vnd.visio"/> - <display value="vnd.visio"/> - <definition value="As defined by Troy Sandal"/> + <code value="application/vnd.tml" /> + <display value="vnd.tml" /> + <definition value="As defined by Joey Smith" /> </concept> <concept> - <code value="application/vnd.visionary"/> - <display value="vnd.visionary"/> - <definition value="As defined by Gayatri Aravindakumar"/> + <code value="application/vnd.tmd.mediaflex.api+xml" /> + <display value="vnd.tmd.mediaflex.api+xml" /> + <definition value="As defined by Alex Sibilev" /> </concept> <concept> - <code value="application/vnd.vividence.scriptfile"/> - <display value="vnd.vividence.scriptfile"/> - <definition value="As defined by Mark Risher"/> + <code value="application/vnd.tmobile-livetv" /> + <display value="vnd.tmobile-livetv" /> + <definition value="As defined by Nicolas Helin" /> </concept> <concept> - <code value="application/vnd.vocalshaper.vsp4"/> - <display value="vnd.vocalshaper.vsp4"/> - <definition value="As defined by Wu Chang"/> + <code value="application/vnd.tri.onesource" /> + <display value="vnd.tri.onesource" /> + <definition value="As defined by Rick Rupp" /> </concept> <concept> - <code value="application/vnd.vsf"/> - <display value="vnd.vsf"/> - <definition value="As defined by Delton Rowe"/> + <code value="application/vnd.trid.tpt" /> + <display value="vnd.trid.tpt" /> + <definition value="As defined by Frank Cusack" /> </concept> <concept> - <code value="application/vnd.wap.sic"/> - <display value="vnd.wap.sic"/> - <definition value="As defined by WAP-Forum"/> + <code value="application/vnd.triscape.mxs" /> + <display value="vnd.triscape.mxs" /> + <definition value="As defined by Steven Simonoff" /> </concept> <concept> - <code value="application/vnd.wap.slc"/> - <display value="vnd.wap.slc"/> - <definition value="As defined by WAP-Forum"/> + <code value="application/vnd.trueapp" /> + <display value="vnd.trueapp" /> + <definition value="As defined by J. Scott Hepler" /> </concept> <concept> - <code value="application/vnd.wap.wbxml"/> - <display value="vnd.wap.wbxml"/> - <definition value="As defined by Peter Stark"/> + <code value="application/vnd.truedoc" /> + <display value="vnd.truedoc" /> + <definition value="As defined by Brad Chase" /> </concept> <concept> - <code value="application/vnd.wap.wmlc"/> - <display value="vnd.wap.wmlc"/> - <definition value="As defined by Peter Stark"/> + <code value="application/vnd.ubisoft.webplayer" /> + <display value="vnd.ubisoft.webplayer" /> + <definition value="As defined by Martin Talbot" /> </concept> <concept> - <code value="application/vnd.wap.wmlscriptc"/> - <display value="vnd.wap.wmlscriptc"/> - <definition value="As defined by Peter Stark"/> + <code value="application/vnd.ufdl" /> + <display value="vnd.ufdl" /> + <definition value="As defined by Dave Manning" /> </concept> <concept> - <code value="application/vnd.wasmflow.wafl"/> - <display value="vnd.wasmflow.wafl"/> - <definition value="As defined by Fawad Shaikh"/> + <code value="application/vnd.uic.osdm+json" /> + <display value="vnd.uic.osdm+json" /> + <definition value="As defined by David Sarfatti" /> </concept> <concept> - <code value="application/vnd.webturbo"/> - <display value="vnd.webturbo"/> - <definition value="As defined by Yaser Rehem"/> + <code value="application/vnd.uiq.theme" /> + <display value="vnd.uiq.theme" /> + <definition value="As defined by Tim Ocock" /> </concept> <concept> - <code value="application/vnd.wfa.dpp"/> - <display value="vnd.wfa.dpp"/> - <definition value="As defined by Wi-Fi Alliance, and Dr. Jun Tian"/> + <code value="application/vnd.umajin" /> + <display value="vnd.umajin" /> + <definition value="As defined by Jamie Riden" /> </concept> <concept> - <code value="application/vnd.wfa.p2p"/> - <display value="vnd.wfa.p2p"/> - <definition value="As defined by Mick Conley"/> + <code value="application/vnd.unity" /> + <display value="vnd.unity" /> + <definition value="As defined by Unity3d" /> </concept> <concept> - <code value="application/vnd.wfa.wsc"/> - <display value="vnd.wfa.wsc"/> - <definition value="As defined by Wi-Fi Alliance"/> + <code value="application/vnd.uoml+xml" /> + <display value="vnd.uoml+xml" /> + <definition value="As defined by Arne Gerdes" /> </concept> <concept> - <code value="application/vnd.windows.devicepairing"/> - <display value="vnd.windows.devicepairing"/> - <definition value="As defined by Priya Dandawate"/> + <code value="application/vnd.uplanet.alert" /> + <display value="vnd.uplanet.alert" /> + <definition value="As defined by Bruce Martin" /> </concept> <concept> - <code value="application/vnd.wmc"/> - <display value="vnd.wmc"/> - <definition value="As defined by Thomas Kjornes"/> + <code value="application/vnd.uplanet.alert-wbxml" /> + <display value="vnd.uplanet.alert-wbxml" /> + <definition value="As defined by Bruce Martin" /> </concept> <concept> - <code value="application/vnd.wmf.bootstrap"/> - <display value="vnd.wmf.bootstrap"/> - <definition value="As defined by Thinh Nguyenphu, and Prakash Iyer"/> + <code value="application/vnd.uplanet.bearer-choice" /> + <display value="vnd.uplanet.bearer-choice" /> + <definition value="As defined by Bruce Martin" /> </concept> <concept> - <code value="application/vnd.wolfram.mathematica"/> - <display value="vnd.wolfram.mathematica"/> - <definition value="As defined by Wolfram"/> + <code value="application/vnd.uplanet.bearer-choice-wbxml" /> + <display value="vnd.uplanet.bearer-choice-wbxml" /> + <definition value="As defined by Bruce Martin" /> </concept> <concept> - <code value="application/vnd.wolfram.mathematica.package"/> - <display value="vnd.wolfram.mathematica.package"/> - <definition value="As defined by Wolfram"/> + <code value="application/vnd.uplanet.cacheop" /> + <display value="vnd.uplanet.cacheop" /> + <definition value="As defined by Bruce Martin" /> </concept> <concept> - <code value="application/vnd.wolfram.player"/> - <display value="vnd.wolfram.player"/> - <definition value="As defined by Wolfram"/> + <code value="application/vnd.uplanet.cacheop-wbxml" /> + <display value="vnd.uplanet.cacheop-wbxml" /> + <definition value="As defined by Bruce Martin" /> </concept> <concept> - <code value="application/vnd.wordlift"/> - <display value="vnd.wordlift"/> - <definition value="As defined by David Riccitelli"/> + <code value="application/vnd.uplanet.channel" /> + <display value="vnd.uplanet.channel" /> + <definition value="As defined by Bruce Martin" /> </concept> <concept> - <code value="application/vnd.wordperfect"/> - <display value="vnd.wordperfect"/> - <definition value="As defined by Kim Scarborough"/> + <code value="application/vnd.uplanet.channel-wbxml" /> + <display value="vnd.uplanet.channel-wbxml" /> + <definition value="As defined by Bruce Martin" /> </concept> <concept> - <code value="application/vnd.wqd"/> - <display value="vnd.wqd"/> - <definition value="As defined by Jan Boström"/> + <code value="application/vnd.uplanet.list" /> + <display value="vnd.uplanet.list" /> + <definition value="As defined by Bruce Martin" /> </concept> <concept> - <code value="application/vnd.wrq-hp3000-labelled"/> - <display value="vnd.wrq-hp3000-labelled"/> - <definition value="As defined by Chris Bartram"/> + <code value="application/vnd.uplanet.listcmd" /> + <display value="vnd.uplanet.listcmd" /> + <definition value="As defined by Bruce Martin" /> </concept> <concept> - <code value="application/vnd.wt.stf"/> - <display value="vnd.wt.stf"/> - <definition value="As defined by Bill Wohler"/> + <code value="application/vnd.uplanet.listcmd-wbxml" /> + <display value="vnd.uplanet.listcmd-wbxml" /> + <definition value="As defined by Bruce Martin" /> </concept> <concept> - <code value="application/vnd.wv.csp+xml"/> - <display value="vnd.wv.csp+xml"/> - <definition value="As defined by John Ingi Ingimundarson"/> + <code value="application/vnd.uplanet.list-wbxml" /> + <display value="vnd.uplanet.list-wbxml" /> + <definition value="As defined by Bruce Martin" /> </concept> <concept> - <code value="application/vnd.wv.csp+wbxml"/> - <display value="vnd.wv.csp+wbxml"/> - <definition value="As defined by Matti Salmi"/> + <code value="application/vnd.uri-map" /> + <display value="vnd.uri-map" /> + <definition value="As defined by Sebastian Baer" /> </concept> <concept> - <code value="application/vnd.wv.ssp+xml"/> - <display value="vnd.wv.ssp+xml"/> - <definition value="As defined by John Ingi Ingimundarson"/> + <code value="application/vnd.uplanet.signal" /> + <display value="vnd.uplanet.signal" /> + <definition value="As defined by Bruce Martin" /> </concept> <concept> - <code value="application/vnd.xacml+json"/> - <display value="vnd.xacml+json"/> - <definition value="As defined by David Brossard"/> + <code value="application/vnd.valve.source.material" /> + <display value="vnd.valve.source.material" /> + <definition value="As defined by Henrik Andersson" /> </concept> <concept> - <code value="application/vnd.xara"/> - <display value="vnd.xara"/> - <definition value="As defined by David Matthewman"/> + <code value="application/vnd.vcx" /> + <display value="vnd.vcx" /> + <definition value="As defined by Taisuke Sugimoto" /> </concept> <concept> - <code value="application/vnd.xarin.cpj"/> - <display value="vnd.xarin.cpj"/> - <definition value="As defined by Ben Brown"/> + <code value="application/vnd.vd-study" /> + <display value="vnd.vd-study" /> + <definition value="As defined by Luc Rogge" /> </concept> <concept> - <code value="application/vnd.xecrets-encrypted"/> - <display value="vnd.xecrets-encrypted"/> - <definition value="As defined by Svante Seleborg"/> + <code value="application/vnd.vectorworks" /> + <display value="vnd.vectorworks" /> + <definition value="As defined by Lyndsey Ferguson, and Biplab Sarkar" /> </concept> <concept> - <code value="application/vnd.xfdl"/> - <display value="vnd.xfdl"/> - <definition value="As defined by Dave Manning"/> + <code value="application/vnd.vel+json" /> + <display value="vnd.vel+json" /> + <definition value="As defined by James Wigger" /> </concept> <concept> - <code value="application/vnd.xfdl.webform"/> - <display value="vnd.xfdl.webform"/> - <definition value="As defined by Michael Mansell"/> + <code value="application/vnd.veraison.tsm-report+cbor" /> + <display value="vnd.veraison.tsm-report+cbor" /> + <definition value="As defined by Thomas Fossati" /> </concept> <concept> - <code value="application/vnd.xmi+xml"/> - <display value="vnd.xmi+xml"/> - <definition value="As defined by Fred Waskiewicz"/> + <code value="application/vnd.veraison.tsm-report+json" /> + <display value="vnd.veraison.tsm-report+json" /> + <definition value="As defined by Thomas Fossati" /> </concept> <concept> - <code value="application/vnd.xmpie.cpkg"/> - <display value="vnd.xmpie.cpkg"/> - <definition value="As defined by Reuven Sherwin"/> + <code value="application/vnd.verifier-attestation+jwt" /> + <display value="vnd.verifier-attestation+jwt" /> + <definition value="As defined by OpenID Foundation Digital Credentials Protocols WG, and Oliver Terbu" /> </concept> <concept> - <code value="application/vnd.xmpie.dpkg"/> - <display value="vnd.xmpie.dpkg"/> - <definition value="As defined by Reuven Sherwin"/> + <code value="application/vnd.verimatrix.vcas" /> + <display value="vnd.verimatrix.vcas" /> + <definition value="As defined by Petr Peterka" /> </concept> <concept> - <code value="application/vnd.xmpie.plan"/> - <display value="vnd.xmpie.plan"/> - <definition value="As defined by Reuven Sherwin"/> + <code value="application/vnd.veritone.aion+json" /> + <display value="vnd.veritone.aion+json" /> + <definition value="As defined by Al Brown" /> </concept> <concept> - <code value="application/vnd.xmpie.ppkg"/> - <display value="vnd.xmpie.ppkg"/> - <definition value="As defined by Reuven Sherwin"/> + <code value="application/vnd.veryant.thin" /> + <display value="vnd.veryant.thin" /> + <definition value="As defined by Massimo Bertoli" /> </concept> <concept> - <code value="application/vnd.xmpie.xlim"/> - <display value="vnd.xmpie.xlim"/> - <definition value="As defined by Reuven Sherwin"/> + <code value="application/vnd.ves.encrypted" /> + <display value="vnd.ves.encrypted" /> + <definition value="As defined by Jim Zubov" /> </concept> <concept> - <code value="application/vnd.yamaha.hv-dic"/> - <display value="vnd.yamaha.hv-dic"/> - <definition value="As defined by Tomohiro Yamamoto"/> + <code value="application/vnd.vidsoft.vidconference" /> + <display value="vnd.vidsoft.vidconference" /> + <definition value="As defined by Robert Hess" /> </concept> <concept> - <code value="application/vnd.yamaha.hv-script"/> - <display value="vnd.yamaha.hv-script"/> - <definition value="As defined by Tomohiro Yamamoto"/> + <code value="application/vnd.visio" /> + <display value="vnd.visio" /> + <definition value="As defined by Troy Sandal" /> </concept> <concept> - <code value="application/vnd.yamaha.hv-voice"/> - <display value="vnd.yamaha.hv-voice"/> - <definition value="As defined by Tomohiro Yamamoto"/> + <code value="application/vnd.visionary" /> + <display value="vnd.visionary" /> + <definition value="As defined by Gayatri Aravindakumar" /> </concept> <concept> - <code value="application/vnd.yamaha.openscoreformat.osfpvg+xml"/> - <display value="vnd.yamaha.openscoreformat.osfpvg+xml"/> - <definition value="As defined by Mark Olleson"/> + <code value="application/vnd.vividence.scriptfile" /> + <display value="vnd.vividence.scriptfile" /> + <definition value="As defined by Mark Risher" /> </concept> <concept> - <code value="application/vnd.yamaha.openscoreformat"/> - <display value="vnd.yamaha.openscoreformat"/> - <definition value="As defined by Mark Olleson"/> + <code value="application/vnd.vocalshaper.vsp4" /> + <display value="vnd.vocalshaper.vsp4" /> + <definition value="As defined by Wu Chang" /> </concept> <concept> - <code value="application/vnd.yamaha.remote-setup"/> - <display value="vnd.yamaha.remote-setup"/> - <definition value="As defined by Takehiro Sukizaki"/> + <code value="application/vnd.vsf" /> + <display value="vnd.vsf" /> + <definition value="As defined by Delton Rowe" /> </concept> <concept> - <code value="application/vnd.yamaha.smaf-audio"/> - <display value="vnd.yamaha.smaf-audio"/> - <definition value="As defined by Keiichi Shinoda"/> + <code value="application/vnd.vuq" /> + <display value="vnd.vuq" /> + <definition value="As defined by Phillip Gimmi" /> </concept> <concept> - <code value="application/vnd.yamaha.smaf-phrase"/> - <display value="vnd.yamaha.smaf-phrase"/> - <definition value="As defined by Keiichi Shinoda"/> + <code value="application/vnd.wantverse" /> + <display value="vnd.wantverse" /> + <definition value="As defined by John J Kolb V" /> </concept> <concept> - <code value="application/vnd.yamaha.through-ngn"/> - <display value="vnd.yamaha.through-ngn"/> - <definition value="As defined by Takehiro Sukizaki"/> + <code value="application/vnd.wap.sic" /> + <display value="vnd.wap.sic" /> + <definition value="As defined by WAP-Forum" /> </concept> <concept> - <code value="application/vnd.yamaha.tunnel-udpencap"/> - <display value="vnd.yamaha.tunnel-udpencap"/> - <definition value="As defined by Takehiro Sukizaki"/> + <code value="application/vnd.wap.slc" /> + <display value="vnd.wap.slc" /> + <definition value="As defined by WAP-Forum" /> </concept> <concept> - <code value="application/vnd.yaoweme"/> - <display value="vnd.yaoweme"/> - <definition value="As defined by Jens Jorgensen"/> + <code value="application/vnd.wap.wbxml" /> + <display value="vnd.wap.wbxml" /> + <definition value="As defined by Peter Stark" /> </concept> <concept> - <code value="application/vnd.yellowriver-custom-menu"/> - <display value="vnd.yellowriver-custom-menu"/> - <definition value="As defined by Mr. Yellow"/> + <code value="application/vnd.wap.wmlc" /> + <display value="vnd.wap.wmlc" /> + <definition value="As defined by Peter Stark" /> </concept> <concept> - <code value="application/vnd.zul"/> - <display value="vnd.zul"/> - <definition value="As defined by Rene Grothmann"/> + <code value="application/vnd.wap.wmlscriptc" /> + <display value="vnd.wap.wmlscriptc" /> + <definition value="As defined by Peter Stark" /> </concept> <concept> - <code value="application/vnd.zzazz.deck+xml"/> - <display value="vnd.zzazz.deck+xml"/> - <definition value="As defined by Micheal Hewett"/> + <code value="application/vnd.wasmflow.wafl" /> + <display value="vnd.wasmflow.wafl" /> + <definition value="As defined by Fawad Shaikh" /> </concept> <concept> - <code value="application/voicexml+xml"/> - <display value="voicexml+xml"/> - <definition value="As defined by rfc4267"/> + <code value="application/vnd.webturbo" /> + <display value="vnd.webturbo" /> + <definition value="As defined by Yaser Rehem" /> </concept> <concept> - <code value="application/voucher-cms+json"/> - <display value="voucher-cms+json"/> - <definition value="As defined by rfc8366"/> + <code value="application/vnd.wfa.dpp" /> + <display value="vnd.wfa.dpp" /> + <definition value="As defined by Wi-Fi Alliance, and Dr. Jun Tian" /> </concept> <concept> - <code value="application/voucher-jws+json"/> - <display value="voucher-jws+json"/> - <definition value="As defined by RFC-ietf-anima-jws-voucher-16"/> + <code value="application/vnd.wfa.p2p" /> + <display value="vnd.wfa.p2p" /> + <definition value="As defined by Mick Conley" /> </concept> <concept> - <code value="application/vp"/> - <display value="vp"/> - <definition value="As defined by W3C Verifiable Credentials WG, and Ivan Herman"/> + <code value="application/vnd.wfa.wsc" /> + <display value="vnd.wfa.wsc" /> + <definition value="As defined by Wi-Fi Alliance" /> </concept> <concept> - <code value="application/vp+cose"/> - <display value="vp+cose"/> - <definition value="As defined by W3C Verifiable Credentials WG, and Ivan Herman"/> + <code value="application/vnd.windows.devicepairing" /> + <display value="vnd.windows.devicepairing" /> + <definition value="As defined by Priya Dandawate" /> </concept> <concept> - <code value="application/vp+jwt"/> - <display value="vp+jwt"/> - <definition value="As defined by W3C Verifiable Credentials WG, and Ivan Herman"/> + <code value="application/vnd.wmap" /> + <display value="vnd.wmap" /> + <definition value="As defined by Rubén Fabián Beltrán del Río Vara" /> </concept> <concept> - <code value="application/vq-rtcpxr"/> - <display value="vq-rtcpxr"/> - <definition value="As defined by rfc6035"/> + <code value="application/vnd.wmc" /> + <display value="vnd.wmc" /> + <definition value="As defined by Thomas Kjornes" /> </concept> <concept> - <code value="application/wasm"/> - <display value="wasm"/> - <definition value="As defined by W3C, and Eric Prudhommeaux"/> + <code value="application/vnd.wmf.bootstrap" /> + <display value="vnd.wmf.bootstrap" /> + <definition value="As defined by Thinh Nguyenphu, and Prakash Iyer" /> </concept> <concept> - <code value="application/watcherinfo+xml"/> - <display value="watcherinfo+xml"/> - <definition value="As defined by rfc3858"/> + <code value="application/vnd.wolfram.mathematica" /> + <display value="vnd.wolfram.mathematica" /> + <definition value="As defined by Wolfram" /> </concept> <concept> - <code value="application/webpush-options+json"/> - <display value="webpush-options+json"/> - <definition value="As defined by rfc8292"/> + <code value="application/vnd.wolfram.mathematica.package" /> + <display value="vnd.wolfram.mathematica.package" /> + <definition value="As defined by Wolfram" /> </concept> <concept> - <code value="application/whoispp-query"/> - <display value="whoispp-query"/> - <definition value="As defined by rfc2957"/> + <code value="application/vnd.wolfram.player" /> + <display value="vnd.wolfram.player" /> + <definition value="As defined by Wolfram" /> </concept> <concept> - <code value="application/whoispp-response"/> - <display value="whoispp-response"/> - <definition value="As defined by rfc2958"/> + <code value="application/vnd.wordlift" /> + <display value="vnd.wordlift" /> + <definition value="As defined by David Riccitelli" /> </concept> <concept> - <code value="application/widget"/> - <display value="widget"/> - <definition value="As defined by W3C, Steven Pemberton, and http://www.w3.org/TR/widgets/#media-type-registration-for-application/widget"/> + <code value="application/vnd.wordperfect" /> + <display value="vnd.wordperfect" /> + <definition value="As defined by Kim Scarborough" /> </concept> <concept> - <code value="application/wita"/> - <display value="wita"/> - <definition value="As defined by Larry Campbell"/> + <code value="application/vnd.wqd" /> + <display value="vnd.wqd" /> + <definition value="As defined by Jan Boström" /> </concept> <concept> - <code value="application/wordperfect5.1"/> - <display value="wordperfect5.1"/> - <definition value="As defined by Paul Lindner"/> + <code value="application/vnd.wrq-hp3000-labelled" /> + <display value="vnd.wrq-hp3000-labelled" /> + <definition value="As defined by Chris Bartram" /> </concept> <concept> - <code value="application/wsdl+xml"/> - <display value="wsdl+xml"/> - <definition value="As defined by W3C"/> + <code value="application/vnd.wt.stf" /> + <display value="vnd.wt.stf" /> + <definition value="As defined by Bill Wohler" /> </concept> <concept> - <code value="application/wspolicy+xml"/> - <display value="wspolicy+xml"/> - <definition value="As defined by W3C"/> + <code value="application/vnd.wv.csp+xml" /> + <display value="vnd.wv.csp+xml" /> + <definition value="As defined by John Ingi Ingimundarson" /> </concept> <concept> - <code value="application/x-ndjson"/> - <display value="x-ndjson"/> - <definition value="As defined by https://github.com/ndjson/ndjson-spec (not part of official IANA media-type list)"/> + <code value="application/vnd.wv.csp+wbxml" /> + <display value="vnd.wv.csp+wbxml" /> + <definition value="As defined by Matti Salmi" /> </concept> <concept> - <code value="application/x-pki-message"/> - <display value="x-pki-message"/> - <definition value="As defined by rfc8894"/> + <code value="application/vnd.wv.ssp+xml" /> + <display value="vnd.wv.ssp+xml" /> + <definition value="As defined by John Ingi Ingimundarson" /> </concept> <concept> - <code value="application/x-www-form-urlencoded"/> - <display value="x-www-form-urlencoded"/> - <definition value="As defined by WHATWG, and Anne van Kesteren"/> + <code value="application/vnd.xacml+json" /> + <display value="vnd.xacml+json" /> + <definition value="As defined by David Brossard" /> </concept> <concept> - <code value="application/x-x509-ca-cert"/> - <display value="x-x509-ca-cert"/> - <definition value="As defined by rfc8894"/> + <code value="application/vnd.xara" /> + <display value="vnd.xara" /> + <definition value="As defined by David Matthewman" /> </concept> <concept> - <code value="application/x-x509-ca-ra-cert"/> - <display value="x-x509-ca-ra-cert"/> - <definition value="As defined by rfc8894"/> + <code value="application/vnd.xarin.cpj" /> + <display value="vnd.xarin.cpj" /> + <definition value="As defined by Ben Brown" /> </concept> <concept> - <code value="application/x-x509-next-ca-cert"/> - <display value="x-x509-next-ca-cert"/> - <definition value="As defined by rfc8894"/> + <code value="application/vnd.xecrets-encrypted" /> + <display value="vnd.xecrets-encrypted" /> + <definition value="As defined by Svante Seleborg" /> </concept> <concept> - <code value="application/x400-bp"/> - <display value="x400-bp"/> - <definition value="As defined by rfc1494"/> + <code value="application/vnd.xfdl" /> + <display value="vnd.xfdl" /> + <definition value="As defined by Dave Manning" /> </concept> <concept> - <code value="application/xacml+xml"/> - <display value="xacml+xml"/> - <definition value="As defined by rfc7061"/> + <code value="application/vnd.xfdl.webform" /> + <display value="vnd.xfdl.webform" /> + <definition value="As defined by Michael Mansell" /> </concept> <concept> - <code value="application/xcap-att+xml"/> - <display value="xcap-att+xml"/> - <definition value="As defined by rfc4825"/> + <code value="application/vnd.xmi+xml" /> + <display value="vnd.xmi+xml" /> + <definition value="As defined by Fred Waskiewicz" /> </concept> <concept> - <code value="application/xcap-caps+xml"/> - <display value="xcap-caps+xml"/> - <definition value="As defined by rfc4825"/> + <code value="application/vnd.xmpie.cpkg" /> + <display value="vnd.xmpie.cpkg" /> + <definition value="As defined by Reuven Sherwin" /> </concept> <concept> - <code value="application/xcap-diff+xml"/> - <display value="xcap-diff+xml"/> - <definition value="As defined by rfc5874"/> + <code value="application/vnd.xmpie.dpkg" /> + <display value="vnd.xmpie.dpkg" /> + <definition value="As defined by Reuven Sherwin" /> </concept> <concept> - <code value="application/xcap-el+xml"/> - <display value="xcap-el+xml"/> - <definition value="As defined by rfc4825"/> + <code value="application/vnd.xmpie.plan" /> + <display value="vnd.xmpie.plan" /> + <definition value="As defined by Reuven Sherwin" /> </concept> <concept> - <code value="application/xcap-error+xml"/> - <display value="xcap-error+xml"/> - <definition value="As defined by rfc4825"/> + <code value="application/vnd.xmpie.ppkg" /> + <display value="vnd.xmpie.ppkg" /> + <definition value="As defined by Reuven Sherwin" /> </concept> <concept> - <code value="application/xcap-ns+xml"/> - <display value="xcap-ns+xml"/> - <definition value="As defined by rfc4825"/> + <code value="application/vnd.xmpie.xlim" /> + <display value="vnd.xmpie.xlim" /> + <definition value="As defined by Reuven Sherwin" /> </concept> <concept> - <code value="application/xcon-conference-info-diff+xml"/> - <display value="xcon-conference-info-diff+xml"/> - <definition value="As defined by rfc6502"/> + <code value="application/vnd.yamaha.hv-dic" /> + <display value="vnd.yamaha.hv-dic" /> + <definition value="As defined by Tomohiro Yamamoto" /> </concept> <concept> - <code value="application/xcon-conference-info+xml"/> - <display value="xcon-conference-info+xml"/> - <definition value="As defined by rfc6502"/> + <code value="application/vnd.yamaha.hv-script" /> + <display value="vnd.yamaha.hv-script" /> + <definition value="As defined by Tomohiro Yamamoto" /> </concept> <concept> - <code value="application/xenc+xml"/> - <display value="xenc+xml"/> - <definition value="As defined by Joseph Reagle, and XENC WG"/> + <code value="application/vnd.yamaha.hv-voice" /> + <display value="vnd.yamaha.hv-voice" /> + <definition value="As defined by Tomohiro Yamamoto" /> </concept> <concept> - <code value="application/xfdf"/> - <display value="xfdf"/> - <definition value="As defined by ISO-TC 171-SC 2, and Betsy Fanning"/> + <code value="application/vnd.yamaha.openscoreformat.osfpvg+xml" /> + <display value="vnd.yamaha.openscoreformat.osfpvg+xml" /> + <definition value="As defined by Mark Olleson" /> </concept> <concept> - <code value="application/xhtml+xml"/> - <display value="xhtml+xml"/> - <definition value="As defined by W3C, and Robin Berjon"/> + <code value="application/vnd.yamaha.openscoreformat" /> + <display value="vnd.yamaha.openscoreformat" /> + <definition value="As defined by Mark Olleson" /> </concept> <concept> - <code value="application/xliff+xml"/> - <display value="xliff+xml"/> - <definition value="As defined by OASIS, and Chet Ensign"/> + <code value="application/vnd.yamaha.remote-setup" /> + <display value="vnd.yamaha.remote-setup" /> + <definition value="As defined by Takehiro Sukizaki" /> </concept> <concept> - <code value="application/xml"/> - <display value="xml"/> - <definition value="As defined by rfc7303"/> + <code value="application/vnd.yamaha.smaf-audio" /> + <display value="vnd.yamaha.smaf-audio" /> + <definition value="As defined by Keiichi Shinoda" /> </concept> <concept> - <code value="application/xml-dtd"/> - <display value="xml-dtd"/> - <definition value="As defined by rfc7303"/> + <code value="application/vnd.yamaha.smaf-phrase" /> + <display value="vnd.yamaha.smaf-phrase" /> + <definition value="As defined by Keiichi Shinoda" /> </concept> <concept> - <code value="application/xml-external-parsed-entity"/> - <display value="xml-external-parsed-entity"/> - <definition value="As defined by rfc7303"/> + <code value="application/vnd.yamaha.through-ngn" /> + <display value="vnd.yamaha.through-ngn" /> + <definition value="As defined by Takehiro Sukizaki" /> </concept> <concept> - <code value="application/xml-patch+xml"/> - <display value="xml-patch+xml"/> - <definition value="As defined by rfc7351"/> + <code value="application/vnd.yamaha.tunnel-udpencap" /> + <display value="vnd.yamaha.tunnel-udpencap" /> + <definition value="As defined by Takehiro Sukizaki" /> </concept> <concept> - <code value="application/xmpp+xml"/> - <display value="xmpp+xml"/> - <definition value="As defined by rfc3923"/> + <code value="application/vnd.yaoweme" /> + <display value="vnd.yaoweme" /> + <definition value="As defined by Jens Jorgensen" /> </concept> <concept> - <code value="application/xop+xml"/> - <display value="xop+xml"/> - <definition value="As defined by Mark Nottingham"/> + <code value="application/vnd.yellowriver-custom-menu" /> + <display value="vnd.yellowriver-custom-menu" /> + <definition value="As defined by Mr. Yellow" /> </concept> <concept> - <code value="application/xslt+xml"/> - <display value="xslt+xml"/> - <definition value="As defined by W3C, and http://www.w3.org/TR/2007/REC-xslt20-20070123/#media-type-registration"/> + <code value="application/vnd.zul" /> + <display value="vnd.zul" /> + <definition value="As defined by Rene Grothmann" /> </concept> <concept> - <code value="application/xv+xml"/> - <display value="xv+xml"/> - <definition value="As defined by rfc4374"/> + <code value="application/vnd.zzazz.deck+xml" /> + <display value="vnd.zzazz.deck+xml" /> + <definition value="As defined by Micheal Hewett" /> </concept> <concept> - <code value="application/yaml"/> - <display value="yaml"/> - <definition value="As defined by https://yaml.org/spec/1.2.2/, and rfc9512"/> + <code value="application/voicexml+xml" /> + <display value="voicexml+xml" /> + <definition value="As defined by rfc4267" /> </concept> <concept> - <code value="application/yang"/> - <display value="yang"/> - <definition value="As defined by rfc6020"/> + <code value="application/voucher-cms+json" /> + <display value="voucher-cms+json" /> + <definition value="As defined by rfc8366" /> </concept> <concept> - <code value="application/yang-data+cbor"/> - <display value="yang-data+cbor"/> - <definition value="As defined by rfc9254"/> + <code value="application/voucher-jws+json" /> + <display value="voucher-jws+json" /> + <definition value="As defined by RFC-ietf-anima-jws-voucher-16" /> </concept> <concept> - <code value="application/yang-data+json"/> - <display value="yang-data+json"/> - <definition value="As defined by rfc8040"/> + <code value="application/vp" /> + <display value="vp" /> + <definition value="As defined by W3C Verifiable Credentials WG, and Ivan Herman" /> </concept> <concept> - <code value="application/yang-data+xml"/> - <display value="yang-data+xml"/> - <definition value="As defined by rfc8040"/> + <code value="application/vp+cose" /> + <display value="vp+cose" /> + <definition value="As defined by W3C Verifiable Credentials WG, and Ivan Herman" /> </concept> <concept> - <code value="application/yang-patch+json"/> - <display value="yang-patch+json"/> - <definition value="As defined by rfc8072"/> + <code value="application/vp+jwt" /> + <display value="vp+jwt" /> + <definition value="As defined by W3C Verifiable Credentials WG, and Ivan Herman" /> </concept> <concept> - <code value="application/yang-patch+xml"/> - <display value="yang-patch+xml"/> - <definition value="As defined by rfc8072"/> + <code value="application/vq-rtcpxr" /> + <display value="vq-rtcpxr" /> + <definition value="As defined by rfc6035" /> </concept> <concept> - <code value="application/yang-sid+json"/> - <display value="yang-sid+json"/> - <definition value="As defined by rfc9595"/> + <code value="application/wasm" /> + <display value="wasm" /> + <definition value="As defined by W3C, and Eric Prudhommeaux" /> </concept> <concept> - <code value="application/yin+xml"/> - <display value="yin+xml"/> - <definition value="As defined by rfc6020"/> + <code value="application/watcherinfo+xml" /> + <display value="watcherinfo+xml" /> + <definition value="As defined by rfc3858" /> </concept> <concept> - <code value="application/zip"/> - <display value="zip"/> - <definition value="As defined by Paul Lindner"/> + <code value="application/webpush-options+json" /> + <display value="webpush-options+json" /> + <definition value="As defined by rfc8292" /> </concept> <concept> - <code value="application/zlib"/> - <display value="zlib"/> - <definition value="As defined by rfc6713"/> + <code value="application/whoispp-query" /> + <display value="whoispp-query" /> + <definition value="As defined by rfc2957" /> </concept> <concept> - <code value="application/zstd"/> - <display value="zstd"/> - <definition value="As defined by rfc8878"/> + <code value="application/whoispp-response" /> + <display value="whoispp-response" /> + <definition value="As defined by rfc2958" /> </concept> <concept> - <code value="audio/1d-interleaved-parityfec"/> - <display value="1d-interleaved-parityfec"/> - <definition value="As defined by rfc6015"/> + <code value="application/widget" /> + <display value="widget" /> + <definition + value="As defined by W3C, Steven Pemberton, and http://www.w3.org/TR/widgets/#media-type-registration-for-application/widget" /> </concept> <concept> - <code value="audio/32kadpcm"/> - <display value="32kadpcm"/> - <definition value="As defined by rfc3802, and rfc2421"/> + <code value="application/wita" /> + <display value="wita" /> + <definition value="As defined by Larry Campbell" /> </concept> <concept> - <code value="audio/3gpp"/> - <display value="3gpp"/> - <definition value="As defined by rfc3839, and rfc6381"/> + <code value="application/wordperfect5.1" /> + <display value="wordperfect5.1" /> + <definition value="As defined by Paul Lindner" /> </concept> <concept> - <code value="audio/3gpp2"/> - <display value="3gpp2"/> - <definition value="As defined by rfc4393, and rfc6381"/> + <code value="application/wsdl+xml" /> + <display value="wsdl+xml" /> + <definition value="As defined by W3C" /> </concept> <concept> - <code value="audio/aac"/> - <display value="aac"/> - <definition value="As defined by ISO-IEC JTC 1, and Max Neuendorf"/> + <code value="application/wspolicy+xml" /> + <display value="wspolicy+xml" /> + <definition value="As defined by W3C" /> </concept> <concept> - <code value="audio/ac3"/> - <display value="ac3"/> - <definition value="As defined by rfc4184"/> + <code value="application/x-ndjson" /> + <display value="x-ndjson" /> + <definition value="As defined by https://github.com/ndjson/ndjson-spec (not part of official IANA media-type list)" /> </concept> <concept> - <code value="audio/AMR"/> - <display value="AMR"/> - <definition value="As defined by rfc4867"/> + <code value="application/x-pki-message" /> + <display value="x-pki-message" /> + <definition value="As defined by rfc8894" /> </concept> <concept> - <code value="audio/AMR-WB"/> - <display value="AMR-WB"/> - <definition value="As defined by rfc4867"/> + <code value="application/x-www-form-urlencoded" /> + <display value="x-www-form-urlencoded" /> + <definition value="As defined by WHATWG, and Anne van Kesteren" /> </concept> <concept> - <code value="audio/amr-wb+"/> - <display value="amr-wb+"/> - <definition value="As defined by rfc4352"/> + <code value="application/x-x509-ca-cert" /> + <display value="x-x509-ca-cert" /> + <definition value="As defined by rfc8894" /> </concept> <concept> - <code value="audio/aptx"/> - <display value="aptx"/> - <definition value="As defined by rfc7310"/> + <code value="application/x-x509-ca-ra-cert" /> + <display value="x-x509-ca-ra-cert" /> + <definition value="As defined by rfc8894" /> </concept> <concept> - <code value="audio/asc"/> - <display value="asc"/> - <definition value="As defined by rfc6295"/> + <code value="application/x-x509-next-ca-cert" /> + <display value="x-x509-next-ca-cert" /> + <definition value="As defined by rfc8894" /> </concept> <concept> - <code value="audio/ATRAC-ADVANCED-LOSSLESS"/> - <display value="ATRAC-ADVANCED-LOSSLESS"/> - <definition value="As defined by rfc5584"/> + <code value="application/x400-bp" /> + <display value="x400-bp" /> + <definition value="As defined by rfc1494" /> </concept> <concept> - <code value="audio/ATRAC-X"/> - <display value="ATRAC-X"/> - <definition value="As defined by rfc5584"/> + <code value="application/xacml+xml" /> + <display value="xacml+xml" /> + <definition value="As defined by rfc7061" /> </concept> <concept> - <code value="audio/ATRAC3"/> - <display value="ATRAC3"/> - <definition value="As defined by rfc5584"/> + <code value="application/xcap-att+xml" /> + <display value="xcap-att+xml" /> + <definition value="As defined by rfc4825" /> </concept> <concept> - <code value="audio/basic"/> - <display value="basic"/> - <definition value="As defined by rfc2045, and rfc2046"/> + <code value="application/xcap-caps+xml" /> + <display value="xcap-caps+xml" /> + <definition value="As defined by rfc4825" /> </concept> <concept> - <code value="audio/BV16"/> - <display value="BV16"/> - <definition value="As defined by rfc4298"/> + <code value="application/xcap-diff+xml" /> + <display value="xcap-diff+xml" /> + <definition value="As defined by rfc5874" /> </concept> <concept> - <code value="audio/BV32"/> - <display value="BV32"/> - <definition value="As defined by rfc4298"/> + <code value="application/xcap-el+xml" /> + <display value="xcap-el+xml" /> + <definition value="As defined by rfc4825" /> </concept> <concept> - <code value="audio/clearmode"/> - <display value="clearmode"/> - <definition value="As defined by rfc4040"/> + <code value="application/xcap-error+xml" /> + <display value="xcap-error+xml" /> + <definition value="As defined by rfc4825" /> </concept> <concept> - <code value="audio/CN"/> - <display value="CN"/> - <definition value="As defined by rfc3389"/> + <code value="application/xcap-ns+xml" /> + <display value="xcap-ns+xml" /> + <definition value="As defined by rfc4825" /> </concept> <concept> - <code value="audio/DAT12"/> - <display value="DAT12"/> - <definition value="As defined by rfc3190"/> + <code value="application/xcon-conference-info-diff+xml" /> + <display value="xcon-conference-info-diff+xml" /> + <definition value="As defined by rfc6502" /> </concept> <concept> - <code value="audio/dls"/> - <display value="dls"/> - <definition value="As defined by rfc4613"/> + <code value="application/xcon-conference-info+xml" /> + <display value="xcon-conference-info+xml" /> + <definition value="As defined by rfc6502" /> </concept> <concept> - <code value="audio/dsr-es201108"/> - <display value="dsr-es201108"/> - <definition value="As defined by rfc3557"/> + <code value="application/xenc+xml" /> + <display value="xenc+xml" /> + <definition value="As defined by Joseph Reagle, and XENC WG" /> </concept> <concept> - <code value="audio/dsr-es202050"/> - <display value="dsr-es202050"/> - <definition value="As defined by rfc4060"/> + <code value="application/xfdf" /> + <display value="xfdf" /> + <definition value="As defined by ISO-TC 171-SC 2, and Betsy Fanning" /> </concept> <concept> - <code value="audio/dsr-es202211"/> - <display value="dsr-es202211"/> - <definition value="As defined by rfc4060"/> + <code value="application/xhtml+xml" /> + <display value="xhtml+xml" /> + <definition value="As defined by W3C, and Robin Berjon" /> </concept> <concept> - <code value="audio/dsr-es202212"/> - <display value="dsr-es202212"/> - <definition value="As defined by rfc4060"/> + <code value="application/xliff+xml" /> + <display value="xliff+xml" /> + <definition value="As defined by OASIS, and Chet Ensign" /> </concept> <concept> - <code value="audio/DV"/> - <display value="DV"/> - <definition value="As defined by rfc6469"/> + <code value="application/xml" /> + <display value="xml" /> + <definition value="As defined by rfc7303" /> </concept> <concept> - <code value="audio/DVI4"/> - <display value="DVI4"/> - <definition value="As defined by rfc4856"/> + <code value="application/xml-dtd" /> + <display value="xml-dtd" /> + <definition value="As defined by rfc7303" /> </concept> <concept> - <code value="audio/eac3"/> - <display value="eac3"/> - <definition value="As defined by rfc4598"/> + <code value="application/xml-external-parsed-entity" /> + <display value="xml-external-parsed-entity" /> + <definition value="As defined by rfc7303" /> </concept> <concept> - <code value="audio/encaprtp"/> - <display value="encaprtp"/> - <definition value="As defined by rfc6849"/> + <code value="application/xml-patch+xml" /> + <display value="xml-patch+xml" /> + <definition value="As defined by rfc7351" /> </concept> <concept> - <code value="audio/EVRC"/> - <display value="EVRC"/> - <definition value="As defined by rfc4788"/> + <code value="application/xmpp+xml" /> + <display value="xmpp+xml" /> + <definition value="As defined by rfc3923" /> </concept> <concept> - <code value="audio/EVRC-QCP"/> - <display value="EVRC-QCP"/> - <definition value="As defined by rfc3625"/> + <code value="application/xop+xml" /> + <display value="xop+xml" /> + <definition value="As defined by Mark Nottingham" /> </concept> <concept> - <code value="audio/EVRC0"/> - <display value="EVRC0"/> - <definition value="As defined by rfc4788"/> + <code value="application/xslt+xml" /> + <display value="xslt+xml" /> + <definition value="As defined by W3C, and http://www.w3.org/TR/2007/REC-xslt20-20070123/#media-type-registration" /> </concept> <concept> - <code value="audio/EVRC1"/> - <display value="EVRC1"/> - <definition value="As defined by rfc4788"/> + <code value="application/xv+xml" /> + <display value="xv+xml" /> + <definition value="As defined by rfc4374" /> </concept> <concept> - <code value="audio/EVRCB"/> - <display value="EVRCB"/> - <definition value="As defined by rfc5188"/> + <code value="application/yaml" /> + <display value="yaml" /> + <definition value="As defined by https://yaml.org/spec/1.2.2/, and rfc9512" /> </concept> <concept> - <code value="audio/EVRCB0"/> - <display value="EVRCB0"/> - <definition value="As defined by rfc5188"/> + <code value="application/yang" /> + <display value="yang" /> + <definition value="As defined by rfc6020" /> </concept> <concept> - <code value="audio/EVRCB1"/> - <display value="EVRCB1"/> - <definition value="As defined by rfc4788"/> + <code value="application/yang-data+cbor" /> + <display value="yang-data+cbor" /> + <definition value="As defined by rfc9254" /> </concept> <concept> - <code value="audio/EVRCNW"/> - <display value="EVRCNW"/> - <definition value="As defined by rfc6884"/> + <code value="application/yang-data+json" /> + <display value="yang-data+json" /> + <definition value="As defined by rfc8040" /> </concept> <concept> - <code value="audio/EVRCNW0"/> - <display value="EVRCNW0"/> - <definition value="As defined by rfc6884"/> + <code value="application/yang-data+xml" /> + <display value="yang-data+xml" /> + <definition value="As defined by rfc8040" /> </concept> <concept> - <code value="audio/EVRCNW1"/> - <display value="EVRCNW1"/> - <definition value="As defined by rfc6884"/> + <code value="application/yang-patch+json" /> + <display value="yang-patch+json" /> + <definition value="As defined by rfc8072" /> </concept> <concept> - <code value="audio/EVRCWB"/> - <display value="EVRCWB"/> - <definition value="As defined by rfc5188"/> + <code value="application/yang-patch+xml" /> + <display value="yang-patch+xml" /> + <definition value="As defined by rfc8072" /> </concept> <concept> - <code value="audio/EVRCWB0"/> - <display value="EVRCWB0"/> - <definition value="As defined by rfc5188"/> + <code value="application/yang-sid+json" /> + <display value="yang-sid+json" /> + <definition value="As defined by rfc9595" /> </concept> <concept> - <code value="audio/EVRCWB1"/> - <display value="EVRCWB1"/> - <definition value="As defined by rfc5188"/> + <code value="application/yin+xml" /> + <display value="yin+xml" /> + <definition value="As defined by rfc6020" /> </concept> <concept> - <code value="audio/EVS"/> - <display value="EVS"/> - <definition value="As defined by 3GPP, and Kyunghun Jung"/> + <code value="application/zip" /> + <display value="zip" /> + <definition value="As defined by Paul Lindner" /> </concept> <concept> - <code value="audio/example"/> - <display value="example"/> - <definition value="As defined by rfc4735"/> + <code value="application/zlib" /> + <display value="zlib" /> + <definition value="As defined by rfc6713" /> </concept> <concept> - <code value="audio/flac"/> - <display value="flac"/> - <definition value="As defined by rfc9639"/> + <code value="application/zstd" /> + <display value="zstd" /> + <definition value="As defined by rfc8878" /> </concept> <concept> - <code value="audio/flexfec"/> - <display value="flexfec"/> - <definition value="As defined by rfc8627"/> + <code value="audio/1d-interleaved-parityfec" /> + <display value="1d-interleaved-parityfec" /> + <definition value="As defined by rfc6015" /> </concept> <concept> - <code value="audio/fwdred"/> - <display value="fwdred"/> - <definition value="As defined by rfc6354"/> + <code value="audio/32kadpcm" /> + <display value="32kadpcm" /> + <definition value="As defined by rfc3802, and rfc2421" /> </concept> <concept> - <code value="audio/G711-0"/> - <display value="G711-0"/> - <definition value="As defined by rfc7655"/> + <code value="audio/3gpp" /> + <display value="3gpp" /> + <definition value="As defined by rfc3839, and rfc6381" /> </concept> <concept> - <code value="audio/G719"/> - <display value="G719"/> - <definition value="As defined by rfc5404, and 3245"/> + <code value="audio/3gpp2" /> + <display value="3gpp2" /> + <definition value="As defined by rfc4393, and rfc6381" /> </concept> <concept> - <code value="audio/G7221"/> - <display value="G7221"/> - <definition value="As defined by rfc5577"/> + <code value="audio/aac" /> + <display value="aac" /> + <definition value="As defined by ISO-IEC JTC 1, and Max Neuendorf" /> </concept> <concept> - <code value="audio/G722"/> - <display value="G722"/> - <definition value="As defined by rfc4856"/> + <code value="audio/ac3" /> + <display value="ac3" /> + <definition value="As defined by rfc4184" /> </concept> <concept> - <code value="audio/G723"/> - <display value="G723"/> - <definition value="As defined by rfc4856"/> + <code value="audio/AMR" /> + <display value="AMR" /> + <definition value="As defined by rfc4867" /> </concept> <concept> - <code value="audio/G726-16"/> - <display value="G726-16"/> - <definition value="As defined by rfc4856"/> + <code value="audio/AMR-WB" /> + <display value="AMR-WB" /> + <definition value="As defined by rfc4867" /> </concept> <concept> - <code value="audio/G726-24"/> - <display value="G726-24"/> - <definition value="As defined by rfc4856"/> + <code value="audio/amr-wb+" /> + <display value="amr-wb+" /> + <definition value="As defined by rfc4352" /> </concept> <concept> - <code value="audio/G726-32"/> - <display value="G726-32"/> - <definition value="As defined by rfc4856"/> + <code value="audio/aptx" /> + <display value="aptx" /> + <definition value="As defined by rfc7310" /> </concept> <concept> - <code value="audio/G726-40"/> - <display value="G726-40"/> - <definition value="As defined by rfc4856"/> + <code value="audio/asc" /> + <display value="asc" /> + <definition value="As defined by rfc6295" /> </concept> <concept> - <code value="audio/G728"/> - <display value="G728"/> - <definition value="As defined by rfc4856"/> + <code value="audio/ATRAC-ADVANCED-LOSSLESS" /> + <display value="ATRAC-ADVANCED-LOSSLESS" /> + <definition value="As defined by rfc5584" /> </concept> <concept> - <code value="audio/G729"/> - <display value="G729"/> - <definition value="As defined by rfc4856"/> + <code value="audio/ATRAC-X" /> + <display value="ATRAC-X" /> + <definition value="As defined by rfc5584" /> </concept> <concept> - <code value="audio/G7291"/> - <display value="G7291"/> - <definition value="As defined by rfc4749, and rfc5459"/> + <code value="audio/ATRAC3" /> + <display value="ATRAC3" /> + <definition value="As defined by rfc5584" /> </concept> <concept> - <code value="audio/G729D"/> - <display value="G729D"/> - <definition value="As defined by rfc4856"/> + <code value="audio/basic" /> + <display value="basic" /> + <definition value="As defined by rfc2045, and rfc2046" /> </concept> <concept> - <code value="audio/G729E"/> - <display value="G729E"/> - <definition value="As defined by rfc4856"/> + <code value="audio/BV16" /> + <display value="BV16" /> + <definition value="As defined by rfc4298" /> </concept> <concept> - <code value="audio/GSM"/> - <display value="GSM"/> - <definition value="As defined by rfc4856"/> + <code value="audio/BV32" /> + <display value="BV32" /> + <definition value="As defined by rfc4298" /> </concept> <concept> - <code value="audio/GSM-EFR"/> - <display value="GSM-EFR"/> - <definition value="As defined by rfc4856"/> + <code value="audio/clearmode" /> + <display value="clearmode" /> + <definition value="As defined by rfc4040" /> </concept> <concept> - <code value="audio/GSM-HR-08"/> - <display value="GSM-HR-08"/> - <definition value="As defined by rfc5993"/> + <code value="audio/CN" /> + <display value="CN" /> + <definition value="As defined by rfc3389" /> </concept> <concept> - <code value="audio/iLBC"/> - <display value="iLBC"/> - <definition value="As defined by rfc3952"/> + <code value="audio/DAT12" /> + <display value="DAT12" /> + <definition value="As defined by rfc3190" /> </concept> <concept> - <code value="audio/ip-mr_v2.5"/> - <display value="ip-mr_v2.5"/> - <definition value="As defined by rfc6262"/> + <code value="audio/dls" /> + <display value="dls" /> + <definition value="As defined by rfc4613" /> </concept> <concept> - <code value="audio/L8"/> - <display value="L8"/> - <definition value="As defined by rfc4856"/> + <code value="audio/dsr-es201108" /> + <display value="dsr-es201108" /> + <definition value="As defined by rfc3557" /> </concept> <concept> - <code value="audio/L16"/> - <display value="L16"/> - <definition value="As defined by rfc4856"/> + <code value="audio/dsr-es202050" /> + <display value="dsr-es202050" /> + <definition value="As defined by rfc4060" /> </concept> <concept> - <code value="audio/L20"/> - <display value="L20"/> - <definition value="As defined by rfc3190"/> + <code value="audio/dsr-es202211" /> + <display value="dsr-es202211" /> + <definition value="As defined by rfc4060" /> </concept> <concept> - <code value="audio/L24"/> - <display value="L24"/> - <definition value="As defined by rfc3190"/> + <code value="audio/dsr-es202212" /> + <display value="dsr-es202212" /> + <definition value="As defined by rfc4060" /> </concept> <concept> - <code value="audio/LPC"/> - <display value="LPC"/> - <definition value="As defined by rfc4856"/> + <code value="audio/DV" /> + <display value="DV" /> + <definition value="As defined by rfc6469" /> </concept> <concept> - <code value="audio/matroska"/> - <display value="matroska"/> - <definition value="As defined by rfc9559"/> + <code value="audio/DVI4" /> + <display value="DVI4" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="audio/MELP"/> - <display value="MELP"/> - <definition value="As defined by rfc8130"/> + <code value="audio/eac3" /> + <display value="eac3" /> + <definition value="As defined by rfc4598" /> </concept> <concept> - <code value="audio/MELP600"/> - <display value="MELP600"/> - <definition value="As defined by rfc8130"/> + <code value="audio/encaprtp" /> + <display value="encaprtp" /> + <definition value="As defined by rfc6849" /> </concept> <concept> - <code value="audio/MELP1200"/> - <display value="MELP1200"/> - <definition value="As defined by rfc8130"/> + <code value="audio/EVRC" /> + <display value="EVRC" /> + <definition value="As defined by rfc4788" /> </concept> <concept> - <code value="audio/MELP2400"/> - <display value="MELP2400"/> - <definition value="As defined by rfc8130"/> + <code value="audio/EVRC-QCP" /> + <display value="EVRC-QCP" /> + <definition value="As defined by rfc3625" /> </concept> <concept> - <code value="audio/mhas"/> - <display value="mhas"/> - <definition value="As defined by ISO-IEC JTC 1, Nils Peters, and Ingo Hofmann"/> + <code value="audio/EVRC0" /> + <display value="EVRC0" /> + <definition value="As defined by rfc4788" /> </concept> <concept> - <code value="audio/midi-clip"/> - <display value="midi-clip"/> - <definition value="As defined by MIDI Association, and Benjamin Israel"/> + <code value="audio/EVRC1" /> + <display value="EVRC1" /> + <definition value="As defined by rfc4788" /> </concept> <concept> - <code value="audio/mobile-xmf"/> - <display value="mobile-xmf"/> - <definition value="As defined by rfc4723"/> + <code value="audio/EVRCB" /> + <display value="EVRCB" /> + <definition value="As defined by rfc5188" /> </concept> <concept> - <code value="audio/MPA"/> - <display value="MPA"/> - <definition value="As defined by rfc3555"/> + <code value="audio/EVRCB0" /> + <display value="EVRCB0" /> + <definition value="As defined by rfc5188" /> </concept> <concept> - <code value="audio/mp4"/> - <display value="mp4"/> - <definition value="As defined by rfc4337, and rfc6381"/> + <code value="audio/EVRCB1" /> + <display value="EVRCB1" /> + <definition value="As defined by rfc4788" /> </concept> <concept> - <code value="audio/MP4A-LATM"/> - <display value="MP4A-LATM"/> - <definition value="As defined by rfc6416"/> + <code value="audio/EVRCNW" /> + <display value="EVRCNW" /> + <definition value="As defined by rfc6884" /> </concept> <concept> - <code value="audio/mpa-robust"/> - <display value="mpa-robust"/> - <definition value="As defined by rfc5219"/> + <code value="audio/EVRCNW0" /> + <display value="EVRCNW0" /> + <definition value="As defined by rfc6884" /> </concept> <concept> - <code value="audio/mpeg"/> - <display value="mpeg"/> - <definition value="As defined by rfc3003"/> + <code value="audio/EVRCNW1" /> + <display value="EVRCNW1" /> + <definition value="As defined by rfc6884" /> </concept> <concept> - <code value="audio/mpeg4-generic"/> - <display value="mpeg4-generic"/> - <definition value="As defined by rfc3640, rfc5691, and rfc6295"/> + <code value="audio/EVRCWB" /> + <display value="EVRCWB" /> + <definition value="As defined by rfc5188" /> </concept> <concept> - <code value="audio/ogg"/> - <display value="ogg"/> - <definition value="As defined by rfc5334, and rfc7845"/> + <code value="audio/EVRCWB0" /> + <display value="EVRCWB0" /> + <definition value="As defined by rfc5188" /> </concept> <concept> - <code value="audio/opus"/> - <display value="opus"/> - <definition value="As defined by rfc7587"/> + <code value="audio/EVRCWB1" /> + <display value="EVRCWB1" /> + <definition value="As defined by rfc5188" /> </concept> <concept> - <code value="audio/parityfec"/> - <display value="parityfec"/> - <definition value="As defined by rfc3009"/> + <code value="audio/EVS" /> + <display value="EVS" /> + <definition value="As defined by 3GPP, and Kyunghun Jung" /> </concept> <concept> - <code value="audio/PCMA"/> - <display value="PCMA"/> - <definition value="As defined by rfc4856"/> + <code value="audio/example" /> + <display value="example" /> + <definition value="As defined by rfc4735" /> </concept> <concept> - <code value="audio/PCMA-WB"/> - <display value="PCMA-WB"/> - <definition value="As defined by rfc5391"/> + <code value="audio/flac" /> + <display value="flac" /> + <definition value="As defined by rfc9639" /> </concept> <concept> - <code value="audio/PCMU"/> - <display value="PCMU"/> - <definition value="As defined by rfc4856"/> + <code value="audio/flexfec" /> + <display value="flexfec" /> + <definition value="As defined by rfc8627" /> </concept> <concept> - <code value="audio/PCMU-WB"/> - <display value="PCMU-WB"/> - <definition value="As defined by rfc5391"/> + <code value="audio/fwdred" /> + <display value="fwdred" /> + <definition value="As defined by rfc6354" /> </concept> <concept> - <code value="audio/prs.sid"/> - <display value="prs.sid"/> - <definition value="As defined by Linus Walleij"/> + <code value="audio/G711-0" /> + <display value="G711-0" /> + <definition value="As defined by rfc7655" /> </concept> <concept> - <code value="audio/QCELP"/> - <display value="QCELP"/> - <definition value="As defined by rfc3555, and rfc3625"/> + <code value="audio/G719" /> + <display value="G719" /> + <definition value="As defined by rfc5404, and 3245" /> </concept> <concept> - <code value="audio/raptorfec"/> - <display value="raptorfec"/> - <definition value="As defined by rfc6682"/> + <code value="audio/G7221" /> + <display value="G7221" /> + <definition value="As defined by rfc5577" /> </concept> <concept> - <code value="audio/RED"/> - <display value="RED"/> - <definition value="As defined by rfc3555"/> + <code value="audio/G722" /> + <display value="G722" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="audio/rtp-enc-aescm128"/> - <display value="rtp-enc-aescm128"/> - <definition value="As defined by 3GPP"/> + <code value="audio/G723" /> + <display value="G723" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="audio/rtploopback"/> - <display value="rtploopback"/> - <definition value="As defined by rfc6849"/> + <code value="audio/G726-16" /> + <display value="G726-16" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="audio/rtp-midi"/> - <display value="rtp-midi"/> - <definition value="As defined by rfc6295"/> + <code value="audio/G726-24" /> + <display value="G726-24" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="audio/rtx"/> - <display value="rtx"/> - <definition value="As defined by rfc4588"/> + <code value="audio/G726-32" /> + <display value="G726-32" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="audio/scip"/> - <display value="scip"/> - <definition value="As defined by rfc9607"/> + <code value="audio/G726-40" /> + <display value="G726-40" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="audio/SMV"/> - <display value="SMV"/> - <definition value="As defined by rfc3558"/> + <code value="audio/G728" /> + <display value="G728" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="audio/SMV0"/> - <display value="SMV0"/> - <definition value="As defined by rfc3558"/> + <code value="audio/G729" /> + <display value="G729" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="audio/SMV-QCP"/> - <display value="SMV-QCP"/> - <definition value="As defined by rfc3625"/> + <code value="audio/G7291" /> + <display value="G7291" /> + <definition value="As defined by rfc4749, and rfc5459" /> </concept> <concept> - <code value="audio/sofa"/> - <display value="sofa"/> - <definition value="As defined by AES, and Piotr Majdak"/> + <code value="audio/G729D" /> + <display value="G729D" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="audio/sp-midi"/> - <display value="sp-midi"/> - <definition value="As defined by Athan Billias, and MIDI Association"/> + <code value="audio/G729E" /> + <display value="G729E" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="audio/speex"/> - <display value="speex"/> - <definition value="As defined by rfc5574"/> + <code value="audio/GSM" /> + <display value="GSM" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="audio/t140c"/> - <display value="t140c"/> - <definition value="As defined by rfc4351"/> + <code value="audio/GSM-EFR" /> + <display value="GSM-EFR" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="audio/t38"/> - <display value="t38"/> - <definition value="As defined by rfc4612"/> + <code value="audio/GSM-HR-08" /> + <display value="GSM-HR-08" /> + <definition value="As defined by rfc5993" /> </concept> <concept> - <code value="audio/telephone-event"/> - <display value="telephone-event"/> - <definition value="As defined by rfc4733"/> + <code value="audio/iLBC" /> + <display value="iLBC" /> + <definition value="As defined by rfc3952" /> </concept> <concept> - <code value="audio/TETRA_ACELP"/> - <display value="TETRA_ACELP"/> - <definition value="As defined by ETSI, and Miguel Angel Reina Ortega"/> + <code value="audio/ip-mr_v2.5" /> + <display value="ip-mr_v2.5" /> + <definition value="As defined by rfc6262" /> </concept> <concept> - <code value="audio/TETRA_ACELP_BB"/> - <display value="TETRA_ACELP_BB"/> - <definition value="As defined by ETSI, and Miguel Angel Reina Ortega"/> + <code value="audio/L8" /> + <display value="L8" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="audio/tone"/> - <display value="tone"/> - <definition value="As defined by rfc4733"/> + <code value="audio/L16" /> + <display value="L16" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="audio/TSVCIS"/> - <display value="TSVCIS"/> - <definition value="As defined by rfc8817"/> + <code value="audio/L20" /> + <display value="L20" /> + <definition value="As defined by rfc3190" /> </concept> <concept> - <code value="audio/UEMCLIP"/> - <display value="UEMCLIP"/> - <definition value="As defined by rfc5686"/> + <code value="audio/L24" /> + <display value="L24" /> + <definition value="As defined by rfc3190" /> </concept> <concept> - <code value="audio/ulpfec"/> - <display value="ulpfec"/> - <definition value="As defined by rfc5109"/> + <code value="audio/LPC" /> + <display value="LPC" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="audio/usac"/> - <display value="usac"/> - <definition value="As defined by ISO-IEC JTC 1, and Max Neuendorf"/> + <code value="audio/matroska" /> + <display value="matroska" /> + <definition value="As defined by rfc9559" /> </concept> <concept> - <code value="audio/VDVI"/> - <display value="VDVI"/> - <definition value="As defined by rfc4856"/> + <code value="audio/MELP" /> + <display value="MELP" /> + <definition value="As defined by rfc8130" /> </concept> <concept> - <code value="audio/VMR-WB"/> - <display value="VMR-WB"/> - <definition value="As defined by rfc4348, and rfc4424"/> + <code value="audio/MELP600" /> + <display value="MELP600" /> + <definition value="As defined by rfc8130" /> </concept> <concept> - <code value="audio/vnd.3gpp.iufp"/> - <display value="vnd.3gpp.iufp"/> - <definition value="As defined by Thomas Belling"/> + <code value="audio/MELP1200" /> + <display value="MELP1200" /> + <definition value="As defined by rfc8130" /> </concept> <concept> - <code value="audio/vnd.4SB"/> - <display value="vnd.4SB"/> - <definition value="As defined by Serge De Jaham"/> + <code value="audio/MELP2400" /> + <display value="MELP2400" /> + <definition value="As defined by rfc8130" /> </concept> <concept> - <code value="audio/vnd.audiokoz"/> - <display value="vnd.audiokoz"/> - <definition value="As defined by Vicki DeBarros"/> + <code value="audio/mhas" /> + <display value="mhas" /> + <definition value="As defined by ISO-IEC JTC 1, Nils Peters, and Ingo Hofmann" /> </concept> <concept> - <code value="audio/vnd.CELP"/> - <display value="vnd.CELP"/> - <definition value="As defined by Serge De Jaham"/> + <code value="audio/midi-clip" /> + <display value="midi-clip" /> + <definition value="As defined by MIDI Association, and Benjamin Israel" /> </concept> <concept> - <code value="audio/vnd.cisco.nse"/> - <display value="vnd.cisco.nse"/> - <definition value="As defined by Rajesh Kumar"/> + <code value="audio/mobile-xmf" /> + <display value="mobile-xmf" /> + <definition value="As defined by rfc4723" /> </concept> <concept> - <code value="audio/vnd.cmles.radio-events"/> - <display value="vnd.cmles.radio-events"/> - <definition value="As defined by Jean-Philippe Goulet"/> + <code value="audio/MPA" /> + <display value="MPA" /> + <definition value="As defined by rfc3555" /> </concept> <concept> - <code value="audio/vnd.cns.anp1"/> - <display value="vnd.cns.anp1"/> - <definition value="As defined by Ann McLaughlin"/> + <code value="audio/mp4" /> + <display value="mp4" /> + <definition value="As defined by rfc4337, and rfc6381" /> </concept> <concept> - <code value="audio/vnd.cns.inf1"/> - <display value="vnd.cns.inf1"/> - <definition value="As defined by Ann McLaughlin"/> + <code value="audio/MP4A-LATM" /> + <display value="MP4A-LATM" /> + <definition value="As defined by rfc6416" /> </concept> <concept> - <code value="audio/vnd.dece.audio"/> - <display value="vnd.dece.audio"/> - <definition value="As defined by Michael A Dolan"/> + <code value="audio/mpa-robust" /> + <display value="mpa-robust" /> + <definition value="As defined by rfc5219" /> </concept> <concept> - <code value="audio/vnd.digital-winds"/> - <display value="vnd.digital-winds"/> - <definition value="As defined by Armands Strazds"/> + <code value="audio/mpeg" /> + <display value="mpeg" /> + <definition value="As defined by rfc3003" /> </concept> <concept> - <code value="audio/vnd.dlna.adts"/> - <display value="vnd.dlna.adts"/> - <definition value="As defined by Edwin Heredia"/> + <code value="audio/mpeg4-generic" /> + <display value="mpeg4-generic" /> + <definition value="As defined by rfc3640, rfc5691, and rfc6295" /> </concept> <concept> - <code value="audio/vnd.dolby.heaac.1"/> - <display value="vnd.dolby.heaac.1"/> - <definition value="As defined by Steve Hattersley"/> + <code value="audio/ogg" /> + <display value="ogg" /> + <definition value="As defined by rfc5334, and rfc7845" /> </concept> <concept> - <code value="audio/vnd.dolby.heaac.2"/> - <display value="vnd.dolby.heaac.2"/> - <definition value="As defined by Steve Hattersley"/> + <code value="audio/opus" /> + <display value="opus" /> + <definition value="As defined by rfc7587" /> </concept> <concept> - <code value="audio/vnd.dolby.mlp"/> - <display value="vnd.dolby.mlp"/> - <definition value="As defined by Mike Ward"/> + <code value="audio/parityfec" /> + <display value="parityfec" /> + <definition value="As defined by rfc3009" /> </concept> <concept> - <code value="audio/vnd.dolby.mps"/> - <display value="vnd.dolby.mps"/> - <definition value="As defined by Steve Hattersley"/> + <code value="audio/PCMA" /> + <display value="PCMA" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="audio/vnd.dolby.pl2"/> - <display value="vnd.dolby.pl2"/> - <definition value="As defined by Steve Hattersley"/> + <code value="audio/PCMA-WB" /> + <display value="PCMA-WB" /> + <definition value="As defined by rfc5391" /> </concept> <concept> - <code value="audio/vnd.dolby.pl2x"/> - <display value="vnd.dolby.pl2x"/> - <definition value="As defined by Steve Hattersley"/> + <code value="audio/PCMU" /> + <display value="PCMU" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="audio/vnd.dolby.pl2z"/> - <display value="vnd.dolby.pl2z"/> - <definition value="As defined by Steve Hattersley"/> + <code value="audio/PCMU-WB" /> + <display value="PCMU-WB" /> + <definition value="As defined by rfc5391" /> </concept> <concept> - <code value="audio/vnd.dolby.pulse.1"/> - <display value="vnd.dolby.pulse.1"/> - <definition value="As defined by Steve Hattersley"/> + <code value="audio/prs.sid" /> + <display value="prs.sid" /> + <definition value="As defined by Linus Walleij" /> </concept> <concept> - <code value="audio/vnd.dra"/> - <display value="vnd.dra"/> - <definition value="As defined by Jiang Tian"/> + <code value="audio/QCELP" /> + <display value="QCELP" /> + <definition value="As defined by rfc3555, and rfc3625" /> </concept> <concept> - <code value="audio/vnd.dts"/> - <display value="vnd.dts"/> - <definition value="As defined by William Zou"/> + <code value="audio/raptorfec" /> + <display value="raptorfec" /> + <definition value="As defined by rfc6682" /> </concept> <concept> - <code value="audio/vnd.dts.hd"/> - <display value="vnd.dts.hd"/> - <definition value="As defined by William Zou"/> + <code value="audio/RED" /> + <display value="RED" /> + <definition value="As defined by rfc3555" /> </concept> <concept> - <code value="audio/vnd.dts.uhd"/> - <display value="vnd.dts.uhd"/> - <definition value="As defined by Phillip Maness"/> + <code value="audio/rtp-enc-aescm128" /> + <display value="rtp-enc-aescm128" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="audio/vnd.dvb.file"/> - <display value="vnd.dvb.file"/> - <definition value="As defined by Peter Siebert"/> + <code value="audio/rtploopback" /> + <display value="rtploopback" /> + <definition value="As defined by rfc6849" /> </concept> <concept> - <code value="audio/vnd.everad.plj"/> - <display value="vnd.everad.plj"/> - <definition value="As defined by Shay Cicelsky"/> + <code value="audio/rtp-midi" /> + <display value="rtp-midi" /> + <definition value="As defined by rfc6295" /> </concept> <concept> - <code value="audio/vnd.hns.audio"/> - <display value="vnd.hns.audio"/> - <definition value="As defined by Swaminathan"/> + <code value="audio/rtx" /> + <display value="rtx" /> + <definition value="As defined by rfc4588" /> </concept> <concept> - <code value="audio/vnd.lucent.voice"/> - <display value="vnd.lucent.voice"/> - <definition value="As defined by Greg Vaudreuil"/> + <code value="audio/scip" /> + <display value="scip" /> + <definition value="As defined by rfc9607" /> </concept> <concept> - <code value="audio/vnd.ms-playready.media.pya"/> - <display value="vnd.ms-playready.media.pya"/> - <definition value="As defined by Steve DiAcetis"/> + <code value="audio/SMV" /> + <display value="SMV" /> + <definition value="As defined by rfc3558" /> </concept> <concept> - <code value="audio/vnd.nokia.mobile-xmf"/> - <display value="vnd.nokia.mobile-xmf"/> - <definition value="As defined by Nokia"/> + <code value="audio/SMV0" /> + <display value="SMV0" /> + <definition value="As defined by rfc3558" /> </concept> <concept> - <code value="audio/vnd.nortel.vbk"/> - <display value="vnd.nortel.vbk"/> - <definition value="As defined by Glenn Parsons"/> + <code value="audio/SMV-QCP" /> + <display value="SMV-QCP" /> + <definition value="As defined by rfc3625" /> </concept> <concept> - <code value="audio/vnd.nuera.ecelp4800"/> - <display value="vnd.nuera.ecelp4800"/> - <definition value="As defined by Michael Fox"/> + <code value="audio/sofa" /> + <display value="sofa" /> + <definition value="As defined by AES, and Piotr Majdak" /> </concept> <concept> - <code value="audio/vnd.nuera.ecelp7470"/> - <display value="vnd.nuera.ecelp7470"/> - <definition value="As defined by Michael Fox"/> + <code value="audio/sp-midi" /> + <display value="sp-midi" /> + <definition value="As defined by Athan Billias, and MIDI Association" /> </concept> <concept> - <code value="audio/vnd.nuera.ecelp9600"/> - <display value="vnd.nuera.ecelp9600"/> - <definition value="As defined by Michael Fox"/> + <code value="audio/speex" /> + <display value="speex" /> + <definition value="As defined by rfc5574" /> </concept> <concept> - <code value="audio/vnd.octel.sbc"/> - <display value="vnd.octel.sbc"/> - <definition value="As defined by Greg Vaudreuil"/> + <code value="audio/t140c" /> + <display value="t140c" /> + <definition value="As defined by rfc4351" /> </concept> <concept> - <code value="audio/vnd.presonus.multitrack"/> - <display value="vnd.presonus.multitrack"/> - <definition value="As defined by Matthias Juwan"/> + <code value="audio/t38" /> + <display value="t38" /> + <definition value="As defined by rfc4612" /> </concept> <concept> - <code value="audio/vnd.qcelp - DEPRECATED in favor of audio/qcelp"/> - <display value="vnd.qcelp - DEPRECATED in favor of audio/qcelp"/> - <definition value="As defined by rfc3625"/> + <code value="audio/telephone-event" /> + <display value="telephone-event" /> + <definition value="As defined by rfc4733" /> </concept> <concept> - <code value="audio/vnd.rhetorex.32kadpcm"/> - <display value="vnd.rhetorex.32kadpcm"/> - <definition value="As defined by Greg Vaudreuil"/> + <code value="audio/TETRA_ACELP" /> + <display value="TETRA_ACELP" /> + <definition value="As defined by ETSI, and Miguel Angel Reina Ortega" /> </concept> <concept> - <code value="audio/vnd.rip"/> - <display value="vnd.rip"/> - <definition value="As defined by Martin Dawe"/> + <code value="audio/TETRA_ACELP_BB" /> + <display value="TETRA_ACELP_BB" /> + <definition value="As defined by ETSI, and Miguel Angel Reina Ortega" /> </concept> <concept> - <code value="audio/vnd.sealedmedia.softseal.mpeg"/> - <display value="vnd.sealedmedia.softseal.mpeg"/> - <definition value="As defined by David Petersen"/> + <code value="audio/tone" /> + <display value="tone" /> + <definition value="As defined by rfc4733" /> </concept> <concept> - <code value="audio/vnd.vmx.cvsd"/> - <display value="vnd.vmx.cvsd"/> - <definition value="As defined by Greg Vaudreuil"/> + <code value="audio/TSVCIS" /> + <display value="TSVCIS" /> + <definition value="As defined by rfc8817" /> </concept> <concept> - <code value="audio/vorbis"/> - <display value="vorbis"/> - <definition value="As defined by rfc5215"/> + <code value="audio/UEMCLIP" /> + <display value="UEMCLIP" /> + <definition value="As defined by rfc5686" /> </concept> <concept> - <code value="audio/vorbis-config"/> - <display value="vorbis-config"/> - <definition value="As defined by rfc5215"/> + <code value="audio/ulpfec" /> + <display value="ulpfec" /> + <definition value="As defined by rfc5109" /> </concept> <concept> - <code value="font/collection"/> - <display value="collection"/> - <definition value="As defined by rfc8081"/> + <code value="audio/usac" /> + <display value="usac" /> + <definition value="As defined by ISO-IEC JTC 1, and Max Neuendorf" /> </concept> <concept> - <code value="font/otf"/> - <display value="otf"/> - <definition value="As defined by rfc8081"/> + <code value="audio/VDVI" /> + <display value="VDVI" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="font/sfnt"/> - <display value="sfnt"/> - <definition value="As defined by rfc8081"/> + <code value="audio/VMR-WB" /> + <display value="VMR-WB" /> + <definition value="As defined by rfc4348, and rfc4424" /> </concept> <concept> - <code value="font/ttf"/> - <display value="ttf"/> - <definition value="As defined by rfc8081"/> + <code value="audio/vnd.3gpp.iufp" /> + <display value="vnd.3gpp.iufp" /> + <definition value="As defined by Thomas Belling" /> </concept> <concept> - <code value="font/woff"/> - <display value="woff"/> - <definition value="As defined by rfc8081"/> + <code value="audio/vnd.4SB" /> + <display value="vnd.4SB" /> + <definition value="As defined by Serge De Jaham" /> </concept> <concept> - <code value="font/woff2"/> - <display value="woff2"/> - <definition value="As defined by rfc8081"/> + <code value="audio/vnd.audiokoz" /> + <display value="vnd.audiokoz" /> + <definition value="As defined by Vicki DeBarros" /> </concept> <concept> - <code value="haptics/ivs"/> - <display value="ivs"/> - <definition value="As defined by RFC-ietf-mediaman-haptics-05"/> + <code value="audio/vnd.blockfact.facta" /> + <display value="vnd.blockfact.facta" /> + <definition value="As defined by Egbert von Frankenberg" /> </concept> <concept> - <code value="haptics/hjif"/> - <display value="hjif"/> - <definition value="As defined by RFC-ietf-mediaman-haptics-05"/> + <code value="audio/vnd.CELP" /> + <display value="vnd.CELP" /> + <definition value="As defined by Serge De Jaham" /> </concept> <concept> - <code value="haptics/hmpg"/> - <display value="hmpg"/> - <definition value="As defined by RFC-ietf-mediaman-haptics-05"/> + <code value="audio/vnd.cisco.nse" /> + <display value="vnd.cisco.nse" /> + <definition value="As defined by Rajesh Kumar" /> </concept> <concept> - <code value="image/aces"/> - <display value="aces"/> - <definition value="As defined by SMPTE, and Howard Lukk"/> + <code value="audio/vnd.cmles.radio-events" /> + <display value="vnd.cmles.radio-events" /> + <definition value="As defined by Jean-Philippe Goulet" /> </concept> <concept> - <code value="image/apng"/> - <display value="apng"/> - <definition value="As defined by W3C, and W3C PNG WG"/> + <code value="audio/vnd.cns.anp1" /> + <display value="vnd.cns.anp1" /> + <definition value="As defined by Ann McLaughlin" /> </concept> <concept> - <code value="image/avci"/> - <display value="avci"/> - <definition value="As defined by ISO-IEC JTC 1, and David Singer"/> + <code value="audio/vnd.cns.inf1" /> + <display value="vnd.cns.inf1" /> + <definition value="As defined by Ann McLaughlin" /> </concept> <concept> - <code value="image/avcs"/> - <display value="avcs"/> - <definition value="As defined by ISO-IEC JTC 1, and David Singer"/> + <code value="audio/vnd.dece.audio" /> + <display value="vnd.dece.audio" /> + <definition value="As defined by Michael A Dolan" /> </concept> <concept> - <code value="image/avif"/> - <display value="avif"/> - <definition value="As defined by Alliance for Open Media, and Cyril Concolato"/> + <code value="audio/vnd.digital-winds" /> + <display value="vnd.digital-winds" /> + <definition value="As defined by Armands Strazds" /> </concept> <concept> - <code value="image/bmp"/> - <display value="bmp"/> - <definition value="As defined by rfc7903"/> + <code value="audio/vnd.dlna.adts" /> + <display value="vnd.dlna.adts" /> + <definition value="As defined by Edwin Heredia" /> </concept> <concept> - <code value="image/cgm"/> - <display value="cgm"/> - <definition value="As defined by Alan Francis"/> + <code value="audio/vnd.dolby.heaac.1" /> + <display value="vnd.dolby.heaac.1" /> + <definition value="As defined by Steve Hattersley" /> </concept> <concept> - <code value="image/dicom-rle"/> - <display value="dicom-rle"/> - <definition value="As defined by DICOM Standard Committee, and David Clunie"/> + <code value="audio/vnd.dolby.heaac.2" /> + <display value="vnd.dolby.heaac.2" /> + <definition value="As defined by Steve Hattersley" /> </concept> <concept> - <code value="image/dpx"/> - <display value="dpx"/> - <definition value="As defined by SMPTE, and SMPTE Director of Standards Development"/> + <code value="audio/vnd.dolby.mlp" /> + <display value="vnd.dolby.mlp" /> + <definition value="As defined by Mike Ward" /> </concept> <concept> - <code value="image/emf"/> - <display value="emf"/> - <definition value="As defined by rfc7903"/> + <code value="audio/vnd.dolby.mps" /> + <display value="vnd.dolby.mps" /> + <definition value="As defined by Steve Hattersley" /> </concept> <concept> - <code value="image/example"/> - <display value="example"/> - <definition value="As defined by rfc4735"/> + <code value="audio/vnd.dolby.pl2" /> + <display value="vnd.dolby.pl2" /> + <definition value="As defined by Steve Hattersley" /> </concept> <concept> - <code value="image/fits"/> - <display value="fits"/> - <definition value="As defined by rfc4047"/> + <code value="audio/vnd.dolby.pl2x" /> + <display value="vnd.dolby.pl2x" /> + <definition value="As defined by Steve Hattersley" /> </concept> <concept> - <code value="image/g3fax"/> - <display value="g3fax"/> - <definition value="As defined by rfc1494"/> + <code value="audio/vnd.dolby.pl2z" /> + <display value="vnd.dolby.pl2z" /> + <definition value="As defined by Steve Hattersley" /> </concept> <concept> - <code value="image/gif"/> - <display value="gif"/> - <definition value="As defined by rfc2045, and rfc2046"/> + <code value="audio/vnd.dolby.pulse.1" /> + <display value="vnd.dolby.pulse.1" /> + <definition value="As defined by Steve Hattersley" /> </concept> <concept> - <code value="image/heic"/> - <display value="heic"/> - <definition value="As defined by ISO-IEC JTC 1, and David Singer"/> + <code value="audio/vnd.dra" /> + <display value="vnd.dra" /> + <definition value="As defined by Jiang Tian" /> </concept> <concept> - <code value="image/heic-sequence"/> - <display value="heic-sequence"/> - <definition value="As defined by ISO-IEC JTC 1, and David Singer"/> + <code value="audio/vnd.dts" /> + <display value="vnd.dts" /> + <definition value="As defined by William Zou" /> </concept> <concept> - <code value="image/heif"/> - <display value="heif"/> - <definition value="As defined by ISO-IEC JTC 1, and David Singer"/> + <code value="audio/vnd.dts.hd" /> + <display value="vnd.dts.hd" /> + <definition value="As defined by William Zou" /> </concept> <concept> - <code value="image/heif-sequence"/> - <display value="heif-sequence"/> - <definition value="As defined by ISO-IEC JTC 1, and David Singer"/> + <code value="audio/vnd.dts.uhd" /> + <display value="vnd.dts.uhd" /> + <definition value="As defined by Phillip Maness" /> </concept> <concept> - <code value="image/hej2k"/> - <display value="hej2k"/> - <definition value="As defined by ISO-IEC JTC 1, and ITU-T"/> + <code value="audio/vnd.dvb.file" /> + <display value="vnd.dvb.file" /> + <definition value="As defined by Peter Siebert" /> </concept> <concept> - <code value="image/ief"/> - <display value="ief"/> - <definition value="As defined by rfc1314"/> + <code value="audio/vnd.everad.plj" /> + <display value="vnd.everad.plj" /> + <definition value="As defined by Shay Cicelsky" /> </concept> <concept> - <code value="image/j2c"/> - <display value="j2c"/> - <definition value="As defined by ISO-IEC JTC 1 SC 29 WG 1, ISO-IEC JTC 1, and ITU-T"/> + <code value="audio/vnd.hns.audio" /> + <display value="vnd.hns.audio" /> + <definition value="As defined by Swaminathan" /> </concept> <concept> - <code value="image/jaii"/> - <display value="jaii"/> - <definition value="As defined by ISO-IEC JTC 1 SC 29 WG 1, and Ye-Kui Wang"/> + <code value="audio/vnd.lucent.voice" /> + <display value="vnd.lucent.voice" /> + <definition value="As defined by Greg Vaudreuil" /> </concept> <concept> - <code value="image/jais"/> - <display value="jais"/> - <definition value="As defined by ISO-IEC JTC 1 SC 29 WG 1, and Ye-Kui Wang"/> + <code value="audio/vnd.ms-playready.media.pya" /> + <display value="vnd.ms-playready.media.pya" /> + <definition value="As defined by Steve DiAcetis" /> </concept> <concept> - <code value="image/jls"/> - <display value="jls"/> - <definition value="As defined by DICOM Standard Committee, and David Clunie"/> + <code value="audio/vnd.nokia.mobile-xmf" /> + <display value="vnd.nokia.mobile-xmf" /> + <definition value="As defined by Nokia" /> </concept> <concept> - <code value="image/jp2"/> - <display value="jp2"/> - <definition value="As defined by rfc3745"/> + <code value="audio/vnd.nortel.vbk" /> + <display value="vnd.nortel.vbk" /> + <definition value="As defined by Glenn Parsons" /> </concept> <concept> - <code value="image/jpeg"/> - <display value="jpeg"/> - <definition value="As defined by rfc2045, and rfc2046"/> + <code value="audio/vnd.nuera.ecelp4800" /> + <display value="vnd.nuera.ecelp4800" /> + <definition value="As defined by Michael Fox" /> </concept> <concept> - <code value="image/jph"/> - <display value="jph"/> - <definition value="As defined by ISO-IEC JTC 1, and ITU-T"/> + <code value="audio/vnd.nuera.ecelp7470" /> + <display value="vnd.nuera.ecelp7470" /> + <definition value="As defined by Michael Fox" /> </concept> <concept> - <code value="image/jphc"/> - <display value="jphc"/> - <definition value="As defined by ISO-IEC JTC 1, and ITU-T"/> + <code value="audio/vnd.nuera.ecelp9600" /> + <display value="vnd.nuera.ecelp9600" /> + <definition value="As defined by Michael Fox" /> </concept> <concept> - <code value="image/jpm"/> - <display value="jpm"/> - <definition value="As defined by rfc3745"/> + <code value="audio/vnd.octel.sbc" /> + <display value="vnd.octel.sbc" /> + <definition value="As defined by Greg Vaudreuil" /> </concept> <concept> - <code value="image/jpx"/> - <display value="jpx"/> - <definition value="As defined by rfc3745, and ISO-IEC JTC 1 SC 29 WG 1"/> + <code value="audio/vnd.presonus.multitrack" /> + <display value="vnd.presonus.multitrack" /> + <definition value="As defined by Matthias Juwan" /> </concept> <concept> - <code value="image/jxl"/> - <display value="jxl"/> - <definition value="As defined by ISO-IEC JTC 1 SC 29 WG 1, and ISO-IEC JTC 1"/> + <code value="audio/vnd.qcelp - DEPRECATED in favor of audio/qcelp" /> + <display value="vnd.qcelp - DEPRECATED in favor of audio/qcelp" /> + <definition value="As defined by rfc3625" /> </concept> <concept> - <code value="image/jxr"/> - <display value="jxr"/> - <definition value="As defined by ISO-IEC JTC 1, and ITU-T"/> + <code value="audio/vnd.rhetorex.32kadpcm" /> + <display value="vnd.rhetorex.32kadpcm" /> + <definition value="As defined by Greg Vaudreuil" /> </concept> <concept> - <code value="image/jxrA"/> - <display value="jxrA"/> - <definition value="As defined by ISO-IEC JTC 1, and ITU-T"/> + <code value="audio/vnd.rip" /> + <display value="vnd.rip" /> + <definition value="As defined by Martin Dawe" /> </concept> <concept> - <code value="image/jxrS"/> - <display value="jxrS"/> - <definition value="As defined by ISO-IEC JTC 1, and ITU-T"/> + <code value="audio/vnd.sealedmedia.softseal.mpeg" /> + <display value="vnd.sealedmedia.softseal.mpeg" /> + <definition value="As defined by David Petersen" /> </concept> <concept> - <code value="image/jxs"/> - <display value="jxs"/> - <definition value="As defined by ISO-IEC JTC 1"/> + <code value="audio/vnd.vmx.cvsd" /> + <display value="vnd.vmx.cvsd" /> + <definition value="As defined by Greg Vaudreuil" /> </concept> <concept> - <code value="image/jxsc"/> - <display value="jxsc"/> - <definition value="As defined by ISO-IEC JTC 1"/> + <code value="audio/vorbis" /> + <display value="vorbis" /> + <definition value="As defined by rfc5215" /> </concept> <concept> - <code value="image/jxsi"/> - <display value="jxsi"/> - <definition value="As defined by ISO-IEC JTC 1"/> + <code value="audio/vorbis-config" /> + <display value="vorbis-config" /> + <definition value="As defined by rfc5215" /> </concept> <concept> - <code value="image/jxss"/> - <display value="jxss"/> - <definition value="As defined by ISO-IEC JTC 1"/> + <code value="font/collection" /> + <display value="collection" /> + <definition value="As defined by rfc8081" /> </concept> <concept> - <code value="image/ktx"/> - <display value="ktx"/> - <definition value="As defined by Khronos, and Mark Callow"/> + <code value="font/otf" /> + <display value="otf" /> + <definition value="As defined by rfc8081" /> </concept> <concept> - <code value="image/ktx2"/> - <display value="ktx2"/> - <definition value="As defined by Khronos, and Mark Callow"/> + <code value="font/sfnt" /> + <display value="sfnt" /> + <definition value="As defined by rfc8081" /> </concept> <concept> - <code value="image/naplps"/> - <display value="naplps"/> - <definition value="As defined by Ilya Ferber"/> + <code value="font/ttf" /> + <display value="ttf" /> + <definition value="As defined by rfc8081" /> </concept> <concept> - <code value="image/png"/> - <display value="png"/> - <definition value="As defined by W3C, and PNG WG"/> + <code value="font/woff" /> + <display value="woff" /> + <definition value="As defined by rfc8081" /> </concept> <concept> - <code value="image/prs.btif"/> - <display value="prs.btif"/> - <definition value="As defined by Ben Simon"/> + <code value="font/woff2" /> + <display value="woff2" /> + <definition value="As defined by rfc8081" /> </concept> <concept> - <code value="image/prs.pti"/> - <display value="prs.pti"/> - <definition value="As defined by Juern Laun"/> + <code value="haptics/ivs" /> + <display value="ivs" /> + <definition value="As defined by rfc9695" /> </concept> <concept> - <code value="image/pwg-raster"/> - <display value="pwg-raster"/> - <definition value="As defined by Michael Sweet"/> + <code value="haptics/hjif" /> + <display value="hjif" /> + <definition value="As defined by rfc9695" /> </concept> <concept> - <code value="image/svg+xml"/> - <display value="svg+xml"/> - <definition value="As defined by W3C, and http://www.w3.org/TR/SVG/mimereg.html"/> + <code value="haptics/hmpg" /> + <display value="hmpg" /> + <definition value="As defined by rfc9695" /> </concept> <concept> - <code value="image/t38"/> - <display value="t38"/> - <definition value="As defined by rfc3362"/> + <code value="image/aces" /> + <display value="aces" /> + <definition value="As defined by SMPTE, and Howard Lukk" /> </concept> <concept> - <code value="image/tiff"/> - <display value="tiff"/> - <definition value="As defined by rfc3302"/> + <code value="image/apng" /> + <display value="apng" /> + <definition value="As defined by W3C, and W3C PNG WG" /> </concept> <concept> - <code value="image/tiff-fx"/> - <display value="tiff-fx"/> - <definition value="As defined by rfc3950"/> + <code value="image/avci" /> + <display value="avci" /> + <definition value="As defined by ISO-IEC JTC 1, and David Singer" /> </concept> <concept> - <code value="image/vnd.adobe.photoshop"/> - <display value="vnd.adobe.photoshop"/> - <definition value="As defined by Kim Scarborough"/> + <code value="image/avcs" /> + <display value="avcs" /> + <definition value="As defined by ISO-IEC JTC 1, and David Singer" /> </concept> <concept> - <code value="image/vnd.airzip.accelerator.azv"/> - <display value="vnd.airzip.accelerator.azv"/> - <definition value="As defined by Gary Clueit"/> + <code value="image/avif" /> + <display value="avif" /> + <definition value="As defined by Alliance for Open Media, and Cyril Concolato" /> </concept> <concept> - <code value="image/vnd.cns.inf2"/> - <display value="vnd.cns.inf2"/> - <definition value="As defined by Ann McLaughlin"/> + <code value="image/bmp" /> + <display value="bmp" /> + <definition value="As defined by rfc7903" /> </concept> <concept> - <code value="image/vnd.dece.graphic"/> - <display value="vnd.dece.graphic"/> - <definition value="As defined by Michael A Dolan"/> + <code value="image/cgm" /> + <display value="cgm" /> + <definition value="As defined by Alan Francis" /> </concept> <concept> - <code value="image/vnd.djvu"/> - <display value="vnd.djvu"/> - <definition value="As defined by Leon Bottou"/> + <code value="image/dicom-rle" /> + <display value="dicom-rle" /> + <definition value="As defined by DICOM Standard Committee, and David Clunie" /> </concept> <concept> - <code value="image/vnd.dwg"/> - <display value="vnd.dwg"/> - <definition value="As defined by Jodi Moline"/> + <code value="image/dpx" /> + <display value="dpx" /> + <definition value="As defined by SMPTE, and SMPTE Director of Standards Development" /> </concept> <concept> - <code value="image/vnd.dxf"/> - <display value="vnd.dxf"/> - <definition value="As defined by Jodi Moline"/> + <code value="image/emf" /> + <display value="emf" /> + <definition value="As defined by rfc7903" /> </concept> <concept> - <code value="image/vnd.dvb.subtitle"/> - <display value="vnd.dvb.subtitle"/> - <definition value="As defined by Peter Siebert, and Michael Lagally"/> + <code value="image/example" /> + <display value="example" /> + <definition value="As defined by rfc4735" /> </concept> <concept> - <code value="image/vnd.fastbidsheet"/> - <display value="vnd.fastbidsheet"/> - <definition value="As defined by Scott Becker"/> + <code value="image/fits" /> + <display value="fits" /> + <definition value="As defined by rfc4047" /> </concept> <concept> - <code value="image/vnd.fpx"/> - <display value="vnd.fpx"/> - <definition value="As defined by Marc Douglas Spencer"/> + <code value="image/g3fax" /> + <display value="g3fax" /> + <definition value="As defined by rfc1494" /> </concept> <concept> - <code value="image/vnd.fst"/> - <display value="vnd.fst"/> - <definition value="As defined by Arild Fuldseth"/> + <code value="image/gif" /> + <display value="gif" /> + <definition value="As defined by rfc2045, and rfc2046" /> </concept> <concept> - <code value="image/vnd.fujixerox.edmics-mmr"/> - <display value="vnd.fujixerox.edmics-mmr"/> - <definition value="As defined by Masanori Onda"/> + <code value="image/heic" /> + <display value="heic" /> + <definition value="As defined by ISO-IEC JTC 1, and David Singer" /> </concept> <concept> - <code value="image/vnd.fujixerox.edmics-rlc"/> - <display value="vnd.fujixerox.edmics-rlc"/> - <definition value="As defined by Masanori Onda"/> + <code value="image/heic-sequence" /> + <display value="heic-sequence" /> + <definition value="As defined by ISO-IEC JTC 1, and David Singer" /> </concept> <concept> - <code value="image/vnd.globalgraphics.pgb"/> - <display value="vnd.globalgraphics.pgb"/> - <definition value="As defined by Martin Bailey"/> + <code value="image/heif" /> + <display value="heif" /> + <definition value="As defined by ISO-IEC JTC 1, and David Singer" /> </concept> <concept> - <code value="image/vnd.microsoft.icon"/> - <display value="vnd.microsoft.icon"/> - <definition value="As defined by Simon Butcher"/> + <code value="image/heif-sequence" /> + <display value="heif-sequence" /> + <definition value="As defined by ISO-IEC JTC 1, and David Singer" /> </concept> <concept> - <code value="image/vnd.mix"/> - <display value="vnd.mix"/> - <definition value="As defined by Saveen Reddy"/> + <code value="image/hej2k" /> + <display value="hej2k" /> + <definition value="As defined by ISO-IEC JTC 1, and ITU-T" /> </concept> <concept> - <code value="image/vnd.ms-modi"/> - <display value="vnd.ms-modi"/> - <definition value="As defined by Gregory Vaughan"/> + <code value="image/ief" /> + <display value="ief" /> + <definition value="As defined by rfc1314" /> </concept> <concept> - <code value="image/vnd.mozilla.apng"/> - <display value="vnd.mozilla.apng"/> - <definition value="As defined by Stuart Parmenter"/> + <code value="image/j2c" /> + <display value="j2c" /> + <definition value="As defined by ISO-IEC JTC 1 SC 29 WG 1, ISO-IEC JTC 1, and ITU-T" /> </concept> <concept> - <code value="image/vnd.net-fpx"/> - <display value="vnd.net-fpx"/> - <definition value="As defined by Marc Douglas Spencer"/> + <code value="image/jaii" /> + <display value="jaii" /> + <definition value="As defined by ISO-IEC JTC 1 SC 29 WG 1, and Ye-Kui Wang" /> </concept> <concept> - <code value="image/vnd.pco.b16"/> - <display value="vnd.pco.b16"/> - <definition value="As defined by PCO AG, and Jan Zeman"/> + <code value="image/jais" /> + <display value="jais" /> + <definition value="As defined by ISO-IEC JTC 1 SC 29 WG 1, and Ye-Kui Wang" /> </concept> <concept> - <code value="image/vnd.radiance"/> - <display value="vnd.radiance"/> - <definition value="As defined by Randolph Fritz, and Greg Ward"/> + <code value="image/jls" /> + <display value="jls" /> + <definition value="As defined by DICOM Standard Committee, and David Clunie" /> </concept> <concept> - <code value="image/vnd.sealed.png"/> - <display value="vnd.sealed.png"/> - <definition value="As defined by David Petersen"/> + <code value="image/jp2" /> + <display value="jp2" /> + <definition value="As defined by rfc3745" /> </concept> <concept> - <code value="image/vnd.sealedmedia.softseal.gif"/> - <display value="vnd.sealedmedia.softseal.gif"/> - <definition value="As defined by David Petersen"/> + <code value="image/jpeg" /> + <display value="jpeg" /> + <definition value="As defined by rfc2045, and rfc2046" /> </concept> <concept> - <code value="image/vnd.sealedmedia.softseal.jpg"/> - <display value="vnd.sealedmedia.softseal.jpg"/> - <definition value="As defined by David Petersen"/> + <code value="image/jph" /> + <display value="jph" /> + <definition value="As defined by ISO-IEC JTC 1, and ITU-T" /> </concept> <concept> - <code value="image/vnd.svf"/> - <display value="vnd.svf"/> - <definition value="As defined by Jodi Moline"/> + <code value="image/jphc" /> + <display value="jphc" /> + <definition value="As defined by ISO-IEC JTC 1, and ITU-T" /> </concept> <concept> - <code value="image/vnd.tencent.tap"/> - <display value="vnd.tencent.tap"/> - <definition value="As defined by Ni Hui"/> + <code value="image/jpm" /> + <display value="jpm" /> + <definition value="As defined by rfc3745" /> </concept> <concept> - <code value="image/vnd.valve.source.texture"/> - <display value="vnd.valve.source.texture"/> - <definition value="As defined by Henrik Andersson"/> + <code value="image/jpx" /> + <display value="jpx" /> + <definition value="As defined by rfc3745, and ISO-IEC JTC 1 SC 29 WG 1" /> </concept> <concept> - <code value="image/vnd.wap.wbmp"/> - <display value="vnd.wap.wbmp"/> - <definition value="As defined by Peter Stark"/> + <code value="image/jxl" /> + <display value="jxl" /> + <definition value="As defined by ISO-IEC JTC 1 SC 29 WG 1, and ISO-IEC JTC 1" /> </concept> <concept> - <code value="image/vnd.xiff"/> - <display value="vnd.xiff"/> - <definition value="As defined by Steven Martin"/> + <code value="image/jxr" /> + <display value="jxr" /> + <definition value="As defined by ISO-IEC JTC 1, and ITU-T" /> </concept> <concept> - <code value="image/vnd.zbrush.pcx"/> - <display value="vnd.zbrush.pcx"/> - <definition value="As defined by Chris Charabaruk"/> + <code value="image/jxrA" /> + <display value="jxrA" /> + <definition value="As defined by ISO-IEC JTC 1, and ITU-T" /> </concept> <concept> - <code value="image/webp"/> - <display value="webp"/> - <definition value="As defined by rfc9649"/> + <code value="image/jxrS" /> + <display value="jxrS" /> + <definition value="As defined by ISO-IEC JTC 1, and ITU-T" /> </concept> <concept> - <code value="image/wmf"/> - <display value="wmf"/> - <definition value="As defined by rfc7903"/> + <code value="image/jxs" /> + <display value="jxs" /> + <definition value="As defined by ISO-IEC JTC 1" /> </concept> <concept> - <code value="image/x-emf - DEPRECATED in favor of image/emf"/> - <display value="x-emf - DEPRECATED in favor of image/emf"/> - <definition value="As defined by rfc7903"/> + <code value="image/jxsc" /> + <display value="jxsc" /> + <definition value="As defined by ISO-IEC JTC 1" /> </concept> <concept> - <code value="image/x-wmf - DEPRECATED in favor of image/wmf"/> - <display value="x-wmf - DEPRECATED in favor of image/wmf"/> - <definition value="As defined by rfc7903"/> + <code value="image/jxsi" /> + <display value="jxsi" /> + <definition value="As defined by ISO-IEC JTC 1" /> </concept> <concept> - <code value="message/bhttp"/> - <display value="bhttp"/> - <definition value="As defined by rfc9292"/> + <code value="image/jxss" /> + <display value="jxss" /> + <definition value="As defined by ISO-IEC JTC 1" /> </concept> <concept> - <code value="message/CPIM"/> - <display value="CPIM"/> - <definition value="As defined by rfc3862"/> + <code value="image/ktx" /> + <display value="ktx" /> + <definition value="As defined by Khronos, and Mark Callow" /> </concept> <concept> - <code value="message/delivery-status"/> - <display value="delivery-status"/> - <definition value="As defined by rfc1894"/> + <code value="image/ktx2" /> + <display value="ktx2" /> + <definition value="As defined by Khronos, and Mark Callow" /> </concept> <concept> - <code value="message/disposition-notification"/> - <display value="disposition-notification"/> - <definition value="As defined by rfc8098"/> + <code value="image/naplps" /> + <display value="naplps" /> + <definition value="As defined by Ilya Ferber" /> </concept> <concept> - <code value="message/example"/> - <display value="example"/> - <definition value="As defined by rfc4735"/> + <code value="image/png" /> + <display value="png" /> + <definition value="As defined by W3C, PNG WG, and https://www.w3.org/TR/PNG/" /> </concept> <concept> - <code value="message/external-body"/> - <display value="external-body"/> - <definition value="As defined by rfc2045, and rfc2046"/> + <code value="image/prs.btif" /> + <display value="prs.btif" /> + <definition value="As defined by Ben Simon" /> </concept> <concept> - <code value="message/feedback-report"/> - <display value="feedback-report"/> - <definition value="As defined by rfc5965"/> + <code value="image/prs.pti" /> + <display value="prs.pti" /> + <definition value="As defined by Juern Laun" /> </concept> <concept> - <code value="message/global"/> - <display value="global"/> - <definition value="As defined by rfc6532"/> + <code value="image/pwg-raster" /> + <display value="pwg-raster" /> + <definition value="As defined by Michael Sweet" /> </concept> <concept> - <code value="message/global-delivery-status"/> - <display value="global-delivery-status"/> - <definition value="As defined by rfc6533"/> + <code value="image/svg+xml" /> + <display value="svg+xml" /> + <definition value="As defined by W3C, and http://www.w3.org/TR/SVG/mimereg.html" /> </concept> <concept> - <code value="message/global-disposition-notification"/> - <display value="global-disposition-notification"/> - <definition value="As defined by rfc6533"/> + <code value="image/t38" /> + <display value="t38" /> + <definition value="As defined by rfc3362" /> </concept> <concept> - <code value="message/global-headers"/> - <display value="global-headers"/> - <definition value="As defined by rfc6533"/> + <code value="image/tiff" /> + <display value="tiff" /> + <definition value="As defined by rfc3302" /> </concept> <concept> - <code value="message/http"/> - <display value="http"/> - <definition value="As defined by rfc9112"/> + <code value="image/tiff-fx" /> + <display value="tiff-fx" /> + <definition value="As defined by rfc3950" /> </concept> <concept> - <code value="message/imdn+xml"/> - <display value="imdn+xml"/> - <definition value="As defined by rfc5438"/> + <code value="image/vnd.adobe.photoshop" /> + <display value="vnd.adobe.photoshop" /> + <definition value="As defined by Kim Scarborough" /> </concept> <concept> - <code value="message/mls"/> - <display value="mls"/> - <definition value="As defined by rfc9420"/> + <code value="image/vnd.airzip.accelerator.azv" /> + <display value="vnd.airzip.accelerator.azv" /> + <definition value="As defined by Gary Clueit" /> </concept> <concept> - <code value="message/ohttp-req"/> - <display value="ohttp-req"/> - <definition value="As defined by rfc9458"/> + <code value="image/vnd.blockfact.facti" /> + <display value="vnd.blockfact.facti" /> + <definition value="As defined by Egbert von Frankenberg" /> </concept> <concept> - <code value="message/ohttp-res"/> - <display value="ohttp-res"/> - <definition value="As defined by rfc9458"/> + <code value="image/vnd.clip" /> + <display value="vnd.clip" /> + <definition value="As defined by Ryo Inaba" /> </concept> <concept> - <code value="message/partial"/> - <display value="partial"/> - <definition value="As defined by rfc2045, and rfc2046"/> + <code value="image/vnd.cns.inf2" /> + <display value="vnd.cns.inf2" /> + <definition value="As defined by Ann McLaughlin" /> </concept> <concept> - <code value="message/rfc822"/> - <display value="rfc822"/> - <definition value="As defined by rfc2045, and rfc2046"/> + <code value="image/vnd.dece.graphic" /> + <display value="vnd.dece.graphic" /> + <definition value="As defined by Michael A Dolan" /> </concept> <concept> - <code value="message/sip"/> - <display value="sip"/> - <definition value="As defined by rfc3261"/> + <code value="image/vnd.djvu" /> + <display value="vnd.djvu" /> + <definition value="As defined by Leon Bottou" /> </concept> <concept> - <code value="message/sipfrag"/> - <display value="sipfrag"/> - <definition value="As defined by rfc3420"/> + <code value="image/vnd.dwg" /> + <display value="vnd.dwg" /> + <definition value="As defined by Jodi Moline" /> </concept> <concept> - <code value="message/tracking-status"/> - <display value="tracking-status"/> - <definition value="As defined by rfc3886"/> + <code value="image/vnd.dxf" /> + <display value="vnd.dxf" /> + <definition value="As defined by Jodi Moline" /> </concept> <concept> - <code value="message/vnd.wfa.wsc"/> - <display value="vnd.wfa.wsc"/> - <definition value="As defined by Mick Conley"/> + <code value="image/vnd.dvb.subtitle" /> + <display value="vnd.dvb.subtitle" /> + <definition value="As defined by Peter Siebert, and Michael Lagally" /> </concept> <concept> - <code value="model/3mf"/> - <display value="3mf"/> - <definition value="As defined by http://www.3mf.io/specification, 3MF, and Michael Sweet"/> + <code value="image/vnd.fastbidsheet" /> + <display value="vnd.fastbidsheet" /> + <definition value="As defined by Scott Becker" /> </concept> <concept> - <code value="model/e57"/> - <display value="e57"/> - <definition value="As defined by ASTM"/> + <code value="image/vnd.fpx" /> + <display value="vnd.fpx" /> + <definition value="As defined by Marc Douglas Spencer" /> </concept> <concept> - <code value="model/example"/> - <display value="example"/> - <definition value="As defined by rfc4735"/> + <code value="image/vnd.fst" /> + <display value="vnd.fst" /> + <definition value="As defined by Arild Fuldseth" /> </concept> <concept> - <code value="model/gltf-binary"/> - <display value="gltf-binary"/> - <definition value="As defined by Khronos, and Saurabh Bhatia"/> + <code value="image/vnd.fujixerox.edmics-mmr" /> + <display value="vnd.fujixerox.edmics-mmr" /> + <definition value="As defined by Masanori Onda" /> </concept> <concept> - <code value="model/gltf+json"/> - <display value="gltf+json"/> - <definition value="As defined by Khronos, and Uli Klumpp"/> + <code value="image/vnd.fujixerox.edmics-rlc" /> + <display value="vnd.fujixerox.edmics-rlc" /> + <definition value="As defined by Masanori Onda" /> </concept> <concept> - <code value="model/JT"/> - <display value="JT"/> - <definition value="As defined by ISO-TC 184-SC 4, and Michael Zink"/> + <code value="image/vnd.globalgraphics.pgb" /> + <display value="vnd.globalgraphics.pgb" /> + <definition value="As defined by Martin Bailey" /> </concept> <concept> - <code value="model/iges"/> - <display value="iges"/> - <definition value="As defined by Curtis Parks"/> + <code value="image/vnd.microsoft.icon" /> + <display value="vnd.microsoft.icon" /> + <definition value="As defined by Simon Butcher" /> </concept> <concept> - <code value="model/mesh"/> - <display value="mesh"/> - <definition value="As defined by rfc2077"/> + <code value="image/vnd.mix" /> + <display value="vnd.mix" /> + <definition value="As defined by Saveen Reddy" /> </concept> <concept> - <code value="model/mtl"/> - <display value="mtl"/> - <definition value="As defined by DICOM Standard Committee, DICOM WG 17, and Carolyn Hull"/> + <code value="image/vnd.ms-modi" /> + <display value="vnd.ms-modi" /> + <definition value="As defined by Gregory Vaughan" /> </concept> <concept> - <code value="model/obj"/> - <display value="obj"/> - <definition value="As defined by DICOM Standard Committee, DICOM WG 17, and Carolyn Hull"/> + <code value="image/vnd.mozilla.apng" /> + <display value="vnd.mozilla.apng" /> + <definition value="As defined by Stuart Parmenter" /> </concept> <concept> - <code value="model/prc"/> - <display value="prc"/> - <definition value="As defined by ISO-TC 171-SC 2, and Betsy Fanning"/> + <code value="image/vnd.net-fpx" /> + <display value="vnd.net-fpx" /> + <definition value="As defined by Marc Douglas Spencer" /> </concept> <concept> - <code value="model/step"/> - <display value="step"/> - <definition value="As defined by ISO-TC 184-SC 4, and Dana Tripp"/> + <code value="image/vnd.pco.b16" /> + <display value="vnd.pco.b16" /> + <definition value="As defined by PCO AG, and Jan Zeman" /> </concept> <concept> - <code value="model/step+xml"/> - <display value="step+xml"/> - <definition value="As defined by ISO-TC 184-SC 4, and Dana Tripp"/> + <code value="image/vnd.radiance" /> + <display value="vnd.radiance" /> + <definition value="As defined by Randolph Fritz, and Greg Ward" /> </concept> <concept> - <code value="model/step+zip"/> - <display value="step+zip"/> - <definition value="As defined by ISO-TC 184-SC 4, and Dana Tripp"/> + <code value="image/vnd.sealed.png" /> + <display value="vnd.sealed.png" /> + <definition value="As defined by David Petersen" /> </concept> <concept> - <code value="model/step-xml+zip"/> - <display value="step-xml+zip"/> - <definition value="As defined by ISO-TC 184-SC 4, and Dana Tripp"/> + <code value="image/vnd.sealedmedia.softseal.gif" /> + <display value="vnd.sealedmedia.softseal.gif" /> + <definition value="As defined by David Petersen" /> </concept> <concept> - <code value="model/stl"/> - <display value="stl"/> - <definition value="As defined by DICOM Standard Committee, DICOM WG 17, and Carolyn Hull"/> + <code value="image/vnd.sealedmedia.softseal.jpg" /> + <display value="vnd.sealedmedia.softseal.jpg" /> + <definition value="As defined by David Petersen" /> </concept> <concept> - <code value="model/u3d"/> - <display value="u3d"/> - <definition value="As defined by PDF Association, and Peter Wyatt"/> + <code value="image/vnd.svf" /> + <display value="vnd.svf" /> + <definition value="As defined by Jodi Moline" /> </concept> <concept> - <code value="model/vnd.bary"/> - <display value="vnd.bary"/> - <definition value="As defined by Displaced Micro-Mesh SDK Support"/> + <code value="image/vnd.tencent.tap" /> + <display value="vnd.tencent.tap" /> + <definition value="As defined by Ni Hui" /> </concept> <concept> - <code value="model/vnd.cld"/> - <display value="vnd.cld"/> - <definition value="As defined by Robert Monaghan"/> + <code value="image/vnd.valve.source.texture" /> + <display value="vnd.valve.source.texture" /> + <definition value="As defined by Henrik Andersson" /> </concept> <concept> - <code value="model/vnd.collada+xml"/> - <display value="vnd.collada+xml"/> - <definition value="As defined by James Riordon"/> + <code value="image/vnd.wap.wbmp" /> + <display value="vnd.wap.wbmp" /> + <definition value="As defined by Peter Stark" /> </concept> <concept> - <code value="model/vnd.dwf"/> - <display value="vnd.dwf"/> - <definition value="As defined by Jason Pratt"/> + <code value="image/vnd.xiff" /> + <display value="vnd.xiff" /> + <definition value="As defined by Steven Martin" /> </concept> <concept> - <code value="model/vnd.flatland.3dml"/> - <display value="vnd.flatland.3dml"/> - <definition value="As defined by Michael Powers"/> + <code value="image/vnd.zbrush.pcx" /> + <display value="vnd.zbrush.pcx" /> + <definition value="As defined by Chris Charabaruk" /> </concept> <concept> - <code value="model/vnd.gdl"/> - <display value="vnd.gdl"/> - <definition value="As defined by Attila Babits"/> + <code value="image/webp" /> + <display value="webp" /> + <definition value="As defined by rfc9649" /> </concept> <concept> - <code value="model/vnd.gs-gdl"/> - <display value="vnd.gs-gdl"/> - <definition value="As defined by Attila Babits"/> + <code value="image/wmf" /> + <display value="wmf" /> + <definition value="As defined by rfc7903" /> </concept> <concept> - <code value="model/vnd.gtw"/> - <display value="vnd.gtw"/> - <definition value="As defined by Yutaka Ozaki"/> + <code value="image/x-emf - DEPRECATED in favor of image/emf" /> + <display value="x-emf - DEPRECATED in favor of image/emf" /> + <definition value="As defined by rfc7903" /> </concept> <concept> - <code value="model/vnd.moml+xml"/> - <display value="vnd.moml+xml"/> - <definition value="As defined by Christopher Brooks"/> + <code value="image/x-wmf - DEPRECATED in favor of image/wmf" /> + <display value="x-wmf - DEPRECATED in favor of image/wmf" /> + <definition value="As defined by rfc7903" /> </concept> <concept> - <code value="model/vnd.mts"/> - <display value="vnd.mts"/> - <definition value="As defined by Boris Rabinovitch"/> + <code value="message/bhttp" /> + <display value="bhttp" /> + <definition value="As defined by rfc9292" /> </concept> <concept> - <code value="model/vnd.opengex"/> - <display value="vnd.opengex"/> - <definition value="As defined by Eric Lengyel"/> + <code value="message/CPIM" /> + <display value="CPIM" /> + <definition value="As defined by rfc3862" /> </concept> <concept> - <code value="model/vnd.parasolid.transmit.binary"/> - <display value="vnd.parasolid.transmit.binary"/> - <definition value="As defined by Parasolid"/> + <code value="message/delivery-status" /> + <display value="delivery-status" /> + <definition value="As defined by rfc1894" /> </concept> <concept> - <code value="model/vnd.parasolid.transmit.text"/> - <display value="vnd.parasolid.transmit.text"/> - <definition value="As defined by Parasolid"/> + <code value="message/disposition-notification" /> + <display value="disposition-notification" /> + <definition value="As defined by rfc8098" /> </concept> <concept> - <code value="model/vnd.pytha.pyox"/> - <display value="vnd.pytha.pyox"/> - <definition value="As defined by Daniel Flassig"/> + <code value="message/example" /> + <display value="example" /> + <definition value="As defined by rfc4735" /> </concept> <concept> - <code value="model/vnd.rosette.annotated-data-model"/> - <display value="vnd.rosette.annotated-data-model"/> - <definition value="As defined by Benson Margulies"/> + <code value="message/external-body" /> + <display value="external-body" /> + <definition value="As defined by rfc2045, and rfc2046" /> </concept> <concept> - <code value="model/vnd.sap.vds"/> - <display value="vnd.sap.vds"/> - <definition value="As defined by SAP SE, and Igor Afanasyev"/> + <code value="message/feedback-report" /> + <display value="feedback-report" /> + <definition value="As defined by rfc5965" /> </concept> <concept> - <code value="model/vnd.usda"/> - <display value="vnd.usda"/> - <definition value="As defined by Sebastian Grassia"/> + <code value="message/global" /> + <display value="global" /> + <definition value="As defined by rfc6532" /> </concept> <concept> - <code value="model/vnd.usdz+zip"/> - <display value="vnd.usdz+zip"/> - <definition value="As defined by Sebastian Grassia"/> + <code value="message/global-delivery-status" /> + <display value="global-delivery-status" /> + <definition value="As defined by rfc6533" /> </concept> <concept> - <code value="model/vnd.valve.source.compiled-map"/> - <display value="vnd.valve.source.compiled-map"/> - <definition value="As defined by Henrik Andersson"/> + <code value="message/global-disposition-notification" /> + <display value="global-disposition-notification" /> + <definition value="As defined by rfc6533" /> </concept> <concept> - <code value="model/vnd.vtu"/> - <display value="vnd.vtu"/> - <definition value="As defined by Boris Rabinovitch"/> + <code value="message/global-headers" /> + <display value="global-headers" /> + <definition value="As defined by rfc6533" /> </concept> <concept> - <code value="model/vrml"/> - <display value="vrml"/> - <definition value="As defined by rfc2077"/> + <code value="message/http" /> + <display value="http" /> + <definition value="As defined by rfc9112" /> </concept> <concept> - <code value="model/x3d-vrml"/> - <display value="x3d-vrml"/> - <definition value="As defined by Web3D, and Web3D X3D"/> + <code value="message/imdn+xml" /> + <display value="imdn+xml" /> + <definition value="As defined by rfc5438" /> </concept> <concept> - <code value="model/x3d+fastinfoset"/> - <display value="x3d+fastinfoset"/> - <definition value="As defined by Web3D X3D"/> + <code value="message/mls" /> + <display value="mls" /> + <definition value="As defined by rfc9420" /> </concept> <concept> - <code value="model/x3d+xml"/> - <display value="x3d+xml"/> - <definition value="As defined by Web3D, and Web3D X3D"/> + <code value="message/ohttp-req" /> + <display value="ohttp-req" /> + <definition value="As defined by rfc9458" /> </concept> <concept> - <code value="multipart/alternative"/> - <display value="alternative"/> - <definition value="As defined by rfc2046, and rfc2045"/> + <code value="message/ohttp-res" /> + <display value="ohttp-res" /> + <definition value="As defined by rfc9458" /> </concept> <concept> - <code value="multipart/appledouble"/> - <display value="appledouble"/> - <definition value="As defined by Patrik Faltstrom"/> + <code value="message/partial" /> + <display value="partial" /> + <definition value="As defined by rfc2045, and rfc2046" /> </concept> <concept> - <code value="multipart/byteranges"/> - <display value="byteranges"/> - <definition value="As defined by rfc9110"/> + <code value="message/rfc822" /> + <display value="rfc822" /> + <definition value="As defined by rfc2045, and rfc2046" /> </concept> <concept> - <code value="multipart/digest"/> - <display value="digest"/> - <definition value="As defined by rfc2046, and rfc2045"/> + <code value="message/sip" /> + <display value="sip" /> + <definition value="As defined by rfc3261" /> </concept> <concept> - <code value="multipart/encrypted"/> - <display value="encrypted"/> - <definition value="As defined by rfc1847"/> + <code value="message/sipfrag" /> + <display value="sipfrag" /> + <definition value="As defined by rfc3420" /> </concept> <concept> - <code value="multipart/example"/> - <display value="example"/> - <definition value="As defined by rfc4735"/> + <code value="message/tracking-status" /> + <display value="tracking-status" /> + <definition value="As defined by rfc3886" /> </concept> <concept> - <code value="multipart/form-data"/> - <display value="form-data"/> - <definition value="As defined by rfc7578"/> + <code value="message/vnd.wfa.wsc" /> + <display value="vnd.wfa.wsc" /> + <definition value="As defined by Mick Conley" /> </concept> <concept> - <code value="multipart/header-set"/> - <display value="header-set"/> - <definition value="As defined by Dave Crocker"/> + <code value="model/3mf" /> + <display value="3mf" /> + <definition value="As defined by http://www.3mf.io/specification, 3MF, and Michael Sweet" /> </concept> <concept> - <code value="multipart/mixed"/> - <display value="mixed"/> - <definition value="As defined by rfc2046, and rfc2045"/> + <code value="model/e57" /> + <display value="e57" /> + <definition value="As defined by ASTM" /> </concept> <concept> - <code value="multipart/multilingual"/> - <display value="multilingual"/> - <definition value="As defined by rfc8255"/> + <code value="model/example" /> + <display value="example" /> + <definition value="As defined by rfc4735" /> </concept> <concept> - <code value="multipart/parallel"/> - <display value="parallel"/> - <definition value="As defined by rfc2046, and rfc2045"/> + <code value="model/gltf-binary" /> + <display value="gltf-binary" /> + <definition value="As defined by Khronos, and Saurabh Bhatia" /> </concept> <concept> - <code value="multipart/related"/> - <display value="related"/> - <definition value="As defined by rfc2387"/> + <code value="model/gltf+json" /> + <display value="gltf+json" /> + <definition value="As defined by Khronos, and Uli Klumpp" /> </concept> <concept> - <code value="multipart/report"/> - <display value="report"/> - <definition value="As defined by rfc6522"/> + <code value="model/JT" /> + <display value="JT" /> + <definition value="As defined by ISO-TC 184-SC 4, and Michael Zink" /> </concept> <concept> - <code value="multipart/signed"/> - <display value="signed"/> - <definition value="As defined by rfc1847"/> + <code value="model/iges" /> + <display value="iges" /> + <definition value="As defined by Curtis Parks" /> </concept> <concept> - <code value="multipart/vnd.bint.med-plus"/> - <display value="vnd.bint.med-plus"/> - <definition value="As defined by Heinz-Peter Schütz"/> + <code value="model/mesh" /> + <display value="mesh" /> + <definition value="As defined by rfc2077" /> </concept> <concept> - <code value="multipart/voice-message"/> - <display value="voice-message"/> - <definition value="As defined by rfc3801"/> + <code value="model/mtl" /> + <display value="mtl" /> + <definition value="As defined by DICOM Standard Committee, DICOM WG 17, and Carolyn Hull" /> </concept> <concept> - <code value="multipart/x-mixed-replace"/> - <display value="x-mixed-replace"/> - <definition value="As defined by W3C, and Robin Berjon"/> + <code value="model/obj" /> + <display value="obj" /> + <definition value="As defined by DICOM Standard Committee, DICOM WG 17, and Carolyn Hull" /> </concept> <concept> - <code value="text/1d-interleaved-parityfec"/> - <display value="1d-interleaved-parityfec"/> - <definition value="As defined by rfc6015"/> + <code value="model/prc" /> + <display value="prc" /> + <definition value="As defined by ISO-TC 171-SC 2, and Betsy Fanning" /> </concept> <concept> - <code value="text/cache-manifest"/> - <display value="cache-manifest"/> - <definition value="As defined by W3C, and Robin Berjon"/> + <code value="model/step" /> + <display value="step" /> + <definition value="As defined by ISO-TC 184-SC 4, and Dana Tripp" /> </concept> <concept> - <code value="text/calendar"/> - <display value="calendar"/> - <definition value="As defined by rfc5545"/> + <code value="model/step+xml" /> + <display value="step+xml" /> + <definition value="As defined by ISO-TC 184-SC 4, and Dana Tripp" /> </concept> <concept> - <code value="text/cql"/> - <display value="cql"/> - <definition value="As defined by HL7, and Bryn Rhodes"/> + <code value="model/step+zip" /> + <display value="step+zip" /> + <definition value="As defined by ISO-TC 184-SC 4, and Dana Tripp" /> </concept> <concept> - <code value="text/cql-expression"/> - <display value="cql-expression"/> - <definition value="As defined by HL7, and Bryn Rhodes"/> + <code value="model/step-xml+zip" /> + <display value="step-xml+zip" /> + <definition value="As defined by ISO-TC 184-SC 4, and Dana Tripp" /> </concept> <concept> - <code value="text/cql-identifier"/> - <display value="cql-identifier"/> - <definition value="As defined by HL7, and Bryn Rhodes"/> + <code value="model/stl" /> + <display value="stl" /> + <definition value="As defined by DICOM Standard Committee, DICOM WG 17, and Carolyn Hull" /> </concept> <concept> - <code value="text/css"/> - <display value="css"/> - <definition value="As defined by rfc2318"/> + <code value="model/u3d" /> + <display value="u3d" /> + <definition value="As defined by PDF Association, and Peter Wyatt" /> </concept> <concept> - <code value="text/csv"/> - <display value="csv"/> - <definition value="As defined by rfc4180, and rfc7111"/> + <code value="model/vnd.bary" /> + <display value="vnd.bary" /> + <definition value="As defined by Displaced Micro-Mesh SDK Support" /> </concept> <concept> - <code value="text/csv-schema"/> - <display value="csv-schema"/> - <definition value="As defined by National Archives UK, and David Underdown"/> + <code value="model/vnd.cld" /> + <display value="vnd.cld" /> + <definition value="As defined by Robert Monaghan" /> </concept> <concept> - <code value="text/directory - DEPRECATED by RFC6350"/> - <display value="directory - DEPRECATED by RFC6350"/> - <definition value="As defined by rfc2425, and rfc6350"/> + <code value="model/vnd.collada+xml" /> + <display value="vnd.collada+xml" /> + <definition value="As defined by James Riordon" /> </concept> <concept> - <code value="text/dns"/> - <display value="dns"/> - <definition value="As defined by rfc4027"/> + <code value="model/vnd.dwf" /> + <display value="vnd.dwf" /> + <definition value="As defined by Jason Pratt" /> </concept> <concept> - <code value="text/encaprtp"/> - <display value="encaprtp"/> - <definition value="As defined by rfc6849"/> + <code value="model/vnd.flatland.3dml" /> + <display value="vnd.flatland.3dml" /> + <definition value="As defined by Michael Powers" /> </concept> <concept> - <code value="text/enriched"/> - <display value="enriched"/> - <definition value="As defined by rfc1896"/> + <code value="model/vnd.gdl" /> + <display value="vnd.gdl" /> + <definition value="As defined by Attila Babits" /> </concept> <concept> - <code value="text/example"/> - <display value="example"/> - <definition value="As defined by rfc4735"/> + <code value="model/vnd.gs-gdl" /> + <display value="vnd.gs-gdl" /> + <definition value="As defined by Attila Babits" /> </concept> <concept> - <code value="text/fhirpath"/> - <display value="fhirpath"/> - <definition value="As defined by HL7, and Bryn Rhodes"/> + <code value="model/vnd.gtw" /> + <display value="vnd.gtw" /> + <definition value="As defined by Yutaka Ozaki" /> </concept> <concept> - <code value="text/flexfec"/> - <display value="flexfec"/> - <definition value="As defined by rfc8627"/> + <code value="model/vnd.moml+xml" /> + <display value="vnd.moml+xml" /> + <definition value="As defined by Christopher Brooks" /> </concept> <concept> - <code value="text/fwdred"/> - <display value="fwdred"/> - <definition value="As defined by rfc6354"/> + <code value="model/vnd.mts" /> + <display value="vnd.mts" /> + <definition value="As defined by Boris Rabinovitch" /> </concept> <concept> - <code value="text/gff3"/> - <display value="gff3"/> - <definition value="As defined by Sequence Ontology"/> + <code value="model/vnd.opengex" /> + <display value="vnd.opengex" /> + <definition value="As defined by Eric Lengyel" /> </concept> <concept> - <code value="text/grammar-ref-list"/> - <display value="grammar-ref-list"/> - <definition value="As defined by rfc6787"/> + <code value="model/vnd.parasolid.transmit.binary" /> + <display value="vnd.parasolid.transmit.binary" /> + <definition value="As defined by Parasolid" /> </concept> <concept> - <code value="text/hl7v2"/> - <display value="hl7v2"/> - <definition value="As defined by HL7, and Marc Duteau"/> + <code value="model/vnd.parasolid.transmit.text" /> + <display value="vnd.parasolid.transmit.text" /> + <definition value="As defined by Parasolid" /> </concept> <concept> - <code value="text/html"/> - <display value="html"/> - <definition value="As defined by W3C, and Robin Berjon"/> + <code value="model/vnd.pytha.pyox" /> + <display value="vnd.pytha.pyox" /> + <definition value="As defined by Daniel Flassig" /> </concept> <concept> - <code value="text/javascript"/> - <display value="javascript"/> - <definition value="As defined by rfc9239"/> + <code value="model/vnd.rosette.annotated-data-model" /> + <display value="vnd.rosette.annotated-data-model" /> + <definition value="As defined by Benson Margulies" /> </concept> <concept> - <code value="text/jcr-cnd"/> - <display value="jcr-cnd"/> - <definition value="As defined by Peeter Piegaze"/> + <code value="model/vnd.sap.vds" /> + <display value="vnd.sap.vds" /> + <definition value="As defined by SAP SE, and Igor Afanasyev" /> </concept> <concept> - <code value="text/markdown"/> - <display value="markdown"/> - <definition value="As defined by rfc7763"/> + <code value="model/vnd.usda" /> + <display value="vnd.usda" /> + <definition value="As defined by Sebastian Grassia" /> </concept> <concept> - <code value="text/mizar"/> - <display value="mizar"/> - <definition value="As defined by Jesse Alama"/> + <code value="model/vnd.usdz+zip" /> + <display value="vnd.usdz+zip" /> + <definition value="As defined by Sebastian Grassia" /> </concept> <concept> - <code value="text/n3"/> - <display value="n3"/> - <definition value="As defined by W3C, and Eric Prudhommeaux"/> + <code value="model/vnd.valve.source.compiled-map" /> + <display value="vnd.valve.source.compiled-map" /> + <definition value="As defined by Henrik Andersson" /> </concept> <concept> - <code value="text/parameters"/> - <display value="parameters"/> - <definition value="As defined by rfc7826"/> + <code value="model/vnd.vtu" /> + <display value="vnd.vtu" /> + <definition value="As defined by Boris Rabinovitch" /> </concept> <concept> - <code value="text/parityfec"/> - <display value="parityfec"/> - <definition value="As defined by rfc3009"/> + <code value="model/vrml" /> + <display value="vrml" /> + <definition value="As defined by rfc2077" /> </concept> <concept> - <code value="text/plain"/> - <display value="plain"/> - <definition value="As defined by rfc2046, rfc3676, and rfc5147"/> + <code value="model/x3d-vrml" /> + <display value="x3d-vrml" /> + <definition value="As defined by Web3D, and Web3D X3D" /> </concept> <concept> - <code value="text/provenance-notation"/> - <display value="provenance-notation"/> - <definition value="As defined by W3C, and Ivan Herman"/> + <code value="model/x3d+fastinfoset" /> + <display value="x3d+fastinfoset" /> + <definition value="As defined by Web3D X3D" /> </concept> <concept> - <code value="text/prs.fallenstein.rst"/> - <display value="prs.fallenstein.rst"/> - <definition value="As defined by Benja Fallenstein"/> + <code value="model/x3d+xml" /> + <display value="x3d+xml" /> + <definition value="As defined by Web3D, and Web3D X3D" /> </concept> <concept> - <code value="text/prs.lines.tag"/> - <display value="prs.lines.tag"/> - <definition value="As defined by John Lines"/> + <code value="multipart/alternative" /> + <display value="alternative" /> + <definition value="As defined by rfc2046, and rfc2045" /> </concept> <concept> - <code value="text/prs.prop.logic"/> - <display value="prs.prop.logic"/> - <definition value="As defined by Hans-Dieter A. Hiep"/> + <code value="multipart/appledouble" /> + <display value="appledouble" /> + <definition value="As defined by Patrik Faltstrom" /> </concept> <concept> - <code value="text/prs.texi"/> - <display value="prs.texi"/> - <definition value="As defined by Matin Bavardi"/> + <code value="multipart/byteranges" /> + <display value="byteranges" /> + <definition value="As defined by rfc9110" /> </concept> <concept> - <code value="text/raptorfec"/> - <display value="raptorfec"/> - <definition value="As defined by rfc6682"/> + <code value="multipart/digest" /> + <display value="digest" /> + <definition value="As defined by rfc2046, and rfc2045" /> </concept> <concept> - <code value="text/RED"/> - <display value="RED"/> - <definition value="As defined by rfc4102"/> + <code value="multipart/encrypted" /> + <display value="encrypted" /> + <definition value="As defined by rfc1847" /> </concept> <concept> - <code value="text/rfc822-headers"/> - <display value="rfc822-headers"/> - <definition value="As defined by rfc6522"/> + <code value="multipart/example" /> + <display value="example" /> + <definition value="As defined by rfc4735" /> </concept> <concept> - <code value="text/richtext"/> - <display value="richtext"/> - <definition value="As defined by rfc2045, and rfc2046"/> + <code value="multipart/form-data" /> + <display value="form-data" /> + <definition value="As defined by rfc7578" /> </concept> <concept> - <code value="text/rtf"/> - <display value="rtf"/> - <definition value="As defined by Paul Lindner"/> + <code value="multipart/header-set" /> + <display value="header-set" /> + <definition value="As defined by Dave Crocker" /> </concept> <concept> - <code value="text/rtp-enc-aescm128"/> - <display value="rtp-enc-aescm128"/> - <definition value="As defined by 3GPP"/> + <code value="multipart/mixed" /> + <display value="mixed" /> + <definition value="As defined by rfc2046, and rfc2045" /> </concept> <concept> - <code value="text/rtploopback"/> - <display value="rtploopback"/> - <definition value="As defined by rfc6849"/> + <code value="multipart/multilingual" /> + <display value="multilingual" /> + <definition value="As defined by rfc8255" /> </concept> <concept> - <code value="text/rtx"/> - <display value="rtx"/> - <definition value="As defined by rfc4588"/> + <code value="multipart/parallel" /> + <display value="parallel" /> + <definition value="As defined by rfc2046, and rfc2045" /> </concept> <concept> - <code value="text/SGML"/> - <display value="SGML"/> - <definition value="As defined by rfc1874"/> + <code value="multipart/related" /> + <display value="related" /> + <definition value="As defined by rfc2387" /> </concept> <concept> - <code value="text/shaclc"/> - <display value="shaclc"/> - <definition value="As defined by W3C SHACL Community Group, and Vladimir Alexiev"/> + <code value="multipart/report" /> + <display value="report" /> + <definition value="As defined by rfc6522" /> </concept> <concept> - <code value="text/shex"/> - <display value="shex"/> - <definition value="As defined by W3C, and Eric Prudhommeaux"/> + <code value="multipart/signed" /> + <display value="signed" /> + <definition value="As defined by rfc1847" /> </concept> <concept> - <code value="text/spdx"/> - <display value="spdx"/> - <definition value="As defined by Linux Foundation, and Rose Judge"/> + <code value="multipart/vnd.bint.med-plus" /> + <display value="vnd.bint.med-plus" /> + <definition value="As defined by Heinz-Peter Schütz" /> </concept> <concept> - <code value="text/strings"/> - <display value="strings"/> - <definition value="As defined by IEEE-ISTO-PWG-PPP"/> + <code value="multipart/voice-message" /> + <display value="voice-message" /> + <definition value="As defined by rfc3801" /> </concept> <concept> - <code value="text/t140"/> - <display value="t140"/> - <definition value="As defined by rfc4103"/> + <code value="multipart/x-mixed-replace" /> + <display value="x-mixed-replace" /> + <definition value="As defined by W3C, and Robin Berjon" /> </concept> <concept> - <code value="text/tab-separated-values"/> - <display value="tab-separated-values"/> - <definition value="As defined by Paul Lindner"/> + <code value="text/1d-interleaved-parityfec" /> + <display value="1d-interleaved-parityfec" /> + <definition value="As defined by rfc6015" /> </concept> <concept> - <code value="text/troff"/> - <display value="troff"/> - <definition value="As defined by rfc4263"/> + <code value="text/cache-manifest" /> + <display value="cache-manifest" /> + <definition value="As defined by W3C, and Robin Berjon" /> </concept> <concept> - <code value="text/turtle"/> - <display value="turtle"/> - <definition value="As defined by W3C, and Eric Prudhommeaux"/> + <code value="text/calendar" /> + <display value="calendar" /> + <definition value="As defined by rfc5545" /> </concept> <concept> - <code value="text/ulpfec"/> - <display value="ulpfec"/> - <definition value="As defined by rfc5109"/> + <code value="text/cql" /> + <display value="cql" /> + <definition value="As defined by HL7, and Bryn Rhodes" /> </concept> <concept> - <code value="text/uri-list"/> - <display value="uri-list"/> - <definition value="As defined by rfc2483"/> + <code value="text/cql-expression" /> + <display value="cql-expression" /> + <definition value="As defined by HL7, and Bryn Rhodes" /> </concept> <concept> - <code value="text/vcard"/> - <display value="vcard"/> - <definition value="As defined by rfc6350"/> + <code value="text/cql-identifier" /> + <display value="cql-identifier" /> + <definition value="As defined by HL7, and Bryn Rhodes" /> </concept> <concept> - <code value="text/vnd.a"/> - <display value="vnd.a"/> - <definition value="As defined by Regis Dehoux"/> + <code value="text/css" /> + <display value="css" /> + <definition value="As defined by rfc2318" /> </concept> <concept> - <code value="text/vnd.abc"/> - <display value="vnd.abc"/> - <definition value="As defined by Steve Allen"/> + <code value="text/csv" /> + <display value="csv" /> + <definition value="As defined by rfc4180, and rfc7111" /> </concept> <concept> - <code value="text/vnd.ascii-art"/> - <display value="vnd.ascii-art"/> - <definition value="As defined by Kim Scarborough"/> + <code value="text/csv-schema" /> + <display value="csv-schema" /> + <definition value="As defined by National Archives UK, and David Underdown" /> </concept> <concept> - <code value="text/vnd.curl"/> - <display value="vnd.curl"/> - <definition value="As defined by Robert Byrnes"/> + <code value="text/directory - DEPRECATED by RFC6350" /> + <display value="directory - DEPRECATED by RFC6350" /> + <definition value="As defined by rfc2425, and rfc6350" /> </concept> <concept> - <code value="text/vnd.debian.copyright"/> - <display value="vnd.debian.copyright"/> - <definition value="As defined by Charles Plessy"/> + <code value="text/dns" /> + <display value="dns" /> + <definition value="As defined by rfc4027" /> </concept> <concept> - <code value="text/vnd.DMClientScript"/> - <display value="vnd.DMClientScript"/> - <definition value="As defined by Dan Bradley"/> + <code value="text/encaprtp" /> + <display value="encaprtp" /> + <definition value="As defined by rfc6849" /> </concept> <concept> - <code value="text/vnd.dvb.subtitle"/> - <display value="vnd.dvb.subtitle"/> - <definition value="As defined by Peter Siebert, and Michael Lagally"/> + <code value="text/enriched" /> + <display value="enriched" /> + <definition value="As defined by rfc1896" /> </concept> <concept> - <code value="text/vnd.esmertec.theme-descriptor"/> - <display value="vnd.esmertec.theme-descriptor"/> - <definition value="As defined by Stefan Eilemann"/> + <code value="text/example" /> + <display value="example" /> + <definition value="As defined by rfc4735" /> </concept> <concept> - <code value="text/vnd.exchangeable"/> - <display value="vnd.exchangeable"/> - <definition value="As defined by Martin Cizek"/> + <code value="text/fhirpath" /> + <display value="fhirpath" /> + <definition value="As defined by HL7, and Bryn Rhodes" /> </concept> <concept> - <code value="text/vnd.familysearch.gedcom"/> - <display value="vnd.familysearch.gedcom"/> - <definition value="As defined by Gordon Clarke"/> + <code value="text/flexfec" /> + <display value="flexfec" /> + <definition value="As defined by rfc8627" /> </concept> <concept> - <code value="text/vnd.ficlab.flt"/> - <display value="vnd.ficlab.flt"/> - <definition value="As defined by Steve Gilberd"/> + <code value="text/fwdred" /> + <display value="fwdred" /> + <definition value="As defined by rfc6354" /> </concept> <concept> - <code value="text/vnd.fly"/> - <display value="vnd.fly"/> - <definition value="As defined by John-Mark Gurney"/> + <code value="text/gff3" /> + <display value="gff3" /> + <definition value="As defined by Sequence Ontology" /> </concept> <concept> - <code value="text/vnd.fmi.flexstor"/> - <display value="vnd.fmi.flexstor"/> - <definition value="As defined by Kari E. Hurtta"/> + <code value="text/grammar-ref-list" /> + <display value="grammar-ref-list" /> + <definition value="As defined by rfc6787" /> </concept> <concept> - <code value="text/vnd.gml"/> - <display value="vnd.gml"/> - <definition value="As defined by Mi Tar"/> + <code value="text/hl7v2" /> + <display value="hl7v2" /> + <definition value="As defined by HL7, and Marc Duteau" /> </concept> <concept> - <code value="text/vnd.graphviz"/> - <display value="vnd.graphviz"/> - <definition value="As defined by John Ellson"/> + <code value="text/html" /> + <display value="html" /> + <definition value="As defined by W3C, and Robin Berjon" /> </concept> <concept> - <code value="text/vnd.hans"/> - <display value="vnd.hans"/> - <definition value="As defined by Hill Hanxv"/> + <code value="text/javascript" /> + <display value="javascript" /> + <definition value="As defined by rfc9239" /> </concept> <concept> - <code value="text/vnd.hgl"/> - <display value="vnd.hgl"/> - <definition value="As defined by Heungsub Lee"/> + <code value="text/jcr-cnd" /> + <display value="jcr-cnd" /> + <definition value="As defined by Peeter Piegaze" /> </concept> <concept> - <code value="text/vnd.in3d.3dml"/> - <display value="vnd.in3d.3dml"/> - <definition value="As defined by Michael Powers"/> + <code value="text/markdown" /> + <display value="markdown" /> + <definition value="As defined by rfc7763" /> </concept> <concept> - <code value="text/vnd.in3d.spot"/> - <display value="vnd.in3d.spot"/> - <definition value="As defined by Michael Powers"/> + <code value="text/mizar" /> + <display value="mizar" /> + <definition value="As defined by Jesse Alama" /> </concept> <concept> - <code value="text/vnd.IPTC.NewsML"/> - <display value="vnd.IPTC.NewsML"/> - <definition value="As defined by IPTC"/> + <code value="text/n3" /> + <display value="n3" /> + <definition value="As defined by W3C, and Eric Prudhommeaux" /> </concept> <concept> - <code value="text/vnd.IPTC.NITF"/> - <display value="vnd.IPTC.NITF"/> - <definition value="As defined by IPTC"/> + <code value="text/org" /> + <display value="org" /> + <definition value="As defined by Org Mode, Jeffrey Gipson, and 4" /> </concept> <concept> - <code value="text/vnd.latex-z"/> - <display value="vnd.latex-z"/> - <definition value="As defined by Mikusiak Lubos"/> + <code value="text/parameters" /> + <display value="parameters" /> + <definition value="As defined by rfc7826" /> </concept> <concept> - <code value="text/vnd.motorola.reflex"/> - <display value="vnd.motorola.reflex"/> - <definition value="As defined by Mark Patton"/> + <code value="text/parityfec" /> + <display value="parityfec" /> + <definition value="As defined by rfc3009" /> </concept> <concept> - <code value="text/vnd.ms-mediapackage"/> - <display value="vnd.ms-mediapackage"/> - <definition value="As defined by Jan Nelson"/> + <code value="text/plain" /> + <display value="plain" /> + <definition value="As defined by rfc2046, rfc3676, and rfc5147" /> </concept> <concept> - <code value="text/vnd.net2phone.commcenter.command"/> - <display value="vnd.net2phone.commcenter.command"/> - <definition value="As defined by Feiyu Xie"/> + <code value="text/provenance-notation" /> + <display value="provenance-notation" /> + <definition value="As defined by W3C, and Ivan Herman" /> </concept> <concept> - <code value="text/vnd.radisys.msml-basic-layout"/> - <display value="vnd.radisys.msml-basic-layout"/> - <definition value="As defined by rfc5707"/> + <code value="text/prs.fallenstein.rst" /> + <display value="prs.fallenstein.rst" /> + <definition value="As defined by Benja Fallenstein" /> </concept> <concept> - <code value="text/vnd.senx.warpscript"/> - <display value="vnd.senx.warpscript"/> - <definition value="As defined by Pierre Papin"/> + <code value="text/prs.lines.tag" /> + <display value="prs.lines.tag" /> + <definition value="As defined by John Lines" /> </concept> <concept> - <code value="text/vnd.sun.j2me.app-descriptor"/> - <display value="vnd.sun.j2me.app-descriptor"/> - <definition value="As defined by Gary Adams"/> + <code value="text/prs.prop.logic" /> + <display value="prs.prop.logic" /> + <definition value="As defined by Hans-Dieter A. Hiep" /> </concept> <concept> - <code value="text/vnd.sosi"/> - <display value="vnd.sosi"/> - <definition value="As defined by Petter Reinholdtsen"/> + <code value="text/prs.texi" /> + <display value="prs.texi" /> + <definition value="As defined by Matin Bavardi" /> </concept> <concept> - <code value="text/vnd.trolltech.linguist"/> - <display value="vnd.trolltech.linguist"/> - <definition value="As defined by David Lee Lambert"/> + <code value="text/raptorfec" /> + <display value="raptorfec" /> + <definition value="As defined by rfc6682" /> </concept> <concept> - <code value="text/vnd.vcf"/> - <display value="vnd.vcf"/> - <definition value="As defined by Anand Jahagirdar"/> + <code value="text/RED" /> + <display value="RED" /> + <definition value="As defined by rfc4102" /> </concept> <concept> - <code value="text/vnd.wap.si"/> - <display value="vnd.wap.si"/> - <definition value="As defined by WAP-Forum"/> + <code value="text/rfc822-headers" /> + <display value="rfc822-headers" /> + <definition value="As defined by rfc6522" /> </concept> <concept> - <code value="text/vnd.wap.sl"/> - <display value="vnd.wap.sl"/> - <definition value="As defined by WAP-Forum"/> + <code value="text/richtext" /> + <display value="richtext" /> + <definition value="As defined by rfc2045, and rfc2046" /> </concept> <concept> - <code value="text/vnd.wap.wml"/> - <display value="vnd.wap.wml"/> - <definition value="As defined by Peter Stark"/> + <code value="text/rtf" /> + <display value="rtf" /> + <definition value="As defined by Paul Lindner" /> </concept> <concept> - <code value="text/vnd.wap.wmlscript"/> - <display value="vnd.wap.wmlscript"/> - <definition value="As defined by Peter Stark"/> + <code value="text/rtp-enc-aescm128" /> + <display value="rtp-enc-aescm128" /> + <definition value="As defined by 3GPP" /> </concept> <concept> - <code value="text/vnd.zoo.kcl"/> - <display value="vnd.zoo.kcl"/> - <definition value="As defined by Jessie Frazelle"/> + <code value="text/rtploopback" /> + <display value="rtploopback" /> + <definition value="As defined by rfc6849" /> </concept> <concept> - <code value="text/vtt"/> - <display value="vtt"/> - <definition value="As defined by W3C, and Silvia Pfeiffer"/> + <code value="text/rtx" /> + <display value="rtx" /> + <definition value="As defined by rfc4588" /> </concept> <concept> - <code value="text/wgsl"/> - <display value="wgsl"/> - <definition value="As defined by W3C, and David Neto"/> + <code value="text/SGML" /> + <display value="SGML" /> + <definition value="As defined by rfc1874" /> </concept> <concept> - <code value="text/xml"/> - <display value="xml"/> - <definition value="As defined by rfc7303"/> + <code value="text/shaclc" /> + <display value="shaclc" /> + <definition value="As defined by W3C SHACL Community Group, and Vladimir Alexiev" /> </concept> <concept> - <code value="text/xml-external-parsed-entity"/> - <display value="xml-external-parsed-entity"/> - <definition value="As defined by rfc7303"/> + <code value="text/shex" /> + <display value="shex" /> + <definition value="As defined by W3C, and Eric Prudhommeaux" /> </concept> <concept> - <code value="video/1d-interleaved-parityfec"/> - <display value="1d-interleaved-parityfec"/> - <definition value="As defined by rfc6015"/> + <code value="text/spdx" /> + <display value="spdx" /> + <definition value="As defined by Linux Foundation, and Rose Judge" /> </concept> <concept> - <code value="video/3gpp"/> - <display value="3gpp"/> - <definition value="As defined by rfc3839, and rfc6381"/> + <code value="text/strings" /> + <display value="strings" /> + <definition value="As defined by IEEE-ISTO-PWG-PPP" /> </concept> <concept> - <code value="video/3gpp2"/> - <display value="3gpp2"/> - <definition value="As defined by rfc4393, and rfc6381"/> + <code value="text/t140" /> + <display value="t140" /> + <definition value="As defined by rfc4103" /> </concept> <concept> - <code value="video/3gpp-tt"/> - <display value="3gpp-tt"/> - <definition value="As defined by rfc4396"/> + <code value="text/tab-separated-values" /> + <display value="tab-separated-values" /> + <definition value="As defined by Paul Lindner" /> </concept> <concept> - <code value="video/AV1"/> - <display value="AV1"/> - <definition value="As defined by Alliance for Open Media"/> + <code value="text/troff" /> + <display value="troff" /> + <definition value="As defined by rfc4263" /> </concept> <concept> - <code value="video/BMPEG"/> - <display value="BMPEG"/> - <definition value="As defined by rfc3555"/> + <code value="text/turtle" /> + <display value="turtle" /> + <definition value="As defined by W3C, and Eric Prudhommeaux" /> </concept> <concept> - <code value="video/BT656"/> - <display value="BT656"/> - <definition value="As defined by rfc3555"/> + <code value="text/ulpfec" /> + <display value="ulpfec" /> + <definition value="As defined by rfc5109" /> </concept> <concept> - <code value="video/CelB"/> - <display value="CelB"/> - <definition value="As defined by rfc3555"/> + <code value="text/uri-list" /> + <display value="uri-list" /> + <definition value="As defined by rfc2483" /> </concept> <concept> - <code value="video/DV"/> - <display value="DV"/> - <definition value="As defined by rfc6469"/> + <code value="text/vcard" /> + <display value="vcard" /> + <definition value="As defined by rfc6350" /> </concept> <concept> - <code value="video/encaprtp"/> - <display value="encaprtp"/> - <definition value="As defined by rfc6849"/> + <code value="text/vnd.a" /> + <display value="vnd.a" /> + <definition value="As defined by Regis Dehoux" /> </concept> <concept> - <code value="video/evc"/> - <display value="evc"/> - <definition value="As defined by rfc9584"/> + <code value="text/vnd.abc" /> + <display value="vnd.abc" /> + <definition value="As defined by Steve Allen" /> </concept> <concept> - <code value="video/example"/> - <display value="example"/> - <definition value="As defined by rfc4735"/> + <code value="text/vnd.ascii-art" /> + <display value="vnd.ascii-art" /> + <definition value="As defined by Kim Scarborough" /> </concept> <concept> - <code value="video/FFV1"/> - <display value="FFV1"/> - <definition value="As defined by rfc9043"/> + <code value="text/vnd.curl" /> + <display value="vnd.curl" /> + <definition value="As defined by Robert Byrnes" /> </concept> <concept> - <code value="video/flexfec"/> - <display value="flexfec"/> - <definition value="As defined by rfc8627"/> + <code value="text/vnd.debian.copyright" /> + <display value="vnd.debian.copyright" /> + <definition value="As defined by Charles Plessy" /> </concept> <concept> - <code value="video/H261"/> - <display value="H261"/> - <definition value="As defined by rfc4587"/> + <code value="text/vnd.DMClientScript" /> + <display value="vnd.DMClientScript" /> + <definition value="As defined by Dan Bradley" /> </concept> <concept> - <code value="video/H263"/> - <display value="H263"/> - <definition value="As defined by rfc3555"/> + <code value="text/vnd.dvb.subtitle" /> + <display value="vnd.dvb.subtitle" /> + <definition value="As defined by Peter Siebert, and Michael Lagally" /> </concept> <concept> - <code value="video/H263-1998"/> - <display value="H263-1998"/> - <definition value="As defined by rfc4629"/> + <code value="text/vnd.esmertec.theme-descriptor" /> + <display value="vnd.esmertec.theme-descriptor" /> + <definition value="As defined by Stefan Eilemann" /> </concept> <concept> - <code value="video/H263-2000"/> - <display value="H263-2000"/> - <definition value="As defined by rfc4629"/> + <code value="text/vnd.exchangeable" /> + <display value="vnd.exchangeable" /> + <definition value="As defined by Martin Cizek" /> </concept> <concept> - <code value="video/H264"/> - <display value="H264"/> - <definition value="As defined by rfc6184"/> + <code value="text/vnd.familysearch.gedcom" /> + <display value="vnd.familysearch.gedcom" /> + <definition value="As defined by Gordon Clarke" /> </concept> <concept> - <code value="video/H264-RCDO"/> - <display value="H264-RCDO"/> - <definition value="As defined by rfc6185"/> + <code value="text/vnd.ficlab.flt" /> + <display value="vnd.ficlab.flt" /> + <definition value="As defined by Steve Gilberd" /> </concept> <concept> - <code value="video/H264-SVC"/> - <display value="H264-SVC"/> - <definition value="As defined by rfc6190"/> + <code value="text/vnd.fly" /> + <display value="vnd.fly" /> + <definition value="As defined by John-Mark Gurney" /> </concept> <concept> - <code value="video/H265"/> - <display value="H265"/> - <definition value="As defined by rfc7798"/> + <code value="text/vnd.fmi.flexstor" /> + <display value="vnd.fmi.flexstor" /> + <definition value="As defined by Kari E. Hurtta" /> </concept> <concept> - <code value="video/H266"/> - <display value="H266"/> - <definition value="As defined by rfc9328"/> + <code value="text/vnd.gml" /> + <display value="vnd.gml" /> + <definition value="As defined by Mi Tar" /> </concept> <concept> - <code value="video/iso.segment"/> - <display value="iso.segment"/> - <definition value="As defined by David Singer, and ISO-IEC JTC 1"/> + <code value="text/vnd.graphviz" /> + <display value="vnd.graphviz" /> + <definition value="As defined by John Ellson" /> </concept> <concept> - <code value="video/JPEG"/> - <display value="JPEG"/> - <definition value="As defined by rfc3555"/> + <code value="text/vnd.hans" /> + <display value="vnd.hans" /> + <definition value="As defined by Hill Hanxv" /> </concept> <concept> - <code value="video/jpeg2000"/> - <display value="jpeg2000"/> - <definition value="As defined by rfc5371, and rfc5372"/> + <code value="text/vnd.hgl" /> + <display value="vnd.hgl" /> + <definition value="As defined by Heungsub Lee" /> </concept> <concept> - <code value="video/jxsv"/> - <display value="jxsv"/> - <definition value="As defined by rfc9134"/> + <code value="text/vnd.in3d.3dml" /> + <display value="vnd.in3d.3dml" /> + <definition value="As defined by Michael Powers" /> </concept> <concept> - <code value="video/matroska"/> - <display value="matroska"/> - <definition value="As defined by rfc9559"/> + <code value="text/vnd.in3d.spot" /> + <display value="vnd.in3d.spot" /> + <definition value="As defined by Michael Powers" /> </concept> <concept> - <code value="video/matroska-3d"/> - <display value="matroska-3d"/> - <definition value="As defined by rfc9559"/> + <code value="text/vnd.IPTC.NewsML" /> + <display value="vnd.IPTC.NewsML" /> + <definition value="As defined by IPTC" /> </concept> <concept> - <code value="video/mj2"/> - <display value="mj2"/> - <definition value="As defined by rfc3745"/> + <code value="text/vnd.IPTC.NITF" /> + <display value="vnd.IPTC.NITF" /> + <definition value="As defined by IPTC" /> </concept> <concept> - <code value="video/MP1S"/> - <display value="MP1S"/> - <definition value="As defined by rfc3555"/> + <code value="text/vnd.latex-z" /> + <display value="vnd.latex-z" /> + <definition value="As defined by Mikusiak Lubos" /> </concept> <concept> - <code value="video/MP2P"/> - <display value="MP2P"/> - <definition value="As defined by rfc3555"/> + <code value="text/vnd.motorola.reflex" /> + <display value="vnd.motorola.reflex" /> + <definition value="As defined by Mark Patton" /> </concept> <concept> - <code value="video/MP2T"/> - <display value="MP2T"/> - <definition value="As defined by rfc3555"/> + <code value="text/vnd.ms-mediapackage" /> + <display value="vnd.ms-mediapackage" /> + <definition value="As defined by Jan Nelson" /> </concept> <concept> - <code value="video/mp4"/> - <display value="mp4"/> - <definition value="As defined by rfc4337, and rfc6381"/> + <code value="text/vnd.net2phone.commcenter.command" /> + <display value="vnd.net2phone.commcenter.command" /> + <definition value="As defined by Feiyu Xie" /> </concept> <concept> - <code value="video/MP4V-ES"/> - <display value="MP4V-ES"/> - <definition value="As defined by rfc6416"/> + <code value="text/vnd.radisys.msml-basic-layout" /> + <display value="vnd.radisys.msml-basic-layout" /> + <definition value="As defined by rfc5707" /> </concept> <concept> - <code value="video/MPV"/> - <display value="MPV"/> - <definition value="As defined by rfc3555"/> + <code value="text/vnd.senx.warpscript" /> + <display value="vnd.senx.warpscript" /> + <definition value="As defined by Pierre Papin" /> </concept> <concept> - <code value="video/mpeg"/> - <display value="mpeg"/> - <definition value="As defined by rfc2045, and rfc2046"/> + <code value="text/vnd.sun.j2me.app-descriptor" /> + <display value="vnd.sun.j2me.app-descriptor" /> + <definition value="As defined by Gary Adams" /> </concept> <concept> - <code value="video/mpeg4-generic"/> - <display value="mpeg4-generic"/> - <definition value="As defined by rfc3640"/> + <code value="text/vnd.sosi" /> + <display value="vnd.sosi" /> + <definition value="As defined by Petter Reinholdtsen" /> </concept> <concept> - <code value="video/nv"/> - <display value="nv"/> - <definition value="As defined by rfc4856"/> + <code value="text/vnd.typst" /> + <display value="vnd.typst" /> + <definition value="As defined by Martin Haug" /> </concept> <concept> - <code value="video/ogg"/> - <display value="ogg"/> - <definition value="As defined by rfc5334, and rfc7845"/> + <code value="text/vnd.trolltech.linguist" /> + <display value="vnd.trolltech.linguist" /> + <definition value="As defined by David Lee Lambert" /> </concept> <concept> - <code value="video/parityfec"/> - <display value="parityfec"/> - <definition value="As defined by rfc3009"/> + <code value="text/vnd.vcf" /> + <display value="vnd.vcf" /> + <definition value="As defined by Anand Jahagirdar" /> </concept> <concept> - <code value="video/pointer"/> - <display value="pointer"/> - <definition value="As defined by rfc2862"/> + <code value="text/vnd.wap.si" /> + <display value="vnd.wap.si" /> + <definition value="As defined by WAP-Forum" /> </concept> <concept> - <code value="video/quicktime"/> - <display value="quicktime"/> - <definition value="As defined by rfc6381, and Paul Lindner"/> + <code value="text/vnd.wap.sl" /> + <display value="vnd.wap.sl" /> + <definition value="As defined by WAP-Forum" /> </concept> <concept> - <code value="video/raptorfec"/> - <display value="raptorfec"/> - <definition value="As defined by rfc6682"/> + <code value="text/vnd.wap.wml" /> + <display value="vnd.wap.wml" /> + <definition value="As defined by Peter Stark" /> </concept> <concept> - <code value="video/raw"/> - <display value="raw"/> - <definition value="As defined by rfc4175"/> + <code value="text/vnd.wap.wmlscript" /> + <display value="vnd.wap.wmlscript" /> + <definition value="As defined by Peter Stark" /> </concept> <concept> - <code value="video/rtp-enc-aescm128"/> - <display value="rtp-enc-aescm128"/> - <definition value="As defined by 3GPP"/> + <code value="text/vnd.zoo.kcl" /> + <display value="vnd.zoo.kcl" /> + <definition value="As defined by Jessie Frazelle" /> </concept> <concept> - <code value="video/rtploopback"/> - <display value="rtploopback"/> - <definition value="As defined by rfc6849"/> + <code value="text/vtt" /> + <display value="vtt" /> + <definition value="As defined by W3C, and Silvia Pfeiffer" /> </concept> <concept> - <code value="video/rtx"/> - <display value="rtx"/> - <definition value="As defined by rfc4588"/> + <code value="text/wgsl" /> + <display value="wgsl" /> + <definition value="As defined by W3C, and David Neto" /> </concept> <concept> - <code value="video/scip"/> - <display value="scip"/> - <definition value="As defined by rfc9607"/> + <code value="text/xml" /> + <display value="xml" /> + <definition value="As defined by rfc7303" /> </concept> <concept> - <code value="video/smpte291"/> - <display value="smpte291"/> - <definition value="As defined by rfc8331"/> + <code value="text/xml-external-parsed-entity" /> + <display value="xml-external-parsed-entity" /> + <definition value="As defined by rfc7303" /> </concept> <concept> - <code value="video/SMPTE292M"/> - <display value="SMPTE292M"/> - <definition value="As defined by rfc3497"/> + <code value="video/1d-interleaved-parityfec" /> + <display value="1d-interleaved-parityfec" /> + <definition value="As defined by rfc6015" /> </concept> <concept> - <code value="video/ulpfec"/> - <display value="ulpfec"/> - <definition value="As defined by rfc5109"/> + <code value="video/3gpp" /> + <display value="3gpp" /> + <definition value="As defined by rfc3839, and rfc6381" /> </concept> <concept> - <code value="video/vc1"/> - <display value="vc1"/> - <definition value="As defined by rfc4425"/> + <code value="video/3gpp2" /> + <display value="3gpp2" /> + <definition value="As defined by rfc4393, and rfc6381" /> </concept> <concept> - <code value="video/vc2"/> - <display value="vc2"/> - <definition value="As defined by rfc8450"/> + <code value="video/3gpp-tt" /> + <display value="3gpp-tt" /> + <definition value="As defined by rfc4396" /> </concept> <concept> - <code value="video/vnd.CCTV"/> - <display value="vnd.CCTV"/> - <definition value="As defined by Frank Rottmann"/> + <code value="video/AV1" /> + <display value="AV1" /> + <definition value="As defined by Alliance for Open Media" /> </concept> <concept> - <code value="video/vnd.dece.hd"/> - <display value="vnd.dece.hd"/> - <definition value="As defined by Michael A Dolan"/> + <code value="video/BMPEG" /> + <display value="BMPEG" /> + <definition value="As defined by rfc3555" /> </concept> <concept> - <code value="video/vnd.dece.mobile"/> - <display value="vnd.dece.mobile"/> - <definition value="As defined by Michael A Dolan"/> + <code value="video/BT656" /> + <display value="BT656" /> + <definition value="As defined by rfc3555" /> </concept> <concept> - <code value="video/vnd.dece.mp4"/> - <display value="vnd.dece.mp4"/> - <definition value="As defined by Michael A Dolan"/> + <code value="video/CelB" /> + <display value="CelB" /> + <definition value="As defined by rfc3555" /> </concept> <concept> - <code value="video/vnd.dece.pd"/> - <display value="vnd.dece.pd"/> - <definition value="As defined by Michael A Dolan"/> + <code value="video/DV" /> + <display value="DV" /> + <definition value="As defined by rfc6469" /> </concept> <concept> - <code value="video/vnd.dece.sd"/> - <display value="vnd.dece.sd"/> - <definition value="As defined by Michael A Dolan"/> + <code value="video/encaprtp" /> + <display value="encaprtp" /> + <definition value="As defined by rfc6849" /> </concept> <concept> - <code value="video/vnd.dece.video"/> - <display value="vnd.dece.video"/> - <definition value="As defined by Michael A Dolan"/> + <code value="video/evc" /> + <display value="evc" /> + <definition value="As defined by rfc9584" /> </concept> <concept> - <code value="video/vnd.directv.mpeg"/> - <display value="vnd.directv.mpeg"/> - <definition value="As defined by Nathan Zerbe"/> + <code value="video/example" /> + <display value="example" /> + <definition value="As defined by rfc4735" /> </concept> <concept> - <code value="video/vnd.directv.mpeg-tts"/> - <display value="vnd.directv.mpeg-tts"/> - <definition value="As defined by Nathan Zerbe"/> + <code value="video/FFV1" /> + <display value="FFV1" /> + <definition value="As defined by rfc9043" /> </concept> <concept> - <code value="video/vnd.dlna.mpeg-tts"/> - <display value="vnd.dlna.mpeg-tts"/> - <definition value="As defined by Edwin Heredia"/> + <code value="video/flexfec" /> + <display value="flexfec" /> + <definition value="As defined by rfc8627" /> </concept> <concept> - <code value="video/vnd.dvb.file"/> - <display value="vnd.dvb.file"/> - <definition value="As defined by Peter Siebert, and Kevin Murray"/> + <code value="video/H261" /> + <display value="H261" /> + <definition value="As defined by rfc4587" /> </concept> <concept> - <code value="video/vnd.fvt"/> - <display value="vnd.fvt"/> - <definition value="As defined by Arild Fuldseth"/> + <code value="video/H263" /> + <display value="H263" /> + <definition value="As defined by rfc3555" /> </concept> <concept> - <code value="video/vnd.hns.video"/> - <display value="vnd.hns.video"/> - <definition value="As defined by Swaminathan"/> + <code value="video/H263-1998" /> + <display value="H263-1998" /> + <definition value="As defined by rfc4629" /> </concept> <concept> - <code value="video/vnd.iptvforum.1dparityfec-1010"/> - <display value="vnd.iptvforum.1dparityfec-1010"/> - <definition value="As defined by Shuji Nakamura"/> + <code value="video/H263-2000" /> + <display value="H263-2000" /> + <definition value="As defined by rfc4629" /> </concept> <concept> - <code value="video/vnd.iptvforum.1dparityfec-2005"/> - <display value="vnd.iptvforum.1dparityfec-2005"/> - <definition value="As defined by Shuji Nakamura"/> + <code value="video/H264" /> + <display value="H264" /> + <definition value="As defined by rfc6184" /> </concept> <concept> - <code value="video/vnd.iptvforum.2dparityfec-1010"/> - <display value="vnd.iptvforum.2dparityfec-1010"/> - <definition value="As defined by Shuji Nakamura"/> + <code value="video/H264-RCDO" /> + <display value="H264-RCDO" /> + <definition value="As defined by rfc6185" /> </concept> <concept> - <code value="video/vnd.iptvforum.2dparityfec-2005"/> - <display value="vnd.iptvforum.2dparityfec-2005"/> - <definition value="As defined by Shuji Nakamura"/> + <code value="video/H264-SVC" /> + <display value="H264-SVC" /> + <definition value="As defined by rfc6190" /> </concept> <concept> - <code value="video/vnd.iptvforum.ttsavc"/> - <display value="vnd.iptvforum.ttsavc"/> - <definition value="As defined by Shuji Nakamura"/> + <code value="video/H265" /> + <display value="H265" /> + <definition value="As defined by rfc7798" /> </concept> <concept> - <code value="video/vnd.iptvforum.ttsmpeg2"/> - <display value="vnd.iptvforum.ttsmpeg2"/> - <definition value="As defined by Shuji Nakamura"/> + <code value="video/H266" /> + <display value="H266" /> + <definition value="As defined by rfc9328" /> </concept> <concept> - <code value="video/vnd.motorola.video"/> - <display value="vnd.motorola.video"/> - <definition value="As defined by Tom McGinty"/> + <code value="video/iso.segment" /> + <display value="iso.segment" /> + <definition value="As defined by David Singer, and ISO-IEC JTC 1" /> </concept> <concept> - <code value="video/vnd.motorola.videop"/> - <display value="vnd.motorola.videop"/> - <definition value="As defined by Tom McGinty"/> + <code value="video/JPEG" /> + <display value="JPEG" /> + <definition value="As defined by rfc3555" /> </concept> <concept> - <code value="video/vnd.mpegurl"/> - <display value="vnd.mpegurl"/> - <definition value="As defined by Heiko Recktenwald"/> + <code value="video/jpeg2000" /> + <display value="jpeg2000" /> + <definition value="As defined by rfc5371, and rfc5372" /> </concept> <concept> - <code value="video/vnd.ms-playready.media.pyv"/> - <display value="vnd.ms-playready.media.pyv"/> - <definition value="As defined by Steve DiAcetis"/> + <code value="video/jpeg2000-scl" /> + <display value="jpeg2000-scl" /> + <definition value="As defined by rfc9828" /> </concept> <concept> - <code value="video/vnd.nokia.interleaved-multimedia"/> - <display value="vnd.nokia.interleaved-multimedia"/> - <definition value="As defined by Petteri Kangaslampi"/> + <code value="video/jxsv" /> + <display value="jxsv" /> + <definition value="As defined by rfc9134" /> </concept> <concept> - <code value="video/vnd.nokia.mp4vr"/> - <display value="vnd.nokia.mp4vr"/> - <definition value="As defined by Miska M. Hannuksela"/> + <code value="video/lottie+json" /> + <display value="lottie+json" /> + <definition value="As defined by Lottie Animation Community" /> </concept> <concept> - <code value="video/vnd.nokia.videovoip"/> - <display value="vnd.nokia.videovoip"/> - <definition value="As defined by Nokia"/> + <code value="video/matroska" /> + <display value="matroska" /> + <definition value="As defined by rfc9559" /> </concept> <concept> - <code value="video/vnd.objectvideo"/> - <display value="vnd.objectvideo"/> - <definition value="As defined by John Clark"/> + <code value="video/matroska-3d" /> + <display value="matroska-3d" /> + <definition value="As defined by rfc9559" /> </concept> <concept> - <code value="video/vnd.radgamettools.bink"/> - <display value="vnd.radgamettools.bink"/> - <definition value="As defined by Henrik Andersson"/> + <code value="video/mj2" /> + <display value="mj2" /> + <definition value="As defined by rfc3745" /> </concept> <concept> - <code value="video/vnd.radgamettools.smacker"/> - <display value="vnd.radgamettools.smacker"/> - <definition value="As defined by Henrik Andersson"/> + <code value="video/MP1S" /> + <display value="MP1S" /> + <definition value="As defined by rfc3555" /> </concept> <concept> - <code value="video/vnd.sealed.mpeg1"/> - <display value="vnd.sealed.mpeg1"/> - <definition value="As defined by David Petersen"/> + <code value="video/MP2P" /> + <display value="MP2P" /> + <definition value="As defined by rfc3555" /> </concept> <concept> - <code value="video/vnd.sealed.mpeg4"/> - <display value="vnd.sealed.mpeg4"/> - <definition value="As defined by David Petersen"/> + <code value="video/MP2T" /> + <display value="MP2T" /> + <definition value="As defined by rfc3555" /> </concept> <concept> - <code value="video/vnd.sealed.swf"/> - <display value="vnd.sealed.swf"/> - <definition value="As defined by David Petersen"/> + <code value="video/mp4" /> + <display value="mp4" /> + <definition value="As defined by rfc4337, and rfc6381" /> </concept> <concept> - <code value="video/vnd.sealedmedia.softseal.mov"/> - <display value="vnd.sealedmedia.softseal.mov"/> - <definition value="As defined by David Petersen"/> + <code value="video/MP4V-ES" /> + <display value="MP4V-ES" /> + <definition value="As defined by rfc6416" /> </concept> <concept> - <code value="video/vnd.uvvu.mp4"/> - <display value="vnd.uvvu.mp4"/> - <definition value="As defined by Michael A Dolan"/> + <code value="video/MPV" /> + <display value="MPV" /> + <definition value="As defined by rfc3555" /> </concept> <concept> - <code value="video/vnd.youtube.yt"/> - <display value="vnd.youtube.yt"/> - <definition value="As defined by Google"/> + <code value="video/mpeg" /> + <display value="mpeg" /> + <definition value="As defined by rfc2045, and rfc2046" /> </concept> <concept> - <code value="video/vnd.vivo"/> - <display value="vnd.vivo"/> - <definition value="As defined by John Wolfe"/> + <code value="video/mpeg4-generic" /> + <display value="mpeg4-generic" /> + <definition value="As defined by rfc3640" /> </concept> <concept> - <code value="video/VP8"/> - <display value="VP8"/> - <definition value="As defined by rfc7741"/> + <code value="video/nv" /> + <display value="nv" /> + <definition value="As defined by rfc4856" /> </concept> <concept> - <code value="video/VP9"/> - <display value="VP9"/> - <definition value="As defined by RFC-ietf-payload-vp9-16"/> + <code value="video/ogg" /> + <display value="ogg" /> + <definition value="As defined by rfc5334, and rfc7845" /> + </concept> + <concept> + <code value="video/parityfec" /> + <display value="parityfec" /> + <definition value="As defined by rfc3009" /> + </concept> + <concept> + <code value="video/pointer" /> + <display value="pointer" /> + <definition value="As defined by rfc2862" /> + </concept> + <concept> + <code value="video/quicktime" /> + <display value="quicktime" /> + <definition value="As defined by rfc6381, and Paul Lindner" /> + </concept> + <concept> + <code value="video/raptorfec" /> + <display value="raptorfec" /> + <definition value="As defined by rfc6682" /> + </concept> + <concept> + <code value="video/raw" /> + <display value="raw" /> + <definition value="As defined by rfc4175" /> + </concept> + <concept> + <code value="video/rtp-enc-aescm128" /> + <display value="rtp-enc-aescm128" /> + <definition value="As defined by 3GPP" /> + </concept> + <concept> + <code value="video/rtploopback" /> + <display value="rtploopback" /> + <definition value="As defined by rfc6849" /> + </concept> + <concept> + <code value="video/rtx" /> + <display value="rtx" /> + <definition value="As defined by rfc4588" /> + </concept> + <concept> + <code value="video/scip" /> + <display value="scip" /> + <definition value="As defined by rfc9607" /> + </concept> + <concept> + <code value="video/smpte291" /> + <display value="smpte291" /> + <definition value="As defined by rfc8331" /> + </concept> + <concept> + <code value="video/SMPTE292M" /> + <display value="SMPTE292M" /> + <definition value="As defined by rfc3497" /> + </concept> + <concept> + <code value="video/ulpfec" /> + <display value="ulpfec" /> + <definition value="As defined by rfc5109" /> + </concept> + <concept> + <code value="video/vc1" /> + <display value="vc1" /> + <definition value="As defined by rfc4425" /> + </concept> + <concept> + <code value="video/vc2" /> + <display value="vc2" /> + <definition value="As defined by rfc8450" /> + </concept> + <concept> + <code value="video/vnd.blockfact.factv" /> + <display value="vnd.blockfact.factv" /> + <definition value="As defined by Egbert von Frankenberg" /> + </concept> + <concept> + <code value="video/vnd.CCTV" /> + <display value="vnd.CCTV" /> + <definition value="As defined by Frank Rottmann" /> + </concept> + <concept> + <code value="video/vnd.dece.hd" /> + <display value="vnd.dece.hd" /> + <definition value="As defined by Michael A Dolan" /> + </concept> + <concept> + <code value="video/vnd.dece.mobile" /> + <display value="vnd.dece.mobile" /> + <definition value="As defined by Michael A Dolan" /> + </concept> + <concept> + <code value="video/vnd.dece.mp4" /> + <display value="vnd.dece.mp4" /> + <definition value="As defined by Michael A Dolan" /> + </concept> + <concept> + <code value="video/vnd.dece.pd" /> + <display value="vnd.dece.pd" /> + <definition value="As defined by Michael A Dolan" /> + </concept> + <concept> + <code value="video/vnd.dece.sd" /> + <display value="vnd.dece.sd" /> + <definition value="As defined by Michael A Dolan" /> + </concept> + <concept> + <code value="video/vnd.dece.video" /> + <display value="vnd.dece.video" /> + <definition value="As defined by Michael A Dolan" /> + </concept> + <concept> + <code value="video/vnd.directv.mpeg" /> + <display value="vnd.directv.mpeg" /> + <definition value="As defined by Nathan Zerbe" /> + </concept> + <concept> + <code value="video/vnd.directv.mpeg-tts" /> + <display value="vnd.directv.mpeg-tts" /> + <definition value="As defined by Nathan Zerbe" /> + </concept> + <concept> + <code value="video/vnd.dlna.mpeg-tts" /> + <display value="vnd.dlna.mpeg-tts" /> + <definition value="As defined by Edwin Heredia" /> + </concept> + <concept> + <code value="video/vnd.dvb.file" /> + <display value="vnd.dvb.file" /> + <definition value="As defined by Peter Siebert, and Kevin Murray" /> + </concept> + <concept> + <code value="video/vnd.fvt" /> + <display value="vnd.fvt" /> + <definition value="As defined by Arild Fuldseth" /> + </concept> + <concept> + <code value="video/vnd.hns.video" /> + <display value="vnd.hns.video" /> + <definition value="As defined by Swaminathan" /> + </concept> + <concept> + <code value="video/vnd.iptvforum.1dparityfec-1010" /> + <display value="vnd.iptvforum.1dparityfec-1010" /> + <definition value="As defined by Shuji Nakamura" /> + </concept> + <concept> + <code value="video/vnd.iptvforum.1dparityfec-2005" /> + <display value="vnd.iptvforum.1dparityfec-2005" /> + <definition value="As defined by Shuji Nakamura" /> + </concept> + <concept> + <code value="video/vnd.iptvforum.2dparityfec-1010" /> + <display value="vnd.iptvforum.2dparityfec-1010" /> + <definition value="As defined by Shuji Nakamura" /> + </concept> + <concept> + <code value="video/vnd.iptvforum.2dparityfec-2005" /> + <display value="vnd.iptvforum.2dparityfec-2005" /> + <definition value="As defined by Shuji Nakamura" /> + </concept> + <concept> + <code value="video/vnd.iptvforum.ttsavc" /> + <display value="vnd.iptvforum.ttsavc" /> + <definition value="As defined by Shuji Nakamura" /> + </concept> + <concept> + <code value="video/vnd.iptvforum.ttsmpeg2" /> + <display value="vnd.iptvforum.ttsmpeg2" /> + <definition value="As defined by Shuji Nakamura" /> + </concept> + <concept> + <code value="video/vnd.motorola.video" /> + <display value="vnd.motorola.video" /> + <definition value="As defined by Tom McGinty" /> + </concept> + <concept> + <code value="video/vnd.motorola.videop" /> + <display value="vnd.motorola.videop" /> + <definition value="As defined by Tom McGinty" /> + </concept> + <concept> + <code value="video/vnd.mpegurl" /> + <display value="vnd.mpegurl" /> + <definition value="As defined by Heiko Recktenwald" /> + </concept> + <concept> + <code value="video/vnd.ms-playready.media.pyv" /> + <display value="vnd.ms-playready.media.pyv" /> + <definition value="As defined by Steve DiAcetis" /> + </concept> + <concept> + <code value="video/vnd.nokia.interleaved-multimedia" /> + <display value="vnd.nokia.interleaved-multimedia" /> + <definition value="As defined by Petteri Kangaslampi" /> + </concept> + <concept> + <code value="video/vnd.nokia.mp4vr" /> + <display value="vnd.nokia.mp4vr" /> + <definition value="As defined by Miska M. Hannuksela" /> + </concept> + <concept> + <code value="video/vnd.nokia.videovoip" /> + <display value="vnd.nokia.videovoip" /> + <definition value="As defined by Nokia" /> + </concept> + <concept> + <code value="video/vnd.objectvideo" /> + <display value="vnd.objectvideo" /> + <definition value="As defined by John Clark" /> + </concept> + <concept> + <code value="video/vnd.planar" /> + <display value="vnd.planar" /> + <definition value="As defined by David Atkins" /> + </concept> + <concept> + <code value="video/vnd.radgamettools.bink" /> + <display value="vnd.radgamettools.bink" /> + <definition value="As defined by Henrik Andersson" /> + </concept> + <concept> + <code value="video/vnd.radgamettools.smacker" /> + <display value="vnd.radgamettools.smacker" /> + <definition value="As defined by Henrik Andersson" /> + </concept> + <concept> + <code value="video/vnd.sealed.mpeg1" /> + <display value="vnd.sealed.mpeg1" /> + <definition value="As defined by David Petersen" /> + </concept> + <concept> + <code value="video/vnd.sealed.mpeg4" /> + <display value="vnd.sealed.mpeg4" /> + <definition value="As defined by David Petersen" /> + </concept> + <concept> + <code value="video/vnd.sealed.swf" /> + <display value="vnd.sealed.swf" /> + <definition value="As defined by David Petersen" /> + </concept> + <concept> + <code value="video/vnd.sealedmedia.softseal.mov" /> + <display value="vnd.sealedmedia.softseal.mov" /> + <definition value="As defined by David Petersen" /> + </concept> + <concept> + <code value="video/vnd.uvvu.mp4" /> + <display value="vnd.uvvu.mp4" /> + <definition value="As defined by Michael A Dolan" /> + </concept> + <concept> + <code value="video/vnd.youtube.yt" /> + <display value="vnd.youtube.yt" /> + <definition value="As defined by Google" /> + </concept> + <concept> + <code value="video/vnd.vivo" /> + <display value="vnd.vivo" /> + <definition value="As defined by John Wolfe" /> + </concept> + <concept> + <code value="video/VP8" /> + <display value="VP8" /> + <definition value="As defined by rfc7741" /> + </concept> + <concept> + <code value="video/VP9" /> + <display value="VP9" /> + <definition value="As defined by rfc9628" /> </concept> </CodeSystem> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/NamingSystem/dsf-endpoint.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/NamingSystem/dsf-endpoint.xml index 5105f521d..e59b93164 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/NamingSystem/dsf-endpoint.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/NamingSystem/dsf-endpoint.xml @@ -1,24 +1,24 @@ -<NamingSystem xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<NamingSystem xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/naming-system" /> <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> - <code value="ALL"/> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> </tag> </meta> - <name value="DsfEndpointIdentifier"/> - <status value="active"/> - <kind value="identifier"/> - <date value="2023-06-28"/> - <publisher value="DSF"/> - <description value="Shortest DNS that resolves a DSF endpoint, typically the domain name used in endpoint.address"/> - <usage value="Used withing the DSF to identify endpoints"/> + <name value="DsfEndpointIdentifier" /> + <status value="active" /> + <kind value="identifier" /> + <date value="2025-10-27" /> + <publisher value="DSF" /> + <description value="Shortest DNS that resolves a DSF endpoint, typically the domain name used in endpoint.address" /> + <usage value="Used withing the DSF to identify endpoints" /> <uniqueId> <modifierExtension url="http://dsf.dev/fhir/StructureDefinition/extension-check-logical-reference"> - <valueBoolean value="true"/> + <valueBoolean value="true" /> </modifierExtension> - <type value="other"/> - <value value="http://dsf.dev/sid/endpoint-identifier"/> + <type value="other" /> + <value value="http://dsf.dev/sid/endpoint-identifier" /> </uniqueId> </NamingSystem> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/NamingSystem/dsf-organization.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/NamingSystem/dsf-organization.xml index ffdaea92b..80ca107a6 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/NamingSystem/dsf-organization.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/NamingSystem/dsf-organization.xml @@ -1,24 +1,24 @@ -<NamingSystem xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<NamingSystem xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/naming-system" /> <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> - <code value="ALL"/> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> </tag> </meta> - <name value="DsfOrganizationIdentifier"/> - <status value="active"/> - <kind value="identifier"/> - <date value="2023-06-28"/> - <publisher value="DSF"/> - <description value="Shortest DNS that resolves the homepage of the organization, e.g. hs-heilbronn.de, ukhd.de, uksh.de"/> - <usage value="Used withing the DSF to identify organizations"/> + <name value="DsfOrganizationIdentifier" /> + <status value="active" /> + <kind value="identifier" /> + <date value="2025-10-27" /> + <publisher value="DSF" /> + <description value="Shortest DNS that resolves the homepage of the organization, e.g. hs-heilbronn.de, ukhd.de, uksh.de" /> + <usage value="Used withing the DSF to identify organizations" /> <uniqueId> <modifierExtension url="http://dsf.dev/fhir/StructureDefinition/extension-check-logical-reference"> - <valueBoolean value="true"/> + <valueBoolean value="true" /> </modifierExtension> - <type value="other"/> - <value value="http://dsf.dev/sid/organization-identifier"/> + <type value="other" /> + <value value="http://dsf.dev/sid/organization-identifier" /> </uniqueId> </NamingSystem> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/NamingSystem/dsf-practitioner.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/NamingSystem/dsf-practitioner.xml index 926cc2210..aba00017f 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/NamingSystem/dsf-practitioner.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/NamingSystem/dsf-practitioner.xml @@ -1,21 +1,21 @@ -<NamingSystem xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<NamingSystem xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/naming-system" /> <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> - <code value="ALL"/> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> </tag> </meta> - <name value="DsfPractitionerIdentifier"/> - <status value="active"/> - <kind value="identifier"/> - <date value="2023-06-28"/> - <publisher value="DSF"/> - <description value="E-mail address identifying a practitioner"/> - <usage value="Used withing the DSF to identify practitioners"/> + <name value="DsfPractitionerIdentifier" /> + <status value="active" /> + <kind value="identifier" /> + <date value="2025-10-27" /> + <publisher value="DSF" /> + <description value="E-mail address identifying a practitioner" /> + <usage value="Used withing the DSF to identify practitioners" /> <uniqueId> - <type value="other"/> - <value value="http://dsf.dev/sid/practitioner-identifier"/> + <type value="other" /> + <value value="http://dsf.dev/sid/practitioner-identifier" /> </uniqueId> </NamingSystem> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/NamingSystem/dsf-task.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/NamingSystem/dsf-task.xml index dd3c68d30..38045789a 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/NamingSystem/dsf-task.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/NamingSystem/dsf-task.xml @@ -1,21 +1,21 @@ -<NamingSystem xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<NamingSystem xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/naming-system" /> <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> - <code value="ALL"/> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> </tag> </meta> - <name value="DsfTaskIdentifier"/> - <status value="active"/> - <kind value="identifier"/> - <date value="2023-06-28"/> - <publisher value="DSF"/> - <description value="Name identifying a draft Task resource"/> - <usage value="Used withing the DSF to identify draft Task resources, created as examples using process plugins. Values must be defined in the form {process-url}/{process-version}/{task-example-name} e.g. http://test.org/bpe/Process/someProcessName/1.0/someExampleName"/> + <name value="DsfTaskIdentifier" /> + <status value="active" /> + <kind value="identifier" /> + <date value="2025-10-27" /> + <publisher value="DSF" /> + <description value="Name identifying a draft Task resource" /> + <usage value="Used withing the DSF to identify draft Task resources, created as examples using process plugins. Values must be defined in the form {process-url}/{process-version}/{task-example-name} e.g. http://test.org/bpe/Process/someProcessName/1.0/someExampleName" /> <uniqueId> - <type value="other"/> - <value value="http://dsf.dev/sid/task-identifier"/> + <type value="other" /> + <value value="http://dsf.dev/sid/task-identifier" /> </uniqueId> </NamingSystem> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-activity-definition-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-activity-definition-2.0.0.xml index 610430191..d577a86b5 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-activity-definition-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-activity-definition-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="ActivityDefinition" /> <status value="active" /> <experimental value="false" /> - <date value="2025-10-15" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="resource" /> <abstract value="false" /> @@ -19,6 +20,13 @@ <baseDefinition value="http://hl7.org/fhir/StructureDefinition/ActivityDefinition" /> <derivation value="constraint" /> <differential> + <element id="ActivityDefinition.meta"> + <path value="ActivityDefinition.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> <element id="ActivityDefinition.extension"> <path value="ActivityDefinition.extension" /> <slicing> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-binary-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-binary-2.0.0.xml new file mode 100644 index 000000000..1f8a8e622 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-binary-2.0.0.xml @@ -0,0 +1,171 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/binary" /> + <version value="2.0.0" /> + <name value="Binary" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="Binary" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Binary" /> + <derivation value="constraint" /> + <differential> + <element id="Binary"> + <path value="Binary" /> + <constraint> + <key value="must-have-meta-tag-or-security-context" /> + <severity value="error" /> + <human + value="At least one meta.tag from system 'http://dsf.dev/fhir/CodeSystem/read-access-tag' or Binary.securityContext required" /> + <expression + value="meta.tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag').exists() xor securityContext.exists()" /> + </constraint> + </element> + <element id="Binary.meta"> + <path value="Binary.meta" /> + <constraint> + <key value="organization-implies-local" /> + <severity value="error" /> + <human value="ORGANIZATION tag requires LOCAL" /> + <expression + value="tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'ORGANIZATION').exists() implies tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'LOCAL').exists()" /> + </constraint> + <constraint> + <key value="role-implies-local" /> + <severity value="error" /> + <human value="ROLE tag requires LOCAL" /> + <expression + value="tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'ROLE').exists() implies tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'LOCAL').exists()" /> + </constraint> + <constraint> + <key value="all-implies-no-local" /> + <severity value="error" /> + <human value="ALL tag can not be used with LOCAL" /> + <expression + value="tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'ALL').exists() implies tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'LOCAL').exists().not()" /> + </constraint> + <constraint> + <key value="all-implies-no-organization" /> + <severity value="error" /> + <human value="ALL tag can not be used with ORGANIZATION" /> + <expression + value="tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'ALL').exists() implies tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'ORGANIZATION').exists().not()" /> + </constraint> + <constraint> + <key value="all-implies-no-role" /> + <severity value="error" /> + <human value="ALL tag can not be used with ROLE" /> + <expression + value="tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'ALL').exists() implies tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'ROLE').exists().not()" /> + </constraint> + </element> + <element id="Binary.meta.tag"> + <path value="Binary.meta.tag" /> + <slicing> + <discriminator> + <type value="value" /> + <path value="system" /> + </discriminator> + <discriminator> + <type value="value" /> + <path value="code" /> + </discriminator> + <rules value="open" /> + </slicing> + </element> + <element id="Binary.meta.tag:all"> + <path value="Binary.meta.tag" /> + <sliceName value="all" /> + <min value="0" /> + <max value="1" /> + </element> + <element id="Binary.meta.tag:all.system"> + <path value="Binary.meta.tag.system" /> + <min value="1" /> + <fixedUri value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + </element> + <element id="Binary.meta.tag:all.code"> + <path value="Binary.meta.tag.code" /> + <min value="1" /> + <fixedCode value="ALL" /> + </element> + <element id="Binary.meta.tag:local"> + <path value="Binary.meta.tag" /> + <sliceName value="local" /> + <min value="0" /> + <max value="1" /> + </element> + <element id="Binary.meta.tag:local.system"> + <path value="Binary.meta.tag.system" /> + <min value="1" /> + <fixedUri value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + </element> + <element id="Binary.meta.tag:local.code"> + <path value="Binary.meta.tag.code" /> + <min value="1" /> + <fixedCode value="LOCAL" /> + </element> + <element id="Binary.meta.tag:organization"> + <path value="Binary.meta.tag" /> + <sliceName value="organization" /> + <min value="0" /> + <max value="*" /> + </element> + <element id="Binary.meta.tag:organization.extension:organization-extension"> + <path value="Binary.meta.tag.extension" /> + <sliceName value="organization-extension" /> + <min value="1" /> + <max value="1" /> + <type> + <code value="Extension" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization|2.0.0" /> + </type> + </element> + <element id="Binary.meta.tag:organization.system"> + <path value="Binary.meta.tag.system" /> + <min value="1" /> + <fixedUri value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + </element> + <element id="Binary.meta.tag:organization.code"> + <path value="Binary.meta.tag.code" /> + <min value="1" /> + <fixedCode value="ORGANIZATION" /> + </element> + <element id="Binary.meta.tag:read-access-parent-organization-role"> + <path value="Binary.meta.tag" /> + <sliceName value="read-access-parent-organization-role" /> + <min value="0" /> + <max value="*" /> + </element> + <element id="Binary.meta.tag:read-access-parent-organization-role:role-extension"> + <path value="Binary.meta.tag.extension" /> + <sliceName value="role-extension" /> + <min value="1" /> + <max value="1" /> + <type> + <code value="Extension" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/extension-read-access-parent-organization-role|2.0.0" /> + </type> + </element> + <element id="Binary.meta.tag:read-access-parent-organization-role.system"> + <path value="Binary.meta.tag.system" /> + <min value="1" /> + <fixedUri value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + </element> + <element id="Binary.meta.tag:read-access-parent-organization-role.code"> + <path value="Binary.meta.tag.code" /> + <min value="1" /> + <fixedCode value="ROLE" /> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-binary-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-binary-2.0.0.xml.post new file mode 100644 index 000000000..0081e3fe3 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-binary-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/binary&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-bundle-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-bundle-2.0.0.xml new file mode 100644 index 000000000..2f9f1fbd5 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-bundle-2.0.0.xml @@ -0,0 +1,31 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/bundle" /> + <version value="2.0.0" /> + <name value="Bundle" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="Bundle" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Bundle" /> + <derivation value="constraint" /> + <differential> + <element id="Bundle.meta"> + <path value="Bundle.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-bundle-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-bundle-2.0.0.xml.post new file mode 100644 index 000000000..f2c48f93a --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-bundle-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/bundle&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-code-system-1.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-code-system-1.0.0.xml deleted file mode 100644 index acd069d1f..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-code-system-1.0.0.xml +++ /dev/null @@ -1,32 +0,0 @@ -<StructureDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> - <meta> - <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> - <code value="ALL" /> - </tag> - </meta> - <url value="http://dsf.dev/fhir/StructureDefinition/code-system" /> - <version value="1.0.0" /> - <name value="CodeSystem" /> - <status value="active" /> - <experimental value="false" /> - <date value="2023-06-28" /> - <fhirVersion value="4.0.1" /> - <kind value="resource" /> - <abstract value="false" /> - <type value="CodeSystem" /> - <baseDefinition value="http://hl7.org/fhir/StructureDefinition/CodeSystem" /> - <derivation value="constraint" /> - <differential> - <element id="CodeSystem.url"> - <path value="CodeSystem.url" /> - <min value="1" /> - </element> - <element id="CodeSystem.version"> - <path value="CodeSystem.version" /> - <min value="1" /> - </element> - </differential> -</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-code-system-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-code-system-2.0.0.xml new file mode 100644 index 000000000..9e198a754 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-code-system-2.0.0.xml @@ -0,0 +1,43 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/code-system" /> + <version value="2.0.0" /> + <name value="CodeSystem" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="CodeSystem" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/CodeSystem" /> + <derivation value="constraint" /> + <differential> + <element id="CodeSystem.meta"> + <path value="CodeSystem.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + <element id="CodeSystem.url"> + <path value="CodeSystem.url" /> + <min value="1" /> + </element> + <element id="CodeSystem.version"> + <path value="CodeSystem.version" /> + <min value="1" /> + </element> + <element id="CodeSystem.date"> + <path value="CodeSystem.date" /> + <min value="1" /> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-code-system-1.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-code-system-2.0.0.xml.post similarity index 92% rename from dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-code-system-1.0.0.xml.post rename to dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-code-system-2.0.0.xml.post index aa1d48fa1..0a3ca3b27 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-code-system-1.0.0.xml.post +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-code-system-2.0.0.xml.post @@ -1 +1 @@ -url=http://dsf.dev/fhir/StructureDefinition/code-system&version=1.0.0 \ No newline at end of file +url=http://dsf.dev/fhir/StructureDefinition/code-system&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-all-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-all-2.0.0.xml index 9571ae392..c8c0a1f74 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-all-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-all-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="ProcessAuthorizationLocalAll" /> <status value="active" /> <experimental value="false" /> - <date value="2025-10-15" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="complex-type" /> <abstract value="false" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-all-practitioner-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-all-practitioner-2.0.0.xml index 83d8158ad..fe10cdf26 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-all-practitioner-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-all-practitioner-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="ProcessAuthorizationLocalAllPractitioner" /> <status value="active" /> <experimental value="false" /> - <date value="2025-10-15" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="complex-type" /> <abstract value="false" /> @@ -28,6 +29,7 @@ </discriminator> <rules value="open" /> </slicing> + <min value="1" /> </element> <element id="Coding.extension:practitioner"> <path value="Coding.extension" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-organization-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-organization-2.0.0.xml index d50866872..c80907c03 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-organization-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-organization-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="ProcessAuthorizationLocalOrganization" /> <status value="active" /> <experimental value="false" /> - <date value="2025-10-15" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="complex-type" /> <abstract value="false" /> @@ -28,6 +29,7 @@ </discriminator> <rules value="open" /> </slicing> + <min value="1" /> </element> <element id="Coding.extension:organization"> <path value="Coding.extension" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-organization-practitioner-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-organization-practitioner-2.0.0.xml index 4b3be02ce..f5166552e 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-organization-practitioner-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-organization-practitioner-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="ProcessAuthorizationLocalOrganizationPractitioner" /> <status value="active" /> <experimental value="false" /> - <date value="2025-10-15" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="complex-type" /> <abstract value="false" /> @@ -28,6 +29,7 @@ </discriminator> <rules value="open" /> </slicing> + <min value="1" /> </element> <element id="Coding.extension:organization-practitioner"> <path value="Coding.extension" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-parent-organization-role-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-parent-organization-role-2.0.0.xml index 8a78ab110..bad8a4f5e 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-parent-organization-role-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-parent-organization-role-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="ProcessAuthorizationLocalParentOrganizationRole" /> <status value="active" /> <experimental value="false" /> - <date value="2025-10-15" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="complex-type" /> <abstract value="false" /> @@ -28,6 +29,7 @@ </discriminator> <rules value="open" /> </slicing> + <min value="1" /> </element> <element id="Coding.extension:consortium-role"> <path value="Coding.extension" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-parent-organization-role-practitioner-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-parent-organization-role-practitioner-2.0.0.xml index ca44bc417..800f8f88a 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-parent-organization-role-practitioner-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-local-parent-organization-role-practitioner-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="ProcessAuthorizationLocalParentOrganizationRolePractitioner" /> <status value="active" /> <experimental value="false" /> - <date value="2025-10-13" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="complex-type" /> <abstract value="false" /> @@ -28,6 +29,7 @@ </discriminator> <rules value="open" /> </slicing> + <min value="1" /> </element> <element id="Coding.extension:consortium-role-practitioner"> <path value="Coding.extension" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-remote-all-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-remote-all-2.0.0.xml index 7350120a5..bdc1ab284 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-remote-all-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-remote-all-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="ProcessAuthorizationRemoteAll" /> <status value="active" /> <experimental value="false" /> - <date value="2025-10-15" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="complex-type" /> <abstract value="false" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-remote-organization-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-remote-organization-2.0.0.xml index 12edaf8d8..af788c562 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-remote-organization-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-remote-organization-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="ProcessAuthorizationRemoteOrganization" /> <status value="active" /> <experimental value="false" /> - <date value="2025-10-15" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="complex-type" /> <abstract value="false" /> @@ -28,6 +29,7 @@ </discriminator> <rules value="open" /> </slicing> + <min value="1" /> </element> <element id="Coding.extension:organization"> <path value="Coding.extension" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-remote-parent-organization-role-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-remote-parent-organization-role-2.0.0.xml index 1dbfdef94..f135855a8 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-remote-parent-organization-role-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-coding-process-authorization-remote-parent-organization-role-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="ProcessAuthorizationRemoteParentOrganizationRole" /> <status value="active" /> <experimental value="false" /> - <date value="2025-10-15" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="complex-type" /> <abstract value="false" /> @@ -28,6 +29,7 @@ </discriminator> <rules value="open" /> </slicing> + <min value="1" /> </element> <element id="Coding.extension:consortium-role"> <path value="Coding.extension" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-document-reference-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-document-reference-2.0.0.xml new file mode 100644 index 000000000..cb9a9465d --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-document-reference-2.0.0.xml @@ -0,0 +1,31 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/document-reference" /> + <version value="2.0.0" /> + <name value="DocumentReference" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="DocumentReference" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/DocumentReference" /> + <derivation value="constraint" /> + <differential> + <element id="DocumentReference.meta"> + <path value="DocumentReference.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-document-reference-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-document-reference-2.0.0.xml.post new file mode 100644 index 000000000..73f8820f5 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-document-reference-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/document-reference&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-endpoint-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-endpoint-2.0.0.xml index 5d6d42ba8..fb6c72b9e 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-endpoint-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-endpoint-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="Endpoint" /> <status value="active" /> <experimental value="false" /> - <date value="2025-05-26" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="resource" /> <abstract value="false" /> @@ -19,6 +20,13 @@ <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Endpoint" /> <derivation value="constraint" /> <differential> + <element id="Endpoint.meta"> + <path value="Endpoint.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> <element id="Endpoint.extension"> <path value="Endpoint.extension" /> <slicing> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-certificate-thumbprint-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-certificate-thumbprint-2.0.0.xml index 703ebb32a..bee7d8b31 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-certificate-thumbprint-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-certificate-thumbprint-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="CertificateThumbprint" /> <status value="active" /> <experimental value="false" /> - <date value="2025-05-26" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="complex-type" /> <abstract value="false" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-check-logical-reference-1.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-check-logical-reference-1.0.0.xml deleted file mode 100644 index 272182c29..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-check-logical-reference-1.0.0.xml +++ /dev/null @@ -1,48 +0,0 @@ -<StructureDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> - <meta> - <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> - <code value="ALL" /> - </tag> - </meta> - <url value="http://dsf.dev/fhir/StructureDefinition/extension-check-logical-reference" /> - <version value="1.0.0" /> - <name value="CheckLogicalReference" /> - <status value="active" /> - <experimental value="false" /> - <date value="2023-06-28" /> - <fhirVersion value="4.0.1" /> - <kind value="complex-type" /> - <abstract value="false" /> - <context> - <type value="element" /> - <expression value="NamingSystem.uniqueId" /> - </context> - <type value="Extension" /> - <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension" /> - <derivation value="constraint" /> - <differential> - <element> - <path value="Extension"/> - <isModifier value="true"/> - <isModifierReason value="Determines if logical references will be checked" /> - </element> - <element id="Extension.url"> - <path value="Extension.url" /> - <type> - <code value="uri" /> - </type> - <fixedUri value="http://dsf.dev/fhir/StructureDefinition/extension-check-logical-reference" /> - </element> - <element id="Extension.value[x]"> - <path value="Extension.value[x]" /> - <min value="1" /> - <max value="1" /> - <type> - <code value="boolean" /> - </type> - </element> - </differential> -</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-check-logical-reference-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-check-logical-reference-2.0.0.xml new file mode 100644 index 000000000..93aa3b378 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-check-logical-reference-2.0.0.xml @@ -0,0 +1,48 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/extension-check-logical-reference" /> + <version value="2.0.0" /> + <name value="CheckLogicalReference" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="complex-type" /> + <abstract value="false" /> + <context> + <type value="element" /> + <expression value="NamingSystem.uniqueId" /> + </context> + <type value="Extension" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension" /> + <derivation value="constraint" /> + <differential> + <element> + <path value="Extension" /> + <isModifier value="true" /> + <isModifierReason value="Determines if logical references will be checked" /> + </element> + <element id="Extension.url"> + <path value="Extension.url" /> + <type> + <code value="uri" /> + </type> + <fixedUri value="http://dsf.dev/fhir/StructureDefinition/extension-check-logical-reference" /> + </element> + <element id="Extension.value[x]"> + <path value="Extension.value[x]" /> + <min value="1" /> + <max value="1" /> + <type> + <code value="boolean" /> + </type> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-check-logical-reference-1.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-check-logical-reference-2.0.0.xml.post similarity index 70% rename from dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-check-logical-reference-1.0.0.xml.post rename to dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-check-logical-reference-2.0.0.xml.post index 4de07b167..1ef1c4836 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-check-logical-reference-1.0.0.xml.post +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-check-logical-reference-2.0.0.xml.post @@ -1 +1 @@ -url=http://dsf.dev/fhir/StructureDefinition/extension-check-logical-reference&version=1.0.0 \ No newline at end of file +url=http://dsf.dev/fhir/StructureDefinition/extension-check-logical-reference&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-2.0.0.xml index 97522b3f1..eee74490a 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="ProcessAuthorization" /> <status value="active" /> <experimental value="false" /> - <date value="2025-10-15" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="complex-type" /> <abstract value="false" /> @@ -36,6 +37,7 @@ </discriminator> <rules value="open" /> </slicing> + <min value="4" /> </element> <element id="Extension.extension:message-name"> <path value="Extension.extension" /> @@ -90,14 +92,15 @@ <profile value="http://dsf.dev/fhir/StructureDefinition/coding-process-authorization-local-organization|2.0.0" /> <profile value="http://dsf.dev/fhir/StructureDefinition/coding-process-authorization-local-organization-practitioner|2.0.0" /> <profile value="http://dsf.dev/fhir/StructureDefinition/coding-process-authorization-local-parent-organization-role|2.0.0" /> - <profile value="http://dsf.dev/fhir/StructureDefinition/coding-process-authorization-local-parent-organization-role-practitioner|2.0.0" /> + <profile + value="http://dsf.dev/fhir/StructureDefinition/coding-process-authorization-local-parent-organization-role-practitioner|2.0.0" /> <profile value="http://dsf.dev/fhir/StructureDefinition/coding-process-authorization-remote-all|2.0.0" /> <profile value="http://dsf.dev/fhir/StructureDefinition/coding-process-authorization-remote-organization|2.0.0" /> <profile value="http://dsf.dev/fhir/StructureDefinition/coding-process-authorization-remote-parent-organization-role|2.0.0" /> </type> <binding> <strength value="required" /> - <valueSet value="http://dsf.dev/fhir/ValueSet/process-authorization-requester|1.0.0" /> + <valueSet value="http://dsf.dev/fhir/ValueSet/process-authorization-requester|2.0.0" /> </binding> </element> <element id="Extension.extension:recipient"> @@ -120,7 +123,7 @@ </type> <binding> <strength value="required" /> - <valueSet value="http://dsf.dev/fhir/ValueSet/process-authorization-recipient|1.0.0" /> + <valueSet value="http://dsf.dev/fhir/ValueSet/process-authorization-recipient|2.0.0" /> </binding> </element> <element id="Extension.url"> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-organization-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-organization-2.0.0.xml index b7e272be5..521510752 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-organization-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-organization-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="ProcessAuthorizationOrganization" /> <status value="active" /> <experimental value="false" /> - <date value="2025-10-15" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="complex-type" /> <abstract value="false" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-organization-practitioner-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-organization-practitioner-2.0.0.xml index 207cb25d0..00424b353 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-organization-practitioner-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-organization-practitioner-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="ProcessAuthorizationOrganizationPractitioner" /> <status value="active" /> <experimental value="false" /> - <date value="2025-10-15" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="complex-type" /> <abstract value="false" /> @@ -37,6 +38,7 @@ </discriminator> <rules value="open" /> </slicing> + <min value="2" /> </element> <element id="Extension.extension:organization"> <path value="Extension.extension" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-parent-organization-role-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-parent-organization-role-2.0.0.xml index 3fb6771b5..abdad8fc4 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-parent-organization-role-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-parent-organization-role-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="ProcessAuthorizationParentOrganizatioRole" /> <status value="active" /> <experimental value="false" /> - <date value="2025-10-15" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="complex-type" /> <abstract value="false" /> @@ -37,6 +38,7 @@ </discriminator> <rules value="open" /> </slicing> + <min value="2" /> </element> <element id="Extension.extension:parentOrganization"> <path value="Extension.extension" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-parent-organization-role-practitioner-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-parent-organization-role-practitioner-2.0.0.xml index f9a30ea15..49634dd3a 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-parent-organization-role-practitioner-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-parent-organization-role-practitioner-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="ProcessAuthorizationParentOrganizatioRolePractitioner" /> <status value="active" /> <experimental value="false" /> - <date value="2025-10-15" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="complex-type" /> <abstract value="false" /> @@ -37,6 +38,7 @@ </discriminator> <rules value="open" /> </slicing> + <min value="3" /> </element> <element id="Extension.extension:parentOrganization"> <path value="Extension.extension" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-practitioner-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-practitioner-2.0.0.xml index ca3a97114..5b0b9b359 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-practitioner-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-practitioner-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="ProcessAuthorizationPractitioner" /> <status value="active" /> <experimental value="false" /> - <date value="2025-10-15" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="complex-type" /> <abstract value="false" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-questionnaire-authorization-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-questionnaire-authorization-2.0.0.xml index b8ea4cccd..5f70ac0f4 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-questionnaire-authorization-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-questionnaire-authorization-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="QuestionnaireAuthorization" /> <status value="active" /> <experimental value="false" /> - <date value="2025-10-15" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="complex-type" /> <abstract value="false" /> @@ -42,7 +43,6 @@ <rules value="open" /> </slicing> <min value="1" /> - <max value="*" /> </element> <element id="Extension.extension:practitioner"> <path value="Extension.extension" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-organization-1.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-organization-1.0.0.xml deleted file mode 100644 index 0b0f57bbd..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-organization-1.0.0.xml +++ /dev/null @@ -1,48 +0,0 @@ -<StructureDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> - <meta> - <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> - <code value="ALL" /> - </tag> - </meta> - <url value="http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization" /> - <version value="1.0.0" /> - <name value="ReadAccessOrganization" /> - <status value="active" /> - <experimental value="false" /> - <date value="2023-06-28" /> - <fhirVersion value="4.0.1" /> - <kind value="complex-type" /> - <abstract value="false" /> - <context> - <type value="element" /> - <expression value="Coding" /> - </context> - <type value="Extension" /> - <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension" /> - <derivation value="constraint" /> - <differential> - <element id="Extension.url"> - <path value="Extension.url" /> - <fixedUri value="http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization" /> - </element> - <element id="Extension.value[x]"> - <path value="Extension.value[x]" /> - <min value="1" /> - <type> - <code value="Identifier" /> - </type> - </element> - <element id="Extension.value[x].system"> - <path value="Extension.value[x].system" /> - <min value="1" /> - <fixedUri value="http://dsf.dev/sid/organization-identifier" /> - </element> - <element id="Extension.value[x].value"> - <path value="Extension.value[x].value" /> - <min value="1" /> - </element> - </differential> -</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-organization-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-organization-2.0.0.xml new file mode 100644 index 000000000..f9c0a7cb1 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-organization-2.0.0.xml @@ -0,0 +1,48 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization" /> + <version value="2.0.0" /> + <name value="ReadAccessOrganization" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="complex-type" /> + <abstract value="false" /> + <context> + <type value="element" /> + <expression value="Coding" /> + </context> + <type value="Extension" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension" /> + <derivation value="constraint" /> + <differential> + <element id="Extension.url"> + <path value="Extension.url" /> + <fixedUri value="http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization" /> + </element> + <element id="Extension.value[x]"> + <path value="Extension.value[x]" /> + <min value="1" /> + <type> + <code value="Identifier" /> + </type> + </element> + <element id="Extension.value[x].system"> + <path value="Extension.value[x].system" /> + <min value="1" /> + <fixedUri value="http://dsf.dev/sid/organization-identifier" /> + </element> + <element id="Extension.value[x].value"> + <path value="Extension.value[x].value" /> + <min value="1" /> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-organization-1.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-organization-2.0.0.xml.post similarity index 69% rename from dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-organization-1.0.0.xml.post rename to dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-organization-2.0.0.xml.post index b5e29d6fa..9f2aa5a56 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-organization-1.0.0.xml.post +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-organization-2.0.0.xml.post @@ -1 +1 @@ -url=http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization&version=1.0.0 \ No newline at end of file +url=http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-parent-organization-role-1.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-parent-organization-role-1.0.0.xml deleted file mode 100644 index 2fe05cec4..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-parent-organization-role-1.0.0.xml +++ /dev/null @@ -1,97 +0,0 @@ -<StructureDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> - <meta> - <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> - <code value="ALL" /> - </tag> - </meta> - <url value="http://dsf.dev/fhir/StructureDefinition/extension-read-access-parent-organization-role" /> - <version value="1.0.0" /> - <name value="ReadAccessParentOrganizationRole" /> - <status value="active" /> - <experimental value="false" /> - <date value="2023-06-28" /> - <fhirVersion value="4.0.1" /> - <kind value="complex-type" /> - <abstract value="false" /> - <context> - <type value="element" /> - <expression value="Coding" /> - </context> - <type value="Extension" /> - <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension" /> - <derivation value="constraint" /> - <differential> - <element id="Extension.extension"> - <path value="Extension.extension" /> - <slicing> - <discriminator> - <type value="value" /> - <path value="url" /> - </discriminator> - <rules value="open" /> - </slicing> - </element> - <element id="Extension.extension:parentOrganization"> - <path value="Extension.extension" /> - <sliceName value="parentOrganization" /> - <min value="1" /> - <max value="1" /> - </element> - <element id="Extension.extension:parentOrganization.url"> - <path value="Extension.extension.url" /> - <fixedUri value="parent-organization" /> - </element> - <element id="Extension.extension:parentOrganization.value[x]"> - <path value="Extension.extension.value[x]" /> - <min value="1" /> - <type> - <code value="Identifier" /> - </type> - </element> - <element id="Extension.extension:parentOrganization.value[x].system"> - <path value="Extension.extension.value[x].system" /> - <min value="1" /> - <fixedUri value="http://dsf.dev/sid/organization-identifier" /> - </element> - <element id="Extension.extension:parentOrganization.value[x].value"> - <path value="Extension.extension.value[x].value" /> - <min value="1" /> - </element> - <element id="Extension.extension:organizationRole"> - <path value="Extension.extension" /> - <sliceName value="organizationRole" /> - <min value="1" /> - <max value="1" /> - </element> - <element id="Extension.extension:organizationRole.url"> - <path value="Extension.extension.url" /> - <fixedUri value="organization-role" /> - </element> - <element id="Extension.extension:organizationRole.value[x]"> - <path value="Extension.extension.value[x]" /> - <min value="1" /> - <type> - <code value="Coding" /> - </type> - </element> - <element id="Extension.extension:organizationRole.value[x].system"> - <path value="Extension.extension.value[x].system" /> - <min value="1" /> - </element> - <element id="Extension.extension:organizationRole.value[x].code"> - <path value="Extension.extension.value[x].code" /> - <min value="1" /> - </element> - <element id="Extension.url"> - <path value="Extension.url" /> - <fixedUri value="http://dsf.dev/fhir/StructureDefinition/extension-read-access-parent-organization-role" /> - </element> - <element id="Extension.value[x]"> - <path value="Extension.value[x]" /> - <max value="0" /> - </element> - </differential> -</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-parent-organization-role-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-parent-organization-role-2.0.0.xml new file mode 100644 index 000000000..51b2c17ce --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-parent-organization-role-2.0.0.xml @@ -0,0 +1,98 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/extension-read-access-parent-organization-role" /> + <version value="2.0.0" /> + <name value="ReadAccessParentOrganizationRole" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="complex-type" /> + <abstract value="false" /> + <context> + <type value="element" /> + <expression value="Coding" /> + </context> + <type value="Extension" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension" /> + <derivation value="constraint" /> + <differential> + <element id="Extension.extension"> + <path value="Extension.extension" /> + <slicing> + <discriminator> + <type value="value" /> + <path value="url" /> + </discriminator> + <rules value="open" /> + </slicing> + <min value="2" /> + </element> + <element id="Extension.extension:parentOrganization"> + <path value="Extension.extension" /> + <sliceName value="parentOrganization" /> + <min value="1" /> + <max value="1" /> + </element> + <element id="Extension.extension:parentOrganization.url"> + <path value="Extension.extension.url" /> + <fixedUri value="parent-organization" /> + </element> + <element id="Extension.extension:parentOrganization.value[x]"> + <path value="Extension.extension.value[x]" /> + <min value="1" /> + <type> + <code value="Identifier" /> + </type> + </element> + <element id="Extension.extension:parentOrganization.value[x].system"> + <path value="Extension.extension.value[x].system" /> + <min value="1" /> + <fixedUri value="http://dsf.dev/sid/organization-identifier" /> + </element> + <element id="Extension.extension:parentOrganization.value[x].value"> + <path value="Extension.extension.value[x].value" /> + <min value="1" /> + </element> + <element id="Extension.extension:organizationRole"> + <path value="Extension.extension" /> + <sliceName value="organizationRole" /> + <min value="1" /> + <max value="1" /> + </element> + <element id="Extension.extension:organizationRole.url"> + <path value="Extension.extension.url" /> + <fixedUri value="organization-role" /> + </element> + <element id="Extension.extension:organizationRole.value[x]"> + <path value="Extension.extension.value[x]" /> + <min value="1" /> + <type> + <code value="Coding" /> + </type> + </element> + <element id="Extension.extension:organizationRole.value[x].system"> + <path value="Extension.extension.value[x].system" /> + <min value="1" /> + </element> + <element id="Extension.extension:organizationRole.value[x].code"> + <path value="Extension.extension.value[x].code" /> + <min value="1" /> + </element> + <element id="Extension.url"> + <path value="Extension.url" /> + <fixedUri value="http://dsf.dev/fhir/StructureDefinition/extension-read-access-parent-organization-role" /> + </element> + <element id="Extension.value[x]"> + <path value="Extension.value[x]" /> + <max value="0" /> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-parent-organization-role-1.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-parent-organization-role-2.0.0.xml.post similarity index 61% rename from dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-parent-organization-role-1.0.0.xml.post rename to dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-parent-organization-role-2.0.0.xml.post index 436ec0047..08b8e02e0 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-parent-organization-role-1.0.0.xml.post +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-read-access-parent-organization-role-2.0.0.xml.post @@ -1 +1 @@ -url=http://dsf.dev/fhir/StructureDefinition/extension-read-access-parent-organization-role&version=1.0.0 \ No newline at end of file +url=http://dsf.dev/fhir/StructureDefinition/extension-read-access-parent-organization-role&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-group-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-group-2.0.0.xml new file mode 100644 index 000000000..e3b3d5bda --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-group-2.0.0.xml @@ -0,0 +1,31 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/group" /> + <version value="2.0.0" /> + <name value="Group" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="Group" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Group" /> + <derivation value="constraint" /> + <differential> + <element id="Group.meta"> + <path value="Group.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-group-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-group-2.0.0.xml.post new file mode 100644 index 000000000..81870beb3 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-group-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/group&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-healthcare-service-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-healthcare-service-2.0.0.xml new file mode 100644 index 000000000..254cdf0f5 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-healthcare-service-2.0.0.xml @@ -0,0 +1,31 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/healthcare-service" /> + <version value="2.0.0" /> + <name value="HealthcareService" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="HealthcareService" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/HealthcareService" /> + <derivation value="constraint" /> + <differential> + <element id="HealthcareService.meta"> + <path value="HealthcareService.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-healthcare-service-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-healthcare-service-2.0.0.xml.post new file mode 100644 index 000000000..fa89a8d93 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-healthcare-service-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/healthcare-service&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-library-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-library-2.0.0.xml new file mode 100644 index 000000000..ddcdaac37 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-library-2.0.0.xml @@ -0,0 +1,31 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/library" /> + <version value="2.0.0" /> + <name value="Library" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="Library" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Library" /> + <derivation value="constraint" /> + <differential> + <element id="Library.meta"> + <path value="Library.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-library-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-library-2.0.0.xml.post new file mode 100644 index 000000000..457e7e246 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-library-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/library&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-location-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-location-2.0.0.xml new file mode 100644 index 000000000..011c4c8d9 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-location-2.0.0.xml @@ -0,0 +1,31 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/location" /> + <version value="2.0.0" /> + <name value="Location" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="Location" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Location" /> + <derivation value="constraint" /> + <differential> + <element id="Location.meta"> + <path value="Location.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-location-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-location-2.0.0.xml.post new file mode 100644 index 000000000..f8b57c218 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-location-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/location&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-measure-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-measure-2.0.0.xml new file mode 100644 index 000000000..3665c57f2 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-measure-2.0.0.xml @@ -0,0 +1,31 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/measure" /> + <version value="2.0.0" /> + <name value="Measure" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="Measure" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Measure" /> + <derivation value="constraint" /> + <differential> + <element id="Measure.meta"> + <path value="Measure.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-measure-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-measure-2.0.0.xml.post new file mode 100644 index 000000000..c93477c9d --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-measure-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/measure&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-measure-report-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-measure-report-2.0.0.xml new file mode 100644 index 000000000..b0b8fef67 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-measure-report-2.0.0.xml @@ -0,0 +1,31 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/measure-report" /> + <version value="2.0.0" /> + <name value="MeasureReport" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="MeasureReport" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/MeasureReport" /> + <derivation value="constraint" /> + <differential> + <element id="MeasureReport.meta"> + <path value="MeasureReport.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-measure-report-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-measure-report-2.0.0.xml.post new file mode 100644 index 000000000..5d0cd1e62 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-measure-report-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/measure-report&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-meta-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-meta-2.0.0.xml new file mode 100644 index 000000000..bdad3e443 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-meta-2.0.0.xml @@ -0,0 +1,166 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/meta" /> + <version value="2.0.0" /> + <name value="Meta" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="complex-type" /> + <abstract value="false" /> + <type value="Meta" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Meta" /> + <derivation value="constraint" /> + <differential> + <element id="Meta"> + <path value="Meta" /> + <constraint> + <key value="at-least-on-read-access-tag" /> + <severity value="error" /> + <human value="At least one meta.tag from system 'http://dsf.dev/fhir/CodeSystem/read-access-tag' required" /> + <expression value="tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag').exists()" /> + </constraint> + <constraint> + <key value="organization-implies-local" /> + <severity value="error" /> + <human value="ORGANIZATION tag requires LOCAL" /> + <expression + value="tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'ORGANIZATION').exists() implies tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'LOCAL').exists()" /> + </constraint> + <constraint> + <key value="role-implies-local" /> + <severity value="error" /> + <human value="ROLE tag requires LOCAL" /> + <expression + value="tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'ROLE').exists() implies tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'LOCAL').exists()" /> + </constraint> + <constraint> + <key value="all-implies-no-local" /> + <severity value="error" /> + <human value="ALL tag can not be used with LOCAL" /> + <expression + value="tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'ALL').exists() implies tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'LOCAL').exists().not()" /> + </constraint> + <constraint> + <key value="all-implies-no-organization" /> + <severity value="error" /> + <human value="ALL tag can not be used with ORGANIZATION" /> + <expression + value="tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'ALL').exists() implies tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'ORGANIZATION').exists().not()" /> + </constraint> + <constraint> + <key value="all-implies-no-role" /> + <severity value="error" /> + <human value="ALL tag can not be used with ROLE" /> + <expression + value="tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'ALL').exists() implies tag.where(system = 'http://dsf.dev/fhir/CodeSystem/read-access-tag' and code = 'ROLE').exists().not()" /> + </constraint> + </element> + <element id="Meta.tag"> + <path value="Meta.tag" /> + <slicing> + <discriminator> + <type value="value" /> + <path value="system" /> + </discriminator> + <discriminator> + <type value="value" /> + <path value="code" /> + </discriminator> + <rules value="open" /> + </slicing> + </element> + <element id="Meta.tag:all"> + <path value="Meta.tag" /> + <sliceName value="all" /> + <min value="0" /> + <max value="1" /> + </element> + <element id="Meta.tag:all.system"> + <path value="Meta.tag.system" /> + <min value="1" /> + <fixedUri value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + </element> + <element id="Meta.tag:all.code"> + <path value="Meta.tag.code" /> + <min value="1" /> + <fixedCode value="ALL" /> + </element> + <element id="Meta.tag:local"> + <path value="Meta.tag" /> + <sliceName value="local" /> + <min value="0" /> + <max value="1" /> + </element> + <element id="Meta.tag:local.system"> + <path value="Meta.tag.system" /> + <min value="1" /> + <fixedUri value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + </element> + <element id="Meta.tag:local.code"> + <path value="Meta.tag.code" /> + <min value="1" /> + <fixedCode value="LOCAL" /> + </element> + <element id="Meta.tag:organization"> + <path value="Meta.tag" /> + <sliceName value="organization" /> + <min value="0" /> + <max value="*" /> + </element> + <element id="Meta.tag:organization.extension:organization-extension"> + <path value="Meta.tag.extension" /> + <sliceName value="organization-extension" /> + <min value="1" /> + <max value="1" /> + <type> + <code value="Extension" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization|2.0.0" /> + </type> + </element> + <element id="Meta.tag:organization.system"> + <path value="Meta.tag.system" /> + <min value="1" /> + <fixedUri value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + </element> + <element id="Meta.tag:organization.code"> + <path value="Meta.tag.code" /> + <min value="1" /> + <fixedCode value="ORGANIZATION" /> + </element> + <element id="Meta.tag:read-access-parent-organization-role"> + <path value="Meta.tag" /> + <sliceName value="read-access-parent-organization-role" /> + <min value="0" /> + <max value="*" /> + </element> + <element id="Meta.tag:read-access-parent-organization-role:role-extension"> + <path value="Meta.tag.extension" /> + <sliceName value="role-extension" /> + <min value="1" /> + <max value="1" /> + <type> + <code value="Extension" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/extension-read-access-parent-organization-role|2.0.0" /> + </type> + </element> + <element id="Meta.tag:read-access-parent-organization-role.system"> + <path value="Meta.tag.system" /> + <min value="1" /> + <fixedUri value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + </element> + <element id="Meta.tag:read-access-parent-organization-role.code"> + <path value="Meta.tag.code" /> + <min value="1" /> + <fixedCode value="ROLE" /> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-meta-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-meta-2.0.0.xml.post new file mode 100644 index 000000000..ba31de1b2 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-meta-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/meta&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-naming-system-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-naming-system-2.0.0.xml new file mode 100644 index 000000000..efaa30e7d --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-naming-system-2.0.0.xml @@ -0,0 +1,39 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/naming-system" /> + <version value="2.0.0" /> + <name value="NamingSystem" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="NamingSystem" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/NamingSystem" /> + <derivation value="constraint" /> + <differential> + <element id="NamingSystem.meta"> + <path value="NamingSystem.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + <element id="NamingSystem.name"> + <path value="NamingSystem.name" /> + <min value="1" /> + </element> + <element id="NamingSystem.date"> + <path value="NamingSystem.date" /> + <min value="1" /> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-naming-system-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-naming-system-2.0.0.xml.post new file mode 100644 index 000000000..04ae9fd39 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-naming-system-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/naming-system&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-2.0.0.xml index 226586747..247b13b78 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="Organization" /> <status value="active" /> <experimental value="false" /> - <date value="2025-05-26" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="resource" /> <abstract value="false" /> @@ -19,6 +20,13 @@ <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Organization" /> <derivation value="constraint" /> <differential> + <element id="Organization.meta"> + <path value="Organization.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> <element id="Organization.extension"> <path value="Organization.extension" /> <slicing> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-affiliation-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-affiliation-2.0.0.xml index f9560cbb9..db7357ba3 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-affiliation-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-affiliation-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="OrganizationAffiliation" /> <status value="active" /> <experimental value="false" /> - <date value="2025-05-26" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="resource" /> <abstract value="false" /> @@ -19,6 +20,13 @@ <baseDefinition value="http://hl7.org/fhir/StructureDefinition/OrganizationAffiliation" /> <derivation value="constraint" /> <differential> + <element id="OrganizationAffiliation.meta"> + <path value="OrganizationAffiliation.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> <element id="OrganizationAffiliation.active"> <path value="OrganizationAffiliation.active" /> <min value="1" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-parent-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-parent-2.0.0.xml index 559e130a5..df9875313 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-parent-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-parent-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,7 +12,7 @@ <name value="OrganizationParent" /> <status value="active" /> <experimental value="false" /> - <date value="2025-05-26" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="resource" /> <abstract value="false" /> @@ -19,6 +20,13 @@ <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Organization" /> <derivation value="constraint" /> <differential> + <element id="Organization.meta"> + <path value="Organization.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> <element id="Organization.identifier"> <path value="Organization.identifier" /> <slicing> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-reference-1.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-reference-1.0.0.xml deleted file mode 100644 index 35e048fc7..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-reference-1.0.0.xml +++ /dev/null @@ -1,45 +0,0 @@ -<StructureDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> - <meta> - <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> - <code value="ALL" /> - </tag> - </meta> - <url value="http://dsf.dev/fhir/StructureDefinition/organization-reference" /> - <version value="1.0.0" /> - <name value="OrganizationReference" /> - <status value="active" /> - <experimental value="false" /> - <date value="2023-06-28" /> - <fhirVersion value="4.0.1" /> - <kind value="complex-type" /> - <abstract value="false" /> - <type value="Reference" /> - <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Reference" /> - <derivation value="constraint" /> - <differential> - <element id="Reference.reference"> - <path value="Reference.reference" /> - <max value="0" /> - </element> - <element id="Reference.type"> - <path value="Reference.type" /> - <fixedUri value="Organization" /> - </element> - <element id="Reference.identifier"> - <path value="Reference.identifier" /> - <min value="1" /> - </element> - <element id="Reference.identifier.system"> - <path value="Reference.identifier.system" /> - <min value="1" /> - <fixedUri value="http://dsf.dev/sid/organization-identifier" /> - </element> - <element id="Reference.identifier.value"> - <path value="Reference.identifier.value" /> - <min value="1" /> - </element> - </differential> -</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-reference-1.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-reference-1.0.0.xml.post deleted file mode 100644 index 7dd4dbe66..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-organization-reference-1.0.0.xml.post +++ /dev/null @@ -1 +0,0 @@ -url=http://dsf.dev/fhir/StructureDefinition/organization-reference&version=1.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-patient-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-patient-2.0.0.xml new file mode 100644 index 000000000..9757abdc4 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-patient-2.0.0.xml @@ -0,0 +1,31 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/patient" /> + <version value="2.0.0" /> + <name value="Patient" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="Patient" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Patient" /> + <derivation value="constraint" /> + <differential> + <element id="Patient.meta"> + <path value="Patient.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-patient-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-patient-2.0.0.xml.post new file mode 100644 index 000000000..de56323ff --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-patient-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/patient&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-practitioner-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-practitioner-2.0.0.xml new file mode 100644 index 000000000..ad6bd15bf --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-practitioner-2.0.0.xml @@ -0,0 +1,31 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/practitioner" /> + <version value="2.0.0" /> + <name value="Practitioner" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="Practitioner" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Practitioner" /> + <derivation value="constraint" /> + <differential> + <element id="Practitioner.meta"> + <path value="Practitioner.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-practitioner-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-practitioner-2.0.0.xml.post new file mode 100644 index 000000000..e84a86358 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-practitioner-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/practitioner&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-practitioner-role-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-practitioner-role-2.0.0.xml new file mode 100644 index 000000000..a187e4923 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-practitioner-role-2.0.0.xml @@ -0,0 +1,31 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/practitioner-role" /> + <version value="2.0.0" /> + <name value="PractitionerRole" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="PractitionerRole" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/PractitionerRole" /> + <derivation value="constraint" /> + <differential> + <element id="PractitionerRole.meta"> + <path value="PractitionerRole.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-practitioner-role-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-practitioner-role-2.0.0.xml.post new file mode 100644 index 000000000..c11451bc7 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-practitioner-role-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/practitioner-role&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-provenance-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-provenance-2.0.0.xml new file mode 100644 index 000000000..beca5b99b --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-provenance-2.0.0.xml @@ -0,0 +1,31 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/provenance" /> + <version value="2.0.0" /> + <name value="Provenance" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="Provenance" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Provenance" /> + <derivation value="constraint" /> + <differential> + <element id="Provenance.meta"> + <path value="Provenance.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-provenance-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-provenance-2.0.0.xml.post new file mode 100644 index 000000000..67e6d3296 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-provenance-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/provenance&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-1.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-1.0.0.xml deleted file mode 100644 index 381551607..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-1.0.0.xml +++ /dev/null @@ -1,204 +0,0 @@ -<StructureDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> - <meta> - <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> - <code value="ALL"/> - </tag> - </meta> - <url value="http://dsf.dev/fhir/StructureDefinition/questionnaire"/> - <version value="1.0.0"/> - <name value="Questionnaire"/> - <status value="active"/> - <experimental value="false"/> - <date value="2023-06-28"/> - <fhirVersion value="4.0.1"/> - <kind value="resource"/> - <abstract value="true"/> - <type value="Questionnaire"/> - <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Questionnaire"/> - <derivation value="constraint"/> - <differential> - <element id="Questionnaire.url"> - <path value="Questionnaire.url"/> - <min value="1"/> - </element> - <element id="Questionnaire.version"> - <path value="Questionnaire.version"/> - <min value="1"/> - </element> - <element id="Questionnaire.date"> - <path value="Questionnaire.date"/> - <min value="1"/> - </element> - <!-- TODO: Questionnaire.useContext with link to process (possibly ActivityDefinition) --> - <element id="Questionnaire.item"> - <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name"> - <valueString value="Parameter"/> - </extension> - <path value="Questionnaire.item"/> - <slicing> - <discriminator> - <type value="value"/> - <path value="linkId"/> - </discriminator> - <rules value="closed"/> - </slicing> - <min value="1"/> - <constraint> - <key value="type-code"/> - <severity value="error"/> - <human value="Constrains available types from ValueSet 'http://hl7.org/fhir/item-type'"/> - <expression - value="(type = 'display') or - (type = 'string') or - (type = 'text') or - (type = 'integer') or - (type = 'decimal') or - (type = 'boolean') or - (type = 'date') or - (type = 'time') or - (type = 'dateTime') or - (type = 'reference') or - (type = 'url')"/> - </constraint> - </element> - <element id="Questionnaire.item:user-task-id"> - <path value="Questionnaire.item"/> - <sliceName value="user-task-id"/> - <min value="1"/> - <max value="1"/> - </element> - <element id="Questionnaire.item:user-task-id.linkId"> - <path value="Questionnaire.item.linkId"/> - <fixedString value="user-task-id"/> - </element> - <element id="Questionnaire.item:user-task-id.definition"> - <path value="Questionnaire.item.definition"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:user-task-id.code"> - <path value="Questionnaire.item.code"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:user-task-id.prefix"> - <path value="Questionnaire.item.prefix"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:user-task-id.text"> - <path value="Questionnaire.item.text"/> - <min value="1"/> - <fixedString value="The user-task-id of the process execution"/> - </element> - <element id="Questionnaire.item:user-task-id.type"> - <path value="Questionnaire.item.type"/> - <fixedCode value="string"/> - </element> - <element id="Questionnaire.item:user-task-id.enableWhen"> - <path value="Questionnaire.item.enableWhen"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:user-task-id.answerOption"> - <path value="Questionnaire.item.answerOption"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:user-task-id.initial"> - <path value="Questionnaire.item.initial"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:user-task-id.item"> - <path value="Questionnaire.item.item"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:business-key"> - <path value="Questionnaire.item"/> - <sliceName value="business-key"/> - <min value="0"/> - <max value="1"/> - </element> - <element id="Questionnaire.item:business-key.linkId"> - <path value="Questionnaire.item.linkId"/> - <fixedString value="business-key"/> - </element> - <element id="Questionnaire.item:business-key.definition"> - <path value="Questionnaire.item.definition"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:business-key.code"> - <path value="Questionnaire.item.code"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:business-key.prefix"> - <path value="Questionnaire.item.prefix"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:business-key.text"> - <path value="Questionnaire.item.text"/> - <min value="1"/> - <fixedString value="The business-key of the process execution"/> - </element> - <element id="Questionnaire.item:business-key.type"> - <path value="Questionnaire.item.type"/> - <fixedCode value="string"/> - </element> - <element id="Questionnaire.item:business-key.enableWhen"> - <path value="Questionnaire.item.enableWhen"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:business-key.answerOption"> - <path value="Questionnaire.item.answerOption"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:business-key.initial"> - <path value="Questionnaire.item.initial"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:business-key.item"> - <path value="Questionnaire.item.item"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:@default"> - <path value="Questionnaire.item"/> - <sliceName value="@default"/> - <min value="0"/> - <max value="*"/> - </element> - <element id="Questionnaire.item:@default.definition"> - <path value="Questionnaire.item.definition"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:@default.code"> - <path value="Questionnaire.item.code"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:@default.prefix"> - <path value="Questionnaire.item.prefix"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:@default.text"> - <path value="Questionnaire.item.text"/> - <min value="1"/> - </element> - <element id="Questionnaire.item:@default.type"> - <path value="Questionnaire.item.type"/> - <min value="1"/> - </element> - <element id="Questionnaire.item:@default.enableWhen"> - <path value="Questionnaire.item.enableWhen"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:@default.answerOption"> - <path value="Questionnaire.item.answerOption"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:@default.initial"> - <path value="Questionnaire.item.initial"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:@default.item"> - <path value="Questionnaire.item.item"/> - <max value="0"/> - </element> - </differential> -</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-1.5.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-1.5.0.xml deleted file mode 100644 index fb9dd1e7a..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-1.5.0.xml +++ /dev/null @@ -1,218 +0,0 @@ -<StructureDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> - <meta> - <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> - <code value="ALL"/> - </tag> - </meta> - <url value="http://dsf.dev/fhir/StructureDefinition/questionnaire"/> - <version value="1.5.0"/> - <name value="Questionnaire"/> - <status value="active"/> - <experimental value="false"/> - <date value="2024-01-03"/> - <fhirVersion value="4.0.1"/> - <kind value="resource"/> - <abstract value="true"/> - <type value="Questionnaire"/> - <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Questionnaire"/> - <derivation value="constraint"/> - <differential> - <element id="Questionnaire.url"> - <path value="Questionnaire.url"/> - <min value="1"/> - </element> - <element id="Questionnaire.version"> - <path value="Questionnaire.version"/> - <min value="1"/> - </element> - <element id="Questionnaire.date"> - <path value="Questionnaire.date"/> - <min value="1"/> - </element> - <!-- TODO: Questionnaire.useContext with link to process (possibly ActivityDefinition) --> - <element id="Questionnaire.item"> - <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name"> - <valueString value="Parameter"/> - </extension> - <path value="Questionnaire.item"/> - <slicing> - <discriminator> - <type value="value"/> - <path value="linkId"/> - </discriminator> - <rules value="closed"/> - </slicing> - <min value="1"/> - <constraint> - <key value="type-code"/> - <severity value="error"/> - <human value="Constrains available types from ValueSet 'http://hl7.org/fhir/item-type'"/> - <expression - value="(type = 'display') or - (type = 'string') or - (type = 'text') or - (type = 'integer') or - (type = 'decimal') or - (type = 'boolean') or - (type = 'date') or - (type = 'time') or - (type = 'dateTime') or - (type = 'reference') or - (type = 'url')"/> - </constraint> - <constraint> - <key value="required-exists"/> - <severity value="error"/> - <human value="Required field must be set if type is not display"/> - <expression value="(type != 'display') implies required.exists()"/> - </constraint> - </element> - <element id="Questionnaire.item:user-task-id"> - <path value="Questionnaire.item"/> - <sliceName value="user-task-id"/> - <min value="1"/> - <max value="1"/> - </element> - <element id="Questionnaire.item:user-task-id.linkId"> - <path value="Questionnaire.item.linkId"/> - <fixedString value="user-task-id"/> - </element> - <element id="Questionnaire.item:user-task-id.definition"> - <path value="Questionnaire.item.definition"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:user-task-id.code"> - <path value="Questionnaire.item.code"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:user-task-id.prefix"> - <path value="Questionnaire.item.prefix"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:user-task-id.text"> - <path value="Questionnaire.item.text"/> - <min value="1"/> - <fixedString value="The user-task-id of the process execution"/> - </element> - <element id="Questionnaire.item:user-task-id.type"> - <path value="Questionnaire.item.type"/> - <fixedCode value="string"/> - </element> - <element id="Questionnaire.item:user-task-id.enableWhen"> - <path value="Questionnaire.item.enableWhen"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:user-task-id.required"> - <path value="Questionnaire.item.required"/> - <fixedBoolean value="true"/> - </element> - <element id="Questionnaire.item:user-task-id.answerOption"> - <path value="Questionnaire.item.answerOption"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:user-task-id.initial"> - <path value="Questionnaire.item.initial"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:user-task-id.item"> - <path value="Questionnaire.item.item"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:business-key"> - <path value="Questionnaire.item"/> - <sliceName value="business-key"/> - <min value="0"/> - <max value="1"/> - </element> - <element id="Questionnaire.item:business-key.linkId"> - <path value="Questionnaire.item.linkId"/> - <fixedString value="business-key"/> - </element> - <element id="Questionnaire.item:business-key.definition"> - <path value="Questionnaire.item.definition"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:business-key.code"> - <path value="Questionnaire.item.code"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:business-key.prefix"> - <path value="Questionnaire.item.prefix"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:business-key.text"> - <path value="Questionnaire.item.text"/> - <min value="1"/> - <fixedString value="The business-key of the process execution"/> - </element> - <element id="Questionnaire.item:business-key.type"> - <path value="Questionnaire.item.type"/> - <fixedCode value="string"/> - </element> - <element id="Questionnaire.item:business-key.enableWhen"> - <path value="Questionnaire.item.enableWhen"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:business-key.required"> - <path value="Questionnaire.item.required"/> - <fixedBoolean value="true"/> - </element> - <element id="Questionnaire.item:business-key.answerOption"> - <path value="Questionnaire.item.answerOption"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:business-key.initial"> - <path value="Questionnaire.item.initial"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:business-key.item"> - <path value="Questionnaire.item.item"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:@default"> - <path value="Questionnaire.item"/> - <sliceName value="@default"/> - <min value="0"/> - <max value="*"/> - </element> - <element id="Questionnaire.item:@default.definition"> - <path value="Questionnaire.item.definition"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:@default.code"> - <path value="Questionnaire.item.code"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:@default.prefix"> - <path value="Questionnaire.item.prefix"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:@default.text"> - <path value="Questionnaire.item.text"/> - <min value="1"/> - </element> - <element id="Questionnaire.item:@default.type"> - <path value="Questionnaire.item.type"/> - <min value="1"/> - </element> - <element id="Questionnaire.item:@default.enableWhen"> - <path value="Questionnaire.item.enableWhen"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:@default.answerOption"> - <path value="Questionnaire.item.answerOption"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:@default.initial"> - <path value="Questionnaire.item.initial"/> - <max value="0"/> - </element> - <element id="Questionnaire.item:@default.item"> - <path value="Questionnaire.item.item"/> - <max value="0"/> - </element> - </differential> -</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-1.5.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-1.5.0.xml.post deleted file mode 100644 index 776efe336..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-1.5.0.xml.post +++ /dev/null @@ -1 +0,0 @@ -url=http://dsf.dev/fhir/StructureDefinition/questionnaire&version=1.5.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-2.0.0.xml new file mode 100644 index 000000000..e8ed87978 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-2.0.0.xml @@ -0,0 +1,225 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/questionnaire" /> + <version value="2.0.0" /> + <name value="Questionnaire" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="Questionnaire" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Questionnaire" /> + <derivation value="constraint" /> + <differential> + <element id="Questionnaire.meta"> + <path value="Questionnaire.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + <element id="Questionnaire.url"> + <path value="Questionnaire.url" /> + <min value="1" /> + </element> + <element id="Questionnaire.version"> + <path value="Questionnaire.version" /> + <min value="1" /> + </element> + <element id="Questionnaire.date"> + <path value="Questionnaire.date" /> + <min value="1" /> + </element> + <!-- TODO: Questionnaire.useContext with link to process (possibly ActivityDefinition) --> + <element id="Questionnaire.item"> + <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name"> + <valueString value="Parameter" /> + </extension> + <path value="Questionnaire.item" /> + <slicing> + <discriminator> + <type value="value" /> + <path value="linkId" /> + </discriminator> + <rules value="closed" /> + </slicing> + <min value="1" /> + <constraint> + <key value="type-code" /> + <severity value="error" /> + <human value="Constrains available types from ValueSet 'http://hl7.org/fhir/item-type'" /> + <expression + value="(type = 'display') or + (type = 'string') or + (type = 'text') or + (type = 'integer') or + (type = 'decimal') or + (type = 'boolean') or + (type = 'date') or + (type = 'time') or + (type = 'dateTime') or + (type = 'reference') or + (type = 'url')" /> + </constraint> + <constraint> + <key value="required-exists" /> + <severity value="error" /> + <human value="Required field must be set if type is not display" /> + <expression value="(type != 'display') implies required.exists()" /> + </constraint> + </element> + <element id="Questionnaire.item:user-task-id"> + <path value="Questionnaire.item" /> + <sliceName value="user-task-id" /> + <min value="1" /> + <max value="1" /> + </element> + <element id="Questionnaire.item:user-task-id.linkId"> + <path value="Questionnaire.item.linkId" /> + <fixedString value="user-task-id" /> + </element> + <element id="Questionnaire.item:user-task-id.definition"> + <path value="Questionnaire.item.definition" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:user-task-id.code"> + <path value="Questionnaire.item.code" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:user-task-id.prefix"> + <path value="Questionnaire.item.prefix" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:user-task-id.text"> + <path value="Questionnaire.item.text" /> + <min value="1" /> + <fixedString value="The user-task-id of the process execution" /> + </element> + <element id="Questionnaire.item:user-task-id.type"> + <path value="Questionnaire.item.type" /> + <fixedCode value="string" /> + </element> + <element id="Questionnaire.item:user-task-id.enableWhen"> + <path value="Questionnaire.item.enableWhen" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:user-task-id.required"> + <path value="Questionnaire.item.required" /> + <fixedBoolean value="true" /> + </element> + <element id="Questionnaire.item:user-task-id.answerOption"> + <path value="Questionnaire.item.answerOption" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:user-task-id.initial"> + <path value="Questionnaire.item.initial" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:user-task-id.item"> + <path value="Questionnaire.item.item" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:business-key"> + <path value="Questionnaire.item" /> + <sliceName value="business-key" /> + <min value="0" /> + <max value="1" /> + </element> + <element id="Questionnaire.item:business-key.linkId"> + <path value="Questionnaire.item.linkId" /> + <fixedString value="business-key" /> + </element> + <element id="Questionnaire.item:business-key.definition"> + <path value="Questionnaire.item.definition" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:business-key.code"> + <path value="Questionnaire.item.code" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:business-key.prefix"> + <path value="Questionnaire.item.prefix" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:business-key.text"> + <path value="Questionnaire.item.text" /> + <min value="1" /> + <fixedString value="The business-key of the process execution" /> + </element> + <element id="Questionnaire.item:business-key.type"> + <path value="Questionnaire.item.type" /> + <fixedCode value="string" /> + </element> + <element id="Questionnaire.item:business-key.enableWhen"> + <path value="Questionnaire.item.enableWhen" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:business-key.required"> + <path value="Questionnaire.item.required" /> + <fixedBoolean value="true" /> + </element> + <element id="Questionnaire.item:business-key.answerOption"> + <path value="Questionnaire.item.answerOption" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:business-key.initial"> + <path value="Questionnaire.item.initial" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:business-key.item"> + <path value="Questionnaire.item.item" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:@default"> + <path value="Questionnaire.item" /> + <sliceName value="@default" /> + <min value="0" /> + <max value="*" /> + </element> + <element id="Questionnaire.item:@default.definition"> + <path value="Questionnaire.item.definition" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:@default.code"> + <path value="Questionnaire.item.code" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:@default.prefix"> + <path value="Questionnaire.item.prefix" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:@default.text"> + <path value="Questionnaire.item.text" /> + <min value="1" /> + </element> + <element id="Questionnaire.item:@default.type"> + <path value="Questionnaire.item.type" /> + <min value="1" /> + </element> + <element id="Questionnaire.item:@default.enableWhen"> + <path value="Questionnaire.item.enableWhen" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:@default.answerOption"> + <path value="Questionnaire.item.answerOption" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:@default.initial"> + <path value="Questionnaire.item.initial" /> + <max value="0" /> + </element> + <element id="Questionnaire.item:@default.item"> + <path value="Questionnaire.item.item" /> + <max value="0" /> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-1.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-2.0.0.xml.post similarity index 90% rename from dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-1.0.0.xml.post rename to dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-2.0.0.xml.post index 23e29c744..3325b13ff 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-1.0.0.xml.post +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-2.0.0.xml.post @@ -1 +1 @@ -url=http://dsf.dev/fhir/StructureDefinition/questionnaire&version=1.0.0 \ No newline at end of file +url=http://dsf.dev/fhir/StructureDefinition/questionnaire&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-response-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-response-2.0.0.xml index f95ca0b07..5b2c8a21d 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-response-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-questionnaire-response-2.0.0.xml @@ -1,6 +1,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -11,10 +12,10 @@ <name value="QuestionnaireResponse" /> <status value="active" /> <experimental value="false" /> - <date value="2025-10-15" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="resource" /> - <abstract value="true" /> + <abstract value="false" /> <type value="QuestionnaireResponse" /> <baseDefinition value="http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" /> <derivation value="constraint" /> @@ -31,7 +32,8 @@ <key value="author-if-completed-or-amended" /> <severity value="error" /> <human value="Author must be set if QuestionnaireResponse.status equals completed or amended" /> - <expression value="((%resource.status = 'completed' or %resource.status = 'amended') implies author.exists()) and + <expression + value="((%resource.status = 'completed' or %resource.status = 'amended') implies author.exists()) and ((%resource.status = 'completed' or %resource.status = 'amended') implies author.identifier.exists())" /> </constraint> </element> @@ -70,14 +72,18 @@ <constraint> <key value="author-identifier-type-organization" /> <severity value="error" /> - <human value="QuestionnaireResponse.author.identifier.type must be 'Organization' if QuestionnaireResponse.author.identifier.system is http://dsf.dev/sid/organization-identifier" /> - <expression value="identifier.system = 'http://dsf.dev/sid/organization-identifier' implies type.empty() or type = 'Organization'" /> + <human + value="QuestionnaireResponse.author.identifier.type must be 'Organization' if QuestionnaireResponse.author.identifier.system is http://dsf.dev/sid/organization-identifier" /> + <expression + value="identifier.system = 'http://dsf.dev/sid/organization-identifier' implies type.empty() or type = 'Organization'" /> </constraint> <constraint> <key value="author-identifier-type-practitioner" /> <severity value="error" /> - <human value="QuestionnaireResponse.author.identifier.type must be 'Practitioner' if QuestionnaireResponse.author.identifier.system is http://dsf.dev/sid/practitioner-identifier" /> - <expression value="identifier.system = 'http://dsf.dev/sid/practitioner-identifier' implies type.empty() or type = 'Practitioner'" /> + <human + value="QuestionnaireResponse.author.identifier.type must be 'Practitioner' if QuestionnaireResponse.author.identifier.system is http://dsf.dev/sid/practitioner-identifier" /> + <expression + value="identifier.system = 'http://dsf.dev/sid/practitioner-identifier' implies type.empty() or type = 'Practitioner'" /> </constraint> </element> <element id="QuestionnaireResponse.author.reference"> @@ -94,8 +100,10 @@ <constraint> <key value="author-identifier-system" /> <severity value="error" /> - <human value="QuestionnaireResponse.author.identifier.system must be 'http://dsf.dev/sid/organization-identifier' or 'http://dsf.dev/sid/practitioner-identifier'" /> - <expression value="$this = 'http://dsf.dev/sid/organization-identifier' or $this = 'http://dsf.dev/sid/practitioner-identifier'" /> + <human + value="QuestionnaireResponse.author.identifier.system must be 'http://dsf.dev/sid/organization-identifier' or 'http://dsf.dev/sid/practitioner-identifier'" /> + <expression + value="$this = 'http://dsf.dev/sid/organization-identifier' or $this = 'http://dsf.dev/sid/practitioner-identifier'" /> </constraint> </element> <element id="QuestionnaireResponse.author.identifier.value"> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-research-study-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-research-study-2.0.0.xml new file mode 100644 index 000000000..806955b49 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-research-study-2.0.0.xml @@ -0,0 +1,31 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/research-study" /> + <version value="2.0.0" /> + <name value="ResearchStudy" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="ResearchStudy" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/ResearchStudy" /> + <derivation value="constraint" /> + <differential> + <element id="ResearchStudy.meta"> + <path value="ResearchStudy.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-research-study-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-research-study-2.0.0.xml.post new file mode 100644 index 000000000..f1e77c334 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-research-study-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/research-study&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-structure-definition-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-structure-definition-2.0.0.xml new file mode 100644 index 000000000..42d5ea1ab --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-structure-definition-2.0.0.xml @@ -0,0 +1,43 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <version value="2.0.0" /> + <name value="StructureDefinition" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="StructureDefinition" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/StructureDefinition" /> + <derivation value="constraint" /> + <differential> + <element id="StructureDefinition.meta"> + <path value="StructureDefinition.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + <element id="StructureDefinition.url"> + <path value="StructureDefinition.url" /> + <min value="1" /> + </element> + <element id="StructureDefinition.version"> + <path value="StructureDefinition.version" /> + <min value="1" /> + </element> + <element id="StructureDefinition.date"> + <path value="StructureDefinition.date" /> + <min value="1" /> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-structure-definition-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-structure-definition-2.0.0.xml.post new file mode 100644 index 000000000..d93e9e6d7 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-structure-definition-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/structure-definition&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-subscription-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-subscription-2.0.0.xml new file mode 100644 index 000000000..b2e122566 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-subscription-2.0.0.xml @@ -0,0 +1,44 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/subscription" /> + <version value="2.0.0" /> + <name value="Subscription" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="Subscription" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Subscription" /> + <derivation value="constraint" /> + <differential> + <element id="Subscription.meta"> + <path value="Subscription.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + <element id="Subscription.channel.type"> + <path value="Subscription.channel.type" /> + <fixedCode value="websocket" /> + </element> + <element id="Subscription.channel.payload"> + <path value="Subscription.channel.payload" /> + <constraint> + <key value="payload-fhir-json-or-xml" /> + <severity value="error" /> + <human value="Subscription.channel.payload must be 'application/fhir+json' or 'application/fhir+xml'" /> + <expression value="$this.empty().not() implies ($this = 'application/fhir+json' or $this = 'application/fhir+xml')" /> + </constraint> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-subscription-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-subscription-2.0.0.xml.post new file mode 100644 index 000000000..1d7f38773 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-subscription-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/subscription&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-base-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-2.0.0.xml similarity index 83% rename from dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-base-2.0.0.xml rename to dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-2.0.0.xml index 4e5225181..c7d4b49ef 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-base-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-2.0.0.xml @@ -1,17 +1,18 @@ <StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> </tag> </meta> - <url value="http://dsf.dev/fhir/StructureDefinition/task-base" /> + <url value="http://dsf.dev/fhir/StructureDefinition/task" /> <version value="2.0.0" /> - <name value="DsfTaskBase" /> + <name value="Task" /> <status value="active" /> <experimental value="false" /> - <date value="2025-05-26" /> + <date value="2025-10-27" /> <fhirVersion value="4.0.1" /> <kind value="resource" /> <abstract value="true" /> @@ -58,14 +59,18 @@ <constraint> <key value="requester-identifier-type-organization" /> <severity value="error" /> - <human value="Task.requester.identifier.type must be 'Organization' if Task.requester.identifier.system is http://dsf.dev/sid/organization-identifier" /> - <expression value="identifier.system = 'http://dsf.dev/sid/organization-identifier' implies type.empty() or type = 'Organization'" /> + <human + value="Task.requester.identifier.type must be 'Organization' if Task.requester.identifier.system is http://dsf.dev/sid/organization-identifier" /> + <expression + value="identifier.system = 'http://dsf.dev/sid/organization-identifier' implies type.empty() or type = 'Organization'" /> </constraint> <constraint> <key value="requester-identifier-type-practitioner" /> <severity value="error" /> - <human value="Task.requester.identifier.type must be 'Practitioner' if Task.requester.identifier.system is http://dsf.dev/sid/practitioner-identifier" /> - <expression value="identifier.system = 'http://dsf.dev/sid/practitioner-identifier' implies type.empty() or type = 'Practitioner'" /> + <human + value="Task.requester.identifier.type must be 'Practitioner' if Task.requester.identifier.system is http://dsf.dev/sid/practitioner-identifier" /> + <expression + value="identifier.system = 'http://dsf.dev/sid/practitioner-identifier' implies type.empty() or type = 'Practitioner'" /> </constraint> </element> <element id="Task.requester.reference"> @@ -82,8 +87,10 @@ <constraint> <key value="requester-identifier-system" /> <severity value="error" /> - <human value="Task.requester.identifier.system must be 'http://dsf.dev/sid/organization-identifier' or 'http://dsf.dev/sid/practitioner-identifier'" /> - <expression value="$this = 'http://dsf.dev/sid/organization-identifier' or $this = 'http://dsf.dev/sid/practitioner-identifier'" /> + <human + value="Task.requester.identifier.system must be 'http://dsf.dev/sid/organization-identifier' or 'http://dsf.dev/sid/practitioner-identifier'" /> + <expression + value="$this = 'http://dsf.dev/sid/organization-identifier' or $this = 'http://dsf.dev/sid/practitioner-identifier'" /> </constraint> </element> <element id="Task.requester.identifier.value"> @@ -105,8 +112,10 @@ <constraint> <key value="restriction-recipient-identifier-type-organization" /> <severity value="error" /> - <human value="Task.restriction.recipient.identifier.type must be 'Organization' if Task.restriction.recipient.identifier.system is http://dsf.dev/sid/organization-identifier" /> - <expression value="identifier.system = 'http://dsf.dev/sid/organization-identifier' implies type.empty() or type = 'Organization'" /> + <human + value="Task.restriction.recipient.identifier.type must be 'Organization' if Task.restriction.recipient.identifier.system is http://dsf.dev/sid/organization-identifier" /> + <expression + value="identifier.system = 'http://dsf.dev/sid/organization-identifier' implies type.empty() or type = 'Organization'" /> </constraint> </element> <element id="Task.restriction.recipient.reference"> @@ -151,7 +160,7 @@ <path value="Task.input.type" /> <binding> <strength value="required" /> - <valueSet value="http://dsf.dev/fhir/ValueSet/bpmn-message|1.0.0" /> + <valueSet value="http://dsf.dev/fhir/ValueSet/bpmn-message" /> </binding> </element> <element id="Task.input:message-name.type.coding"> @@ -184,7 +193,7 @@ <path value="Task.input.type" /> <binding> <strength value="required" /> - <valueSet value="http://dsf.dev/fhir/ValueSet/bpmn-message|1.0.0" /> + <valueSet value="http://dsf.dev/fhir/ValueSet/bpmn-message" /> </binding> </element> <element id="Task.input:business-key.type.coding"> @@ -217,7 +226,7 @@ <path value="Task.input.type" /> <binding> <strength value="required" /> - <valueSet value="http://dsf.dev/fhir/ValueSet/bpmn-message|1.0.0" /> + <valueSet value="http://dsf.dev/fhir/ValueSet/bpmn-message" /> </binding> </element> <element id="Task.input:correlation-key.type.coding"> @@ -263,7 +272,7 @@ <path value="Task.output.type" /> <binding> <strength value="required" /> - <valueSet value="http://dsf.dev/fhir/ValueSet/bpmn-message|1.0.0" /> + <valueSet value="http://dsf.dev/fhir/ValueSet/bpmn-message" /> </binding> </element> <element id="Task.output:error.type.coding"> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-2.0.0.xml.post new file mode 100644 index 000000000..254f9596a --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/task&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-base-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-base-2.0.0.xml.post deleted file mode 100644 index 148fcd802..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-task-base-2.0.0.xml.post +++ /dev/null @@ -1 +0,0 @@ -url=http://dsf.dev/fhir/StructureDefinition/task-base&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-value-set-1.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-value-set-1.0.0.xml deleted file mode 100644 index 914fff5fb..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-value-set-1.0.0.xml +++ /dev/null @@ -1,32 +0,0 @@ -<StructureDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> - <meta> - <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> - <code value="ALL" /> - </tag> - </meta> - <url value="http://dsf.dev/fhir/StructureDefinition/value-set" /> - <version value="1.0.0" /> - <name value="ValueSet" /> - <status value="active" /> - <experimental value="false" /> - <date value="2023-06-28" /> - <fhirVersion value="4.0.1" /> - <kind value="resource" /> - <abstract value="false" /> - <type value="ValueSet" /> - <baseDefinition value="http://hl7.org/fhir/StructureDefinition/ValueSet" /> - <derivation value="constraint" /> - <differential> - <element id="ValueSet.url"> - <path value="ValueSet.url" /> - <min value="1" /> - </element> - <element id="ValueSet.version"> - <path value="ValueSet.version" /> - <min value="1" /> - </element> - </differential> -</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-value-set-1.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-value-set-1.0.0.xml.post deleted file mode 100644 index d81205799..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-value-set-1.0.0.xml.post +++ /dev/null @@ -1 +0,0 @@ -url=http://dsf.dev/fhir/StructureDefinition/value-set&version=1.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-value-set-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-value-set-2.0.0.xml new file mode 100644 index 000000000..5d0ea5d13 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-value-set-2.0.0.xml @@ -0,0 +1,43 @@ +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/value-set" /> + <version value="2.0.0" /> + <name value="ValueSet" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="ValueSet" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/ValueSet" /> + <derivation value="constraint" /> + <differential> + <element id="ValueSet.meta"> + <path value="ValueSet.meta" /> + <type> + <code value="Meta" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/meta|2.0.0" /> + </type> + </element> + <element id="ValueSet.url"> + <path value="ValueSet.url" /> + <min value="1" /> + </element> + <element id="ValueSet.version"> + <path value="ValueSet.version" /> + <min value="1" /> + </element> + <element id="ValueSet.date"> + <path value="ValueSet.date" /> + <min value="1" /> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-value-set-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-value-set-2.0.0.xml.post new file mode 100644 index 000000000..4c66a160d --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-value-set-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/StructureDefinition/value-set&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/Subscription/dsf-bpmn-questionnaire-response-subscription.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/Subscription/dsf-bpmn-questionnaire-response-subscription.xml index b56f5d470..e2e90517f 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/Subscription/dsf-bpmn-questionnaire-response-subscription.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/Subscription/dsf-bpmn-questionnaire-response-subscription.xml @@ -1,17 +1,17 @@ -<Subscription xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<Subscription xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/subscription" /> <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> - <code value="LOCAL"/> - </tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="LOCAL" /> + </tag> </meta> - <status value="active"/> - <reason value="Businness Process Engine"/> - <criteria value="QuestionnaireResponse?status=completed"/> + <status value="active" /> + <reason value="Businness Process Engine" /> + <criteria value="QuestionnaireResponse?status=completed" /> <channel> - <type value="websocket"/> - <payload value="application/fhir+json"/> + <type value="websocket" /> + <payload value="application/fhir+json" /> </channel> </Subscription> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/Subscription/dsf-bpmn-task-subscription.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/Subscription/dsf-bpmn-task-subscription.xml index 587dcdcce..7c4a73579 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/Subscription/dsf-bpmn-task-subscription.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/Subscription/dsf-bpmn-task-subscription.xml @@ -1,17 +1,17 @@ -<Subscription xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<Subscription xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/subscription" /> <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> - <code value="LOCAL"/> - </tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="LOCAL" /> + </tag> </meta> - <status value="active"/> - <reason value="Businness Process Engine"/> - <criteria value="Task?status=requested"/> + <status value="active" /> + <reason value="Businness Process Engine" /> + <criteria value="Task?status=requested" /> <channel> - <type value="websocket"/> - <payload value="application/fhir+json"/> + <type value="websocket" /> + <payload value="application/fhir+json" /> </channel> </Subscription> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-bpmn-message-1.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-bpmn-message-1.0.0.xml deleted file mode 100644 index 6811b9757..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-bpmn-message-1.0.0.xml +++ /dev/null @@ -1,27 +0,0 @@ -<ValueSet xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> - <meta> - <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> - <code value="ALL"/> - </tag> - </meta> - <url value="http://dsf.dev/fhir/ValueSet/bpmn-message"/> - <version value="1.0.0"/> - <name value="DsfBpmnMessage"/> - <title value="DSF BPMN message values"/> - <status value="active"/> - <experimental value="false"/> - <date value="2023-06-28"/> - <publisher value="DSF"/> - <description - value="ValueSet with standard BPMN message values for Task resources"/> - <immutable value="true"/> - <compose> - <include> - <system value="http://dsf.dev/fhir/CodeSystem/bpmn-message"/> - <version value="1.0.0"/> - </include> - </compose> -</ValueSet> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-bpmn-message-1.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-bpmn-message-1.0.0.xml.post deleted file mode 100644 index 4da9ed4d0..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-bpmn-message-1.0.0.xml.post +++ /dev/null @@ -1 +0,0 @@ -url=http://dsf.dev/fhir/ValueSet/bpmn-message&version=1.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-bpmn-message-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-bpmn-message-2.0.0.xml new file mode 100644 index 000000000..cd5ada25e --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-bpmn-message-2.0.0.xml @@ -0,0 +1,26 @@ +<ValueSet xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/value-set" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/ValueSet/bpmn-message" /> + <version value="2.0.0" /> + <name value="DsfBpmnMessage" /> + <title value="DSF BPMN message values" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-10-27" /> + <publisher value="DSF" /> + <description value="ValueSet with standard BPMN message values for Task resources" /> + <immutable value="true" /> + <compose> + <include> + <system value="http://dsf.dev/fhir/CodeSystem/bpmn-message" /> + <version value="2.0.0" /> + </include> + </compose> +</ValueSet> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-bpmn-message-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-bpmn-message-2.0.0.xml.post new file mode 100644 index 000000000..41a4318f2 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-bpmn-message-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/ValueSet/bpmn-message&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-organization-role-1.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-organization-role-1.0.0.xml.post deleted file mode 100644 index eeb4ee5ee..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-organization-role-1.0.0.xml.post +++ /dev/null @@ -1 +0,0 @@ -url=http://dsf.dev/fhir/ValueSet/organization-role&version=1.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-organization-role-1.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-organization-role-2.0.0.xml similarity index 83% rename from dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-organization-role-1.0.0.xml rename to dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-organization-role-2.0.0.xml index 91a105e32..396698a37 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-organization-role-1.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-organization-role-2.0.0.xml @@ -2,18 +2,19 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/value-set"/> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> <code value="ALL"/> </tag> </meta> <url value="http://dsf.dev/fhir/ValueSet/organization-role"/> - <version value="1.0.0"/> + <version value="2.0.0"/> <name value="DSF_Organization_Role"/> <title value="DSF Organization Role"/> <status value="active"/> <experimental value="false"/> - <date value="2023-06-28"/> + <date value="2025-10-27"/> <publisher value="DSF"/> <description value="ValueSet with DSF organization roles used in OrganizationAffiliation resources"/> @@ -21,7 +22,7 @@ <compose> <include> <system value="http://dsf.dev/fhir/CodeSystem/organization-role"/> - <version value="1.0.0"/> + <version value="2.0.0"/> </include> </compose> </ValueSet> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-organization-role-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-organization-role-2.0.0.xml.post new file mode 100644 index 000000000..87d4393fb --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-organization-role-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/ValueSet/organization-role&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-practitioner-role-1.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-practitioner-role-1.0.0.xml.post deleted file mode 100644 index 57ccaf0c9..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-practitioner-role-1.0.0.xml.post +++ /dev/null @@ -1 +0,0 @@ -url=http://dsf.dev/fhir/ValueSet/practitioner-role&version=1.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-practitioner-role-1.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-practitioner-role-2.0.0.xml similarity index 83% rename from dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-practitioner-role-1.0.0.xml rename to dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-practitioner-role-2.0.0.xml index 78f490a3b..1703ab1e5 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-practitioner-role-1.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-practitioner-role-2.0.0.xml @@ -2,18 +2,19 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/value-set"/> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> <code value="ALL"/> </tag> </meta> <url value="http://dsf.dev/fhir/ValueSet/practitioner-role"/> - <version value="1.0.0"/> + <version value="2.0.0"/> <name value="DSF_Practitioner_Role"/> <title value="DSF Practitioner Role"/> <status value="active"/> <experimental value="false"/> - <date value="2023-06-28"/> + <date value="2025-10-27"/> <publisher value="DSF"/> <description value="ValueSet with DSF practitioner roles used in OrganizationAffiliation resources"/> @@ -21,7 +22,7 @@ <compose> <include> <system value="http://dsf.dev/fhir/CodeSystem/practitioner-role"/> - <version value="1.0.0"/> + <version value="2.0.0"/> </include> </compose> </ValueSet> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-practitioner-role-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-practitioner-role-2.0.0.xml.post new file mode 100644 index 000000000..7366a3f6c --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-practitioner-role-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/ValueSet/practitioner-role&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-recipient-1.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-recipient-2.0.0.xml similarity index 87% rename from dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-recipient-1.0.0.xml rename to dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-recipient-2.0.0.xml index 181f3baa3..c9b3670b8 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-recipient-1.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-recipient-2.0.0.xml @@ -2,18 +2,19 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/value-set"/> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> <code value="ALL"/> </tag> </meta> <url value="http://dsf.dev/fhir/ValueSet/process-authorization-recipient"/> - <version value="1.0.0"/> + <version value="2.0.0"/> <name value="DSF_Process_Authorization_Recipient"/> <title value="DSF Process Authorization Recipient"/> <status value="active"/> <experimental value="false"/> - <date value="2023-06-28"/> + <date value="2025-10-27"/> <publisher value="DSF"/> <description value="ValueSet with proces authorization codes for recipients"/> @@ -21,7 +22,7 @@ <compose> <include> <system value="http://dsf.dev/fhir/CodeSystem/process-authorization"/> - <version value="1.0.0" /> + <version value="2.0.0" /> <concept> <code value="LOCAL_ORGANIZATION"/> <display value="LOCAL_ORGANIZATION"/> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-recipient-1.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-recipient-2.0.0.xml.post similarity index 82% rename from dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-recipient-1.0.0.xml.post rename to dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-recipient-2.0.0.xml.post index 6017d402b..4a7c4c338 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-recipient-1.0.0.xml.post +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-recipient-2.0.0.xml.post @@ -1 +1 @@ -url=http://dsf.dev/fhir/ValueSet/process-authorization-recipient&version=1.0.0 \ No newline at end of file +url=http://dsf.dev/fhir/ValueSet/process-authorization-recipient&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-requester-1.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-requester-2.0.0.xml similarity index 91% rename from dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-requester-1.0.0.xml rename to dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-requester-2.0.0.xml index 6c0f05b58..916d46c65 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-requester-1.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-requester-2.0.0.xml @@ -2,18 +2,19 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/value-set"/> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> <code value="ALL"/> </tag> </meta> <url value="http://dsf.dev/fhir/ValueSet/process-authorization-requester"/> - <version value="1.0.0"/> + <version value="2.0.0"/> <name value="DSF_Process_Authorization_Requester"/> <title value="DSF Process Authorization Requester"/> <status value="active"/> <experimental value="false"/> - <date value="2023-06-28"/> + <date value="2025-10-27"/> <publisher value="DSF"/> <description value="ValueSet with proces authorization codes for requesters"/> @@ -21,7 +22,7 @@ <compose> <include> <system value="http://dsf.dev/fhir/CodeSystem/process-authorization"/> - <version value="1.0.0" /> + <version value="2.0.0" /> <concept> <code value="LOCAL_ORGANIZATION"/> <display value="LOCAL_ORGANIZATION"/> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-requester-1.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-requester-2.0.0.xml.post similarity index 82% rename from dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-requester-1.0.0.xml.post rename to dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-requester-2.0.0.xml.post index d354b089f..7202acf9d 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-requester-1.0.0.xml.post +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-process-authorization-requester-2.0.0.xml.post @@ -1 +1 @@ -url=http://dsf.dev/fhir/ValueSet/process-authorization-requester&version=1.0.0 \ No newline at end of file +url=http://dsf.dev/fhir/ValueSet/process-authorization-requester&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-read-access-tag-1.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-read-access-tag-1.0.0.xml.post deleted file mode 100644 index 5b04d6fe9..000000000 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-read-access-tag-1.0.0.xml.post +++ /dev/null @@ -1 +0,0 @@ -url=http://dsf.dev/fhir/ValueSet/read-access-tag&version=1.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-read-access-tag-1.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-read-access-tag-2.0.0.xml similarity index 82% rename from dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-read-access-tag-1.0.0.xml rename to dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-read-access-tag-2.0.0.xml index 4e5c6de48..da97e4cf5 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-read-access-tag-1.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-read-access-tag-2.0.0.xml @@ -2,25 +2,26 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/value-set"/> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> <code value="ALL"/> </tag> </meta> <url value="http://dsf.dev/fhir/ValueSet/read-access-tag"/> - <version value="1.0.0"/> + <version value="2.0.0"/> <name value="DSF_Read_Access_Tag"/> <title value="DSF Read Access Tag"/> <status value="active"/> <experimental value="false"/> - <date value="2023-06-28"/> + <date value="2025-10-27"/> <publisher value="DSF"/> <description value="ValueSet with read access tags"/> <immutable value="true"/> <compose> <include> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> - <version value="1.0.0"/> + <version value="2.0.0"/> </include> </compose> </ValueSet> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-read-access-tag-2.0.0.xml.post b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-read-access-tag-2.0.0.xml.post new file mode 100644 index 000000000..64a71a268 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/dsf-read-access-tag-2.0.0.xml.post @@ -0,0 +1 @@ +url=http://dsf.dev/fhir/ValueSet/read-access-tag&version=2.0.0 \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/valueset-mimetypes.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/valueset-mimetypes.xml index 182708c5c..f9561af57 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/valueset-mimetypes.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/ValueSet/valueset-mimetypes.xml @@ -2,6 +2,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/value-set"/> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> <code value="ALL"/> @@ -43,7 +44,7 @@ <title value="MimeType"/> <status value="active"/> <experimental value="false"/> - <date value="2021-07-28"/> + <date value="2025-10-27"/> <publisher value="HL7 International / FHIR Infrastructure"/> <contact> <telecom> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/resources.delete b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/resources.delete index 4865bff22..b77fd71c0 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/resources.delete +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/resources.delete @@ -1,4 +1,15 @@ +CodeSystem?url=http://dsf.dev/fhir/CodeSystem/bpmn-message&version=1.0.0 +CodeSystem?url=http://dsf.dev/fhir/CodeSystem/organization-role&version=1.0.0 +CodeSystem?url=http://dsf.dev/fhir/CodeSystem/practitioner-role&version=1.0.0 +CodeSystem?url=http://dsf.dev/fhir/CodeSystem/process-authorization&version=1.0.0 +CodeSystem?url=http://dsf.dev/fhir/CodeSystem/read-access-tag&version=1.0.0 CodeSystem?url=urn:ietf:bcp:13&version=4.0.1&date=eq2021-07-28 +CodeSystem?url=urn:ietf:bcp:13&version=4.0.1&date=eq2025-01-16 +NamingSystem?name=DsfEndpointIdentifier&date=eq2023-06-28 +NamingSystem?name=DsfOrganizationIdentifier&date=eq2023-06-28 +NamingSystem?name=DsfPractitionerIdentifier&date=eq2023-06-28 +NamingSystem?name=DsfTaskIdentifier&date=eq2023-06-28 +StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/code-system&version=1.0.0 StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/activity-definition&version=1.0.0 StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/coding-process-authorization-local-all&version=1.0.0 StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/coding-process-authorization-local-all-practitioner&version=1.0.0 @@ -11,14 +22,28 @@ StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/coding-process-a StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/coding-process-authorization-remote-parent-organization-role&version=1.0.0 StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/endpoint&version=1.0.0 StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/extension-certificate-thumbprint&version=1.0.0 +StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/extension-check-logical-reference&version=1.0.0 StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/extension-process-authorization&version=1.0.0 StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-organization&version=1.0.0 StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-organization-practitioner&version=1.0.0 StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-parent-organization-role&version=1.0.0 StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-parent-organization-role-practitioner&version=1.0.0 StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-practitioner&version=1.0.0 +StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization&version=1.0.0 +StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/extension-read-access-parent-organization-role&version=1.0.0 StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/organization&version=1.0.0 StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/organization-affiliation&version=1.0.0 StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/organization-parent&version=1.0.0 +StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/organization-reference&version=1.0.0 StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/task-base&version=1.0.0 -StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/questionnaire-response&version=1.0.0 \ No newline at end of file +StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/questionnaire&version=1.0.0 +StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/questionnaire&version=1.5.0 +StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/questionnaire-response&version=1.0.0 +StructureDefinition?url=http://dsf.dev/fhir/StructureDefinition/value-set&version=1.0.0 +ValueSet?url=http://dsf.dev/fhir/ValueSet/bpmn-message&version=1.0.0 +ValueSet?url=http://dsf.dev/fhir/ValueSet/organization-role&version=1.0.0 +ValueSet?url=http://dsf.dev/fhir/ValueSet/practitioner-role&version=1.0.0 +ValueSet?url=http://dsf.dev/fhir/ValueSet/process-authorization-recipient&version=1.0.0 +ValueSet?url=http://dsf.dev/fhir/ValueSet/process-authorization-requester&version=1.0.0 +ValueSet?url=http://dsf.dev/fhir/ValueSet/read-access-tag&version=1.0.0 +ValueSet?url=http://hl7.org/fhir/ValueSet/mimetypes&version=4.0.1&date=eq2021-07-28 \ No newline at end of file From 50735cea343b4bb0b2ee89b29bddbefb168dbe15 Mon Sep 17 00:00:00 2001 From: Hauke Hund <hauke.hund@hs-heilbronn.de> Date: Wed, 29 Oct 2025 02:52:59 +0100 Subject: [PATCH 02/16] new and fixed profile validation tests, other minor changes - New Task profile in SnapshotGeneratorImpl for HAPI bug workaround - New log method and addition constructor variants in ValidationSupportRule --- dsf-fhir/dsf-fhir-validation/pom.xml | 9 + .../validation/SnapshotGeneratorImpl.java | 3 +- .../validation/ValidationSupportRule.java | 32 +- .../AbstractMetaDataResourceProfileTest.java | 43 ++ .../profiles/AbstractMetaTagProfileTest.java | 191 +++++++++ .../fhir/profiles/AbstractProfileTest.java | 69 ++++ .../ActivityDefinitionProfileTest.java | 54 +-- .../dsf/fhir/profiles/BinaryProfileTest.java | 52 +++ .../dsf/fhir/profiles/BundleProfileTest.java | 41 ++ .../fhir/profiles/CodeSystemProfileTest.java | 178 ++------- .../DocumentReferenceProfileTest.java | 43 ++ .../fhir/profiles/EndpointProfileTest.java | 92 +++-- .../dsf/fhir/profiles/GroupProfileTest.java | 42 ++ .../HealthcareServiceProfileTest.java | 39 ++ .../dsf/fhir/profiles/LibraryProfileTest.java | 43 ++ .../fhir/profiles/LocationProfileTest.java | 39 ++ .../dsf/fhir/profiles/MeasureProfileTest.java | 41 ++ .../profiles/MeasureReportProfileTest.java | 46 +++ .../profiles/NamingSystemProfileTest.java | 101 +++++ .../OrganizationAffiliationProfileTest.java | 18 +- .../profiles/OrganizationProfileTest.java | 59 ++- .../dsf/fhir/profiles/PatientProfileTest.java | 39 ++ .../profiles/PractitionerProfileTest.java | 39 ++ .../profiles/PractitionerRoleProfileTest.java | 39 ++ .../fhir/profiles/ProvenanceProfileTest.java | 45 +++ .../profiles/QuestionnaireProfileTest.java | 121 +++--- .../QuestionnaireResponseProfileTest.java | 18 +- .../StructureDefinitionProfileTest.java | 375 ++++++++++++++++++ .../profiles/SubscriptionProfileTest.java | 101 +++++ .../dsf/fhir/profiles/TaskProfileTest.java | 15 +- .../fhir/profiles/ValueSetProfileTest.java | 109 +++++ .../fhir/validation/ValueSetExpanderTest.java | 4 +- .../resources/fhir/CodeSystem/dsf-test-v2.xml | 4 +- .../resources/fhir/CodeSystem/dsf-test.xml | 4 +- .../StructureDefinition/dsf-task-test-v2.xml | 172 ++++---- .../StructureDefinition/dsf-task-test.xml | 172 ++++---- .../resources/fhir/ValueSet/dsf-test-v2.xml | 4 +- .../test/resources/fhir/ValueSet/dsf-test.xml | 4 +- .../log4j2-maven-surefire-config.xml | 18 + 39 files changed, 2012 insertions(+), 506 deletions(-) create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/AbstractMetaDataResourceProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/AbstractMetaTagProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/AbstractProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/BinaryProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/BundleProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/DocumentReferenceProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/GroupProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/HealthcareServiceProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/LibraryProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/LocationProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/MeasureProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/MeasureReportProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/NamingSystemProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PatientProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PractitionerProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PractitionerRoleProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ProvenanceProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/StructureDefinitionProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/SubscriptionProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ValueSetProfileTest.java create mode 100644 dsf-fhir/dsf-fhir-validation/src/test/resources/log4j2-maven-surefire-config.xml diff --git a/dsf-fhir/dsf-fhir-validation/pom.xml b/dsf-fhir/dsf-fhir-validation/pom.xml index 7ef197022..f726fffd1 100644 --- a/dsf-fhir/dsf-fhir-validation/pom.xml +++ b/dsf-fhir/dsf-fhir-validation/pom.xml @@ -96,6 +96,15 @@ </filesets> </configuration> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <systemPropertyVariables> + <log4j.configurationFile>log4j2-maven-surefire-config.xml</log4j.configurationFile> + </systemPropertyVariables> + </configuration> + </plugin> </plugins> </build> </project> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/java/dev/dsf/fhir/validation/SnapshotGeneratorImpl.java b/dsf-fhir/dsf-fhir-validation/src/main/java/dev/dsf/fhir/validation/SnapshotGeneratorImpl.java index ebb6b691a..283809ce1 100755 --- a/dsf-fhir/dsf-fhir-validation/src/main/java/dev/dsf/fhir/validation/SnapshotGeneratorImpl.java +++ b/dsf-fhir/dsf-fhir-validation/src/main/java/dev/dsf/fhir/validation/SnapshotGeneratorImpl.java @@ -89,7 +89,8 @@ else if (!base.hasSnapshot()) } // FIXME workaround HAPI ProfileUtilities bug - if ("http://dsf.dev/fhir/StructureDefinition/task-base".equals(differential.getBaseDefinition())) + if ("http://dsf.dev/fhir/StructureDefinition/task-base".equals(differential.getBaseDefinition()) + || "http://dsf.dev/fhir/StructureDefinition/task".equals(differential.getBaseDefinition())) { Optional<ElementDefinition> taskInputValueX = differential.getSnapshot().getElement().stream() .filter(e -> "Task.input.value[x]".equals(e.getId()) && e.getFixed() instanceof StringType s diff --git a/dsf-fhir/dsf-fhir-validation/src/main/java/dev/dsf/fhir/validation/ValidationSupportRule.java b/dsf-fhir/dsf-fhir-validation/src/main/java/dev/dsf/fhir/validation/ValidationSupportRule.java index 7e7f751b1..68a8351f5 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/java/dev/dsf/fhir/validation/ValidationSupportRule.java +++ b/dsf-fhir/dsf-fhir-validation/src/main/java/dev/dsf/fhir/validation/ValidationSupportRule.java @@ -12,6 +12,7 @@ import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Locale; +import java.util.function.Consumer; import java.util.regex.Pattern; import java.util.stream.Stream; @@ -47,15 +48,15 @@ public class ValidationSupportRule extends ExternalResource private static final Pattern DATE_PATTERN2 = Pattern.compile(Pattern.quote(DATE_PATTERN_STRING2)); private static final DateTimeFormatter DATE_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + private final FhirContext context; private final String version; private final LocalDate date; - private final FhirContext context; private final IValidationSupport validationSupport; public ValidationSupportRule(List<String> structureDefinitions, List<String> codeSystems, List<String> valueSets) { - this(null, structureDefinitions, codeSystems, valueSets); + this((String) null, structureDefinitions, codeSystems, valueSets); } public ValidationSupportRule(String version, List<String> structureDefinitions, List<String> codeSystems, @@ -67,10 +68,28 @@ public ValidationSupportRule(String version, List<String> structureDefinitions, public ValidationSupportRule(String version, LocalDate date, List<String> structureDefinitions, List<String> codeSystems, List<String> valueSets) { + this(FhirContext.forR4(), version, date, structureDefinitions, codeSystems, valueSets); + } + + public ValidationSupportRule(FhirContext context, List<String> structureDefinitions, List<String> codeSystems, + List<String> valueSets) + { + this(context, null, structureDefinitions, codeSystems, valueSets); + } + + public ValidationSupportRule(FhirContext context, String version, List<String> structureDefinitions, + List<String> codeSystems, List<String> valueSets) + { + this(context, version, LocalDate.MIN, structureDefinitions, codeSystems, valueSets); + } + + public ValidationSupportRule(FhirContext context, String version, LocalDate date, List<String> structureDefinitions, + List<String> codeSystems, List<String> valueSets) + { + this.context = context; this.version = version; this.date = date; - context = FhirContext.forR4(); HapiLocalizer localizer = new HapiLocalizer() { @Override @@ -179,9 +198,14 @@ public IValidationSupport getValidationSupport() } public static void logValidationMessages(Logger logger, ValidationResult result) + { + logValidationMessages(logger::info, result); + } + + public static void logValidationMessages(Consumer<String> logger, ValidationResult result) { result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger); } private static String replaceVersionAndDate(String read, String version, LocalDate date) diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/AbstractMetaDataResourceProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/AbstractMetaDataResourceProfileTest.java new file mode 100644 index 000000000..dc8cbbd01 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/AbstractMetaDataResourceProfileTest.java @@ -0,0 +1,43 @@ +package dev.dsf.fhir.profiles; + +import org.hl7.fhir.r4.model.MetadataResource; + +import dev.dsf.fhir.validation.ResourceValidator; + +public abstract class AbstractMetaDataResourceProfileTest<R extends MetadataResource> + extends AbstractMetaTagProfileTest<R> +{ + protected void doRunMetaDataResourceTests(ResourceValidator resourceValidator) throws Exception + { + testNotValidNoVersion(resourceValidator); + testNotValidNoUrl(resourceValidator); + testNotValidNoDate(resourceValidator); + } + + private void testNotValidNoVersion(ResourceValidator resourceValidator) throws Exception + { + R r = create(); + r.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ALL); + r.setVersion(null); + + testNotValid(resourceValidator, r, 1); + } + + private void testNotValidNoUrl(ResourceValidator resourceValidator) throws Exception + { + R r = create(); + r.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ALL); + r.setUrl(null); + + testNotValid(resourceValidator, r, 1); + } + + private void testNotValidNoDate(ResourceValidator resourceValidator) throws Exception + { + R r = create(); + r.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ALL); + r.setDate(null); + + testNotValid(resourceValidator, r, 1); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/AbstractMetaTagProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/AbstractMetaTagProfileTest.java new file mode 100644 index 000000000..f8bb3e046 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/AbstractMetaTagProfileTest.java @@ -0,0 +1,191 @@ +package dev.dsf.fhir.profiles; + +import org.hl7.fhir.r4.model.Coding; +import org.hl7.fhir.r4.model.Extension; +import org.hl7.fhir.r4.model.Identifier; +import org.hl7.fhir.r4.model.Resource; + +import dev.dsf.fhir.validation.ResourceValidator; + +public abstract class AbstractMetaTagProfileTest<R extends Resource> extends AbstractProfileTest +{ + public static final String CS_READ_ACCESS_TAG = "http://dsf.dev/fhir/CodeSystem/read-access-tag"; + public static final String TAG_ALL = "ALL"; + public static final String TAG_LOCAL = "LOCAL"; + public static final String TAG_ORGANIZATION = "ORGANIZATION"; + public static final String TAG_ROLE = "ROLE"; + + protected abstract R create(); + + protected void doRunMetaTagTests(ResourceValidator resourceValidator) throws Exception + { + testValidTagAll(resourceValidator); + testValidTagLocal(resourceValidator); + testValidLocalAndOrganization(resourceValidator); + testValidLocalAndOrganization2(resourceValidator); + testValidLocalAndRole(resourceValidator); + testValidLocalAndOrganizationAndRole(resourceValidator); + + testNotValidNoTag(resourceValidator); + testNotValidNoValidTag(resourceValidator); + testNotValidTagAllAndLocal(resourceValidator); + testNotValidAllAndOrganization(resourceValidator); + testNotValidLocalAndOrganization(resourceValidator); + testNotValidAllAndRole(resourceValidator); + testNotValidLocalAndRoleWithoutExtension(resourceValidator); + testNotValidLocalAndRoleNotExistingRoleCode(resourceValidator); + } + + private void testValidTagAll(ResourceValidator resourceValidator) throws Exception + { + R r = create(); + r.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ALL); + + testValid(resourceValidator, r); + } + + private void testValidTagLocal(ResourceValidator resourceValidator) throws Exception + { + R r = create(); + r.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_LOCAL); + + testValid(resourceValidator, r); + } + + private void testValidLocalAndOrganization(ResourceValidator resourceValidator) throws Exception + { + R cs = create(); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_LOCAL); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ORGANIZATION).addExtension() + .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization") + .setValue(new Identifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("foo.com")); + + testValid(resourceValidator, cs); + } + + private void testValidLocalAndOrganization2(ResourceValidator resourceValidator) throws Exception + { + R cs = create(); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_LOCAL); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ORGANIZATION).addExtension() + .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization") + .setValue(new Identifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("foo.com")); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ORGANIZATION).addExtension() + .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization") + .setValue(new Identifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("bar.com")); + + testValid(resourceValidator, cs); + } + + private void testValidLocalAndRole(ResourceValidator resourceValidator) throws Exception + { + R cs = create(); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_LOCAL); + Extension ex = cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ROLE).addExtension() + .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-read-access-parent-organization-role"); + ex.addExtension().setUrl("parent-organization").setValue( + new Identifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("parent.org")); + ex.addExtension().setUrl("organization-role") + .setValue(new Coding().setSystem("http://dsf.dev/fhir/CodeSystem/organization-role").setCode("TTP")); + + testValid(resourceValidator, cs); + } + + private void testValidLocalAndOrganizationAndRole(ResourceValidator resourceValidator) throws Exception + { + R cs = create(); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_LOCAL); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ORGANIZATION).addExtension() + .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization") + .setValue(new Identifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("foo.com")); + Extension ex = cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ROLE).addExtension() + .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-read-access-parent-organization-role"); + ex.addExtension().setUrl("parent-organization").setValue( + new Identifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("parent.org")); + ex.addExtension().setUrl("organization-role") + .setValue(new Coding().setSystem("http://dsf.dev/fhir/CodeSystem/organization-role").setCode("TTP")); + + testValid(resourceValidator, cs); + } + + private void testNotValidNoTag(ResourceValidator resourceValidator) throws Exception + { + R r = create(); + + testNotValid(resourceValidator, r, 1); + } + + private void testNotValidNoValidTag(ResourceValidator resourceValidator) throws Exception + { + R cs = create(); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode("FOO"); + + testNotValid(resourceValidator, cs, 1); + } + + private void testNotValidTagAllAndLocal(ResourceValidator resourceValidator) throws Exception + { + R cs = create(); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ALL); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_LOCAL); + + testNotValid(resourceValidator, cs, 1); + } + + private void testNotValidAllAndOrganization(ResourceValidator resourceValidator) throws Exception + { + R cs = create(); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ALL); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ORGANIZATION).addExtension() + .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization") + .setValue(new Identifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("foo.com")); + + testNotValid(resourceValidator, cs, 2); + } + + private void testNotValidLocalAndOrganization(ResourceValidator resourceValidator) throws Exception + { + R cs = create(); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_LOCAL); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ORGANIZATION); + + testNotValid(resourceValidator, cs, 1); + } + + private void testNotValidAllAndRole(ResourceValidator resourceValidator) throws Exception + { + R cs = create(); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ALL); + Extension ex = cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ROLE).addExtension() + .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-read-access-parent-organization-role"); + ex.addExtension().setUrl("parent-organization").setValue( + new Identifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("parent.org")); + ex.addExtension().setUrl("organization-role") + .setValue(new Coding().setSystem("http://dsf.dev/fhir/CodeSystem/organization-role").setCode("TTP")); + + testNotValid(resourceValidator, cs, 2); + } + + private void testNotValidLocalAndRoleWithoutExtension(ResourceValidator resourceValidator) throws Exception + { + R cs = create(); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_LOCAL); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ROLE); + + testNotValid(resourceValidator, cs, 1); + } + + private void testNotValidLocalAndRoleNotExistingRoleCode(ResourceValidator resourceValidator) throws Exception + { + R cs = create(); + cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_LOCAL); + Extension ex = cs.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ROLE).addExtension() + .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-read-access-parent-organization-role"); + ex.addExtension().setUrl("parent-organization").setValue( + new Identifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("parent.org")); + ex.addExtension().setUrl("organization-role") + .setValue(new Coding().setSystem("http://dsf.dev/fhir/CodeSystem/organization-role").setCode("FOO")); + + testNotValid(resourceValidator, cs, 1); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/AbstractProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/AbstractProfileTest.java new file mode 100644 index 000000000..eeec0404d --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/AbstractProfileTest.java @@ -0,0 +1,69 @@ +package dev.dsf.fhir.profiles; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Paths; + +import org.hl7.fhir.r4.model.Resource; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import ca.uhn.fhir.context.FhirContext; +import ca.uhn.fhir.model.api.annotation.ResourceDef; +import ca.uhn.fhir.validation.ResultSeverityEnum; +import ca.uhn.fhir.validation.ValidationResult; +import dev.dsf.fhir.validation.ResourceValidator; +import dev.dsf.fhir.validation.ValidationSupportRule; + +public class AbstractProfileTest +{ + private static final Logger logger = LoggerFactory.getLogger(AbstractProfileTest.class); + + protected static final FhirContext context = FhirContext.forR4(); + + protected final void logResource(Resource resource) + { + logger.trace("{}", + context.newJsonParser().setStripVersionsFromReferences(false) + .setOverrideResourceIdWithBundleEntryFullUrl(false).setPrettyPrint(false) + .encodeResourceToString(resource)); + } + + protected final void testValid(ResourceValidator validator, Resource resource) + { + logResource(resource); + + ValidationResult result = validator.validate(resource); + + ValidationSupportRule.logValidationMessages(logger::debug, result); + + assertTrue(result.isSuccessful()); + } + + protected final void testNotValid(ResourceValidator validator, Resource resource, int errorCount) + { + logResource(resource); + + ValidationResult result = validator.validate(resource); + + ValidationSupportRule.logValidationMessages(logger::debug, result); + + assertFalse(result.isSuccessful()); + assertEquals(errorCount, + result.getMessages().stream().filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity())).count()); + } + + protected <R extends Resource> R readValidationResource(Class<R> resourceType, String filename) throws IOException + { + try (InputStream in = Files.newInputStream( + Paths.get("src/main/resources/fhir", resourceType.getAnnotation(ResourceDef.class).name(), filename))) + { + return context.newXmlParser().parseResource(resourceType, in); + } + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ActivityDefinitionProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ActivityDefinitionProfileTest.java index 03300f980..b53fd5c3a 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ActivityDefinitionProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ActivityDefinitionProfileTest.java @@ -13,7 +13,6 @@ import org.hl7.fhir.r4.model.Enumerations.PublicationStatus; import org.hl7.fhir.r4.model.Extension; import org.hl7.fhir.r4.model.Identifier; -import org.hl7.fhir.r4.model.Resource; import org.hl7.fhir.r4.model.StringType; import org.junit.ClassRule; import org.junit.Test; @@ -25,13 +24,15 @@ import dev.dsf.fhir.validation.ResourceValidatorImpl; import dev.dsf.fhir.validation.ValidationSupportRule; -public class ActivityDefinitionProfileTest +public class ActivityDefinitionProfileTest extends AbstractProfileTest { private static final Logger logger = LoggerFactory.getLogger(ActivityDefinitionProfileTest.class); @ClassRule - public static final ValidationSupportRule validationRule = new ValidationSupportRule( - List.of("dsf-activity-definition-2.0.0.xml", "dsf-extension-process-authorization-2.0.0.xml", + public static final ValidationSupportRule validationRule = new ValidationSupportRule(context, + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-extension-process-authorization-2.0.0.xml", "dsf-extension-process-authorization-practitioner-2.0.0.xml", "dsf-extension-process-authorization-organization-2.0.0.xml", "dsf-extension-process-authorization-organization-practitioner-2.0.0.xml", @@ -45,12 +46,13 @@ public class ActivityDefinitionProfileTest "dsf-coding-process-authorization-local-parent-organization-role-practitioner-2.0.0.xml", "dsf-coding-process-authorization-remote-all-2.0.0.xml", "dsf-coding-process-authorization-remote-organization-2.0.0.xml", - "dsf-coding-process-authorization-remote-parent-organization-role-2.0.0.xml"), - List.of("dsf-read-access-tag-1.0.0.xml", "dsf-organization-role-1.0.0.xml", - "dsf-practitioner-role-1.0.0.xml", "dsf-process-authorization-1.0.0.xml"), - List.of("dsf-read-access-tag-1.0.0.xml", "dsf-organization-role-1.0.0.xml", - "dsf-practitioner-role-1.0.0.xml", "dsf-process-authorization-recipient-1.0.0.xml", - "dsf-process-authorization-requester-1.0.0.xml")); + "dsf-coding-process-authorization-remote-parent-organization-role-2.0.0.xml", + "dsf-activity-definition-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml", + "dsf-practitioner-role-2.0.0.xml", "dsf-process-authorization-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml", + "dsf-practitioner-role-2.0.0.xml", "dsf-process-authorization-recipient-2.0.0.xml", + "dsf-process-authorization-requester-2.0.0.xml")); private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); @@ -61,7 +63,7 @@ private ActivityDefinition createActivityDefinition() ad.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/activity-definition"); ad.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); ad.setUrl("http://dsf.dev/bpe/Process/test"); - ad.setVersion("1.0.0"); + ad.setVersion("2.0.0"); ad.setStatus(PublicationStatus.ACTIVE); ad.setKind(ActivityDefinitionKind.TASK); ad.setName("TestProcess"); @@ -69,20 +71,6 @@ private ActivityDefinition createActivityDefinition() return ad; } - private void logMessages(ValidationResult result) - { - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::debug); - } - - private void logResource(Resource resource) - { - logger.trace("{}", - validationRule.getFhirContext().newJsonParser().setStripVersionsFromReferences(false) - .setOverrideResourceIdWithBundleEntryFullUrl(false).setPrettyPrint(false) - .encodeResourceToString(resource)); - } - @Test public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteAllRecipientLocalAllValid() throws Exception @@ -102,7 +90,7 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteAllReci ValidationResult result = resourceValidator.validate(ad); - logMessages(result); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertTrue(result.isSuccessful()); } @@ -131,7 +119,7 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterLocalPractiti ValidationResult result = resourceValidator.validate(ad); - logMessages(result); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertTrue(result.isSuccessful()); } @@ -168,7 +156,7 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteOrganiz ValidationResult result = resourceValidator.validate(ad); - logMessages(result); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertTrue(result.isSuccessful()); } @@ -209,7 +197,7 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterOrganizationP ValidationResult result = resourceValidator.validate(ad); - logMessages(result); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertTrue(result.isSuccessful()); } @@ -245,7 +233,7 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterParentOrganiz ValidationResult result = resourceValidator.validate(ad); - logMessages(result); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertTrue(result.isSuccessful()); } @@ -276,10 +264,10 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteOrganiz ValidationResult result = resourceValidator.validate(ad); - logMessages(result); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertFalse(result.isSuccessful()); - assertEquals(7, result.getMessages().size()); + assertEquals(9, result.getMessages().size()); } @Test @@ -291,7 +279,7 @@ public void testActivityDefinitionWithoutProcessAuthorizationNotValid() throws E ValidationResult result = resourceValidator.validate(ad); - logMessages(result); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertFalse(result.isSuccessful()); assertEquals(2, result.getMessages().size()); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/BinaryProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/BinaryProfileTest.java new file mode 100644 index 000000000..ff8821c44 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/BinaryProfileTest.java @@ -0,0 +1,52 @@ +package dev.dsf.fhir.profiles; + +import java.nio.charset.StandardCharsets; +import java.util.List; +import java.util.UUID; + +import org.hl7.fhir.r4.model.Binary; +import org.junit.ClassRule; +import org.junit.Test; + +import dev.dsf.fhir.validation.ResourceValidator; +import dev.dsf.fhir.validation.ResourceValidatorImpl; +import dev.dsf.fhir.validation.ValidationSupportRule; + +public class BinaryProfileTest extends AbstractMetaTagProfileTest<Binary> +{ + @ClassRule + public static final ValidationSupportRule validationRule = new ValidationSupportRule(context, + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-binary-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); + + private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), + validationRule.getValidationSupport()); + + protected Binary create() + { + Binary b = new Binary(); + b.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/binary"); + b.setContent("Test".getBytes(StandardCharsets.UTF_8)); + b.setContentType("Text/Plain"); + + return b; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } + + @Test + public void testBinaryWithSecurityContextValid() throws Exception + { + Binary b = create(); + b.getSecurityContext().setReference("DocumentReference/" + UUID.randomUUID().toString()); + + testValid(resourceValidator, b); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/BundleProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/BundleProfileTest.java new file mode 100644 index 000000000..bd5e9dfe4 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/BundleProfileTest.java @@ -0,0 +1,41 @@ +package dev.dsf.fhir.profiles; + +import java.util.List; + +import org.hl7.fhir.r4.model.Bundle; +import org.hl7.fhir.r4.model.Bundle.BundleType; +import org.junit.ClassRule; +import org.junit.Test; + +import dev.dsf.fhir.validation.ResourceValidator; +import dev.dsf.fhir.validation.ResourceValidatorImpl; +import dev.dsf.fhir.validation.ValidationSupportRule; + +public class BundleProfileTest extends AbstractMetaTagProfileTest<Bundle> +{ + @ClassRule + public static final ValidationSupportRule validationRule = new ValidationSupportRule(context, + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-bundle-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); + + private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), + validationRule.getValidationSupport()); + + protected Bundle create() + { + Bundle b = new Bundle(); + b.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/bundle"); + b.setType(BundleType.COLLECTION); + + return b; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/CodeSystemProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/CodeSystemProfileTest.java index 5f4b63804..dc64f0aa3 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/CodeSystemProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/CodeSystemProfileTest.java @@ -1,196 +1,104 @@ package dev.dsf.fhir.profiles; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - +import java.util.Date; import java.util.List; import org.hl7.fhir.r4.model.CodeSystem; import org.hl7.fhir.r4.model.CodeSystem.CodeSystemContentMode; -import org.hl7.fhir.r4.model.Coding; import org.hl7.fhir.r4.model.Enumerations.PublicationStatus; -import org.hl7.fhir.r4.model.Extension; -import org.hl7.fhir.r4.model.Identifier; -import org.hl7.fhir.r4.model.Resource; import org.junit.ClassRule; import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import ca.uhn.fhir.validation.ValidationResult; import dev.dsf.fhir.validation.ResourceValidator; import dev.dsf.fhir.validation.ResourceValidatorImpl; import dev.dsf.fhir.validation.ValidationSupportRule; -public class CodeSystemProfileTest +public class CodeSystemProfileTest extends AbstractMetaDataResourceProfileTest<CodeSystem> { - private static final Logger logger = LoggerFactory.getLogger(EndpointProfileTest.class); - @ClassRule public static final ValidationSupportRule validationRule = new ValidationSupportRule( - List.of("dsf-code-system-1.0.0.xml", "dsf-extension-read-access-organization-1.0.0.xml", - "dsf-extension-read-access-parent-organization-role-1.0.0.xml"), - List.of("dsf-read-access-tag-1.0.0.xml", "dsf-organization-role-1.0.0.xml"), - List.of("dsf-read-access-tag-1.0.0.xml", "dsf-organization-role-1.0.0.xml")); + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-code-system-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); - private CodeSystem createCodeSystem() + protected CodeSystem create() { - var cs = new CodeSystem(); - cs.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/code-system"); - cs.setUrl("http://test.com/fhir/test"); - cs.setVersion("0.1.0"); - cs.setName("Test"); - cs.setStatus(PublicationStatus.ACTIVE); - cs.setContent(CodeSystemContentMode.COMPLETE); - cs.addConcept().setCode("TEST").setDisplay("Test Display").setDefinition("Test Definition"); - cs.setCaseSensitive(true); - - return cs; + CodeSystem s = new CodeSystem(); + s.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/code-system"); + s.setUrl("http://test.com/fhir/test"); + s.setVersion("2.0.0"); + s.setName("Test"); + s.setDate(new Date()); + s.setStatus(PublicationStatus.ACTIVE); + s.setContent(CodeSystemContentMode.COMPLETE); + s.addConcept().setCode("TEST").setDisplay("Test Display").setDefinition("Test Definition"); + s.setCaseSensitive(true); + + return s; } - private void logMessages(ValidationResult result) - { - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::debug); - } - - private void logResource(Resource resource) + @Test + public void runMetaTagTests() throws Exception { - logger.trace("{}", - validationRule.getFhirContext().newXmlParser().setPrettyPrint(true).encodeResourceToString(resource)); + doRunMetaTagTests(resourceValidator); } @Test - public void testCodeSystemWithAllReadAccessValid() throws Exception + public void runMetaDataResourceTests() throws Exception { - CodeSystem cs = createCodeSystem(); - cs.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); - - logResource(cs); - - ValidationResult result = resourceValidator.validate(cs); - - logMessages(result); - - assertTrue(result.isSuccessful()); + doRunMetaDataResourceTests(resourceValidator); } @Test - public void testCodeSystemWithLocalReadAccessValid() throws Exception + public void testBpmnMessage() throws Exception { - CodeSystem cs = createCodeSystem(); - cs.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("LOCAL"); - - logResource(cs); + CodeSystem s = readValidationResource(CodeSystem.class, "dsf-bpmn-message-2.0.0.xml"); - ValidationResult result = resourceValidator.validate(cs); - - logMessages(result); - - assertTrue(result.isSuccessful()); + testValid(resourceValidator, s); } @Test - public void testCodeSystemWithFooReadAccessNotValid() throws Exception + public void testOrganizationRole() throws Exception { - CodeSystem cs = createCodeSystem(); - cs.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("FOO"); - - logResource(cs); + CodeSystem s = readValidationResource(CodeSystem.class, "dsf-organization-role-2.0.0.xml"); - ValidationResult result = resourceValidator.validate(cs); - - logMessages(result); - - assertEquals(1, result.getMessages().size()); - assertFalse(result.isSuccessful()); + testValid(resourceValidator, s); } @Test - public void testCodeSystemWithOrganizationReadAccessValid() throws Exception + public void testPractitionerRole() throws Exception { - CodeSystem cs = createCodeSystem(); - cs.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("LOCAL"); - cs.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ORGANIZATION") - .addExtension().setUrl("http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization") - .setValue(new Identifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("foo.com")); - - logResource(cs); - - ValidationResult result = resourceValidator.validate(cs); + CodeSystem s = readValidationResource(CodeSystem.class, "dsf-practitioner-role-2.0.0.xml"); - logMessages(result); - - assertTrue(result.isSuccessful()); + testValid(resourceValidator, s); } @Test - public void testCodeSystemWithTwoOrganizationsReadAccessValid() throws Exception + public void testProcessAuthorization() throws Exception { - CodeSystem cs = createCodeSystem(); - cs.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("LOCAL"); - cs.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ORGANIZATION") - .addExtension().setUrl("http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization") - .setValue(new Identifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("foo.com")); - cs.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ORGANIZATION") - .addExtension().setUrl("http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization") - .setValue(new Identifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("bar.com")); - - logResource(cs); - - ValidationResult result = resourceValidator.validate(cs); + CodeSystem s = readValidationResource(CodeSystem.class, "dsf-process-authorization-2.0.0.xml"); - logMessages(result); - - assertTrue(result.isSuccessful()); + testValid(resourceValidator, s); } @Test - public void testCodeSystemWithParentOrganizationMemberReadAccessValid() throws Exception + public void testReadAccessTag() throws Exception { - CodeSystem cs = createCodeSystem(); - cs.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("LOCAL"); - Extension ex = cs.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ROLE") - .addExtension() - .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-read-access-parent-organization-role"); - ex.addExtension().setUrl("parent-organization").setValue( - new Identifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("parent.org")); - ex.addExtension().setUrl("organization-role") - .setValue(new Coding().setSystem("http://dsf.dev/fhir/CodeSystem/organization-role").setCode("TTP")); - - logResource(cs); - - ValidationResult result = resourceValidator.validate(cs); - - logMessages(result); + CodeSystem s = readValidationResource(CodeSystem.class, "dsf-read-access-tag-2.0.0.xml"); - assertTrue(result.isSuccessful()); + testValid(resourceValidator, s); } @Test - public void testCodeSystemWithParentOrganizationMemberReadAccessNotValid() throws Exception + public void testRrnIetfBcp13() throws Exception { - CodeSystem cs = createCodeSystem(); - cs.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("LOCAL"); - Extension ex = cs.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ROLE") - .addExtension() - .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-read-access-parent-organization-role"); - ex.addExtension().setUrl("parent-organization").setValue( - new Identifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("parent.org")); - ex.addExtension().setUrl("organization-role") - .setValue(new Coding().setSystem("http://dsf.dev/fhir/CodeSystem/organization-role").setCode("FOO")); - - logResource(cs); - - ValidationResult result = resourceValidator.validate(cs); - - logMessages(result); + CodeSystem s = readValidationResource(CodeSystem.class, "urn_ietf_bcp_13.xml"); - assertEquals(1, result.getMessages().size()); - assertFalse(result.isSuccessful()); + testValid(resourceValidator, s); } } diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/DocumentReferenceProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/DocumentReferenceProfileTest.java new file mode 100644 index 000000000..6a0d54c62 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/DocumentReferenceProfileTest.java @@ -0,0 +1,43 @@ +package dev.dsf.fhir.profiles; + +import java.util.List; +import java.util.UUID; + +import org.hl7.fhir.r4.model.DocumentReference; +import org.hl7.fhir.r4.model.Enumerations.DocumentReferenceStatus; +import org.junit.ClassRule; +import org.junit.Test; + +import dev.dsf.fhir.validation.ResourceValidator; +import dev.dsf.fhir.validation.ResourceValidatorImpl; +import dev.dsf.fhir.validation.ValidationSupportRule; + +public class DocumentReferenceProfileTest extends AbstractMetaTagProfileTest<DocumentReference> +{ + @ClassRule + public static final ValidationSupportRule validationRule = new ValidationSupportRule(context, + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-document-reference-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); + + private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), + validationRule.getValidationSupport()); + + protected DocumentReference create() + { + DocumentReference r = new DocumentReference(); + r.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/document-reference"); + r.setStatus(DocumentReferenceStatus.CURRENT); + r.getContentFirstRep().getAttachment().setUrl("https://localhost/fhir/Binary/" + UUID.randomUUID()); + + return r; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/EndpointProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/EndpointProfileTest.java index 7fdf8b905..5a8378faf 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/EndpointProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/EndpointProfileTest.java @@ -20,39 +20,63 @@ import dev.dsf.fhir.validation.ResourceValidatorImpl; import dev.dsf.fhir.validation.ValidationSupportRule; -public class EndpointProfileTest +public class EndpointProfileTest extends AbstractMetaTagProfileTest<Endpoint> { private static final Logger logger = LoggerFactory.getLogger(EndpointProfileTest.class); @ClassRule public static final ValidationSupportRule validationRule = new ValidationSupportRule( - List.of("dsf-extension-certificate-thumbprint-2.0.0.xml", "dsf-endpoint-2.0.0.xml"), - List.of("dsf-read-access-tag-1.0.0.xml", "urn_ietf_bcp_13.xml"), - List.of("dsf-read-access-tag-1.0.0.xml", "valueset-mimetypes.xml")); + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-extension-certificate-thumbprint-2.0.0.xml", "dsf-endpoint-2.0.0.xml"), + List.of("dsf-organization-role-2.0.0.xml", "dsf-read-access-tag-2.0.0.xml", "urn_ietf_bcp_13.xml"), + List.of("dsf-organization-role-2.0.0.xml", "dsf-read-access-tag-2.0.0.xml", "valueset-mimetypes.xml")); private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override + protected Endpoint create() + { + Endpoint e = new Endpoint(); + e.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/endpoint"); + e.getIdentifierFirstRep().setSystem("http://dsf.dev/sid/endpoint-identifier").setValue("fhir.test.com"); + e.setStatus(EndpointStatus.ACTIVE); + e.getManagingOrganization().setReference("Organization/" + UUID.randomUUID().toString()); + e.getPayloadTypeFirstRep().getCodingFirstRep().setSystem("http://hl7.org/fhir/resource-types").setCode("Task"); + e.addPayloadMimeType(Constants.CT_FHIR_XML_NEW); + e.addPayloadMimeType(Constants.CT_FHIR_JSON_NEW); + e.setAddress("https://fhir.test.com/fhir"); + e.getConnectionType().setSystem("http://terminology.hl7.org/CodeSystem/endpoint-connection-type") + .setCode("hl7-fhir-rest"); + + return e; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } + @Test public void testEndpointProfileValid() throws Exception { - Endpoint endpoint = new Endpoint(); - endpoint.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/endpoint"); - endpoint.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); - endpoint.getIdentifierFirstRep().setSystem("http://dsf.dev/sid/endpoint-identifier").setValue("fhir.test.com"); - endpoint.setStatus(EndpointStatus.ACTIVE); - endpoint.getConnectionType().setSystem("http://terminology.hl7.org/CodeSystem/endpoint-connection-type") + Endpoint e = new Endpoint(); + e.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/endpoint"); + e.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); + e.getIdentifierFirstRep().setSystem("http://dsf.dev/sid/endpoint-identifier").setValue("fhir.test.com"); + e.setStatus(EndpointStatus.ACTIVE); + e.getConnectionType().setSystem("http://terminology.hl7.org/CodeSystem/endpoint-connection-type") .setCode("hl7-fhir-rest"); - endpoint.getManagingOrganization().setReference("Organization/" + UUID.randomUUID().toString()); - endpoint.getPayloadTypeFirstRep().getCodingFirstRep().setSystem("http://hl7.org/fhir/resource-types") - .setCode("Task"); - endpoint.addPayloadMimeTypeElement().setSystem("urn:ietf:bcp:13").setValue(Constants.CT_FHIR_XML_NEW); - endpoint.addPayloadMimeTypeElement().setSystem("urn:ietf:bcp:13").setValue(Constants.CT_FHIR_JSON_NEW); - endpoint.setAddress("https://fhir.test.com/fhir"); + e.getManagingOrganization().setReference("Organization/" + UUID.randomUUID().toString()); + e.getPayloadTypeFirstRep().getCodingFirstRep().setSystem("http://hl7.org/fhir/resource-types").setCode("Task"); + e.addPayloadMimeTypeElement().setSystem("urn:ietf:bcp:13").setValue(Constants.CT_FHIR_XML_NEW); + e.addPayloadMimeTypeElement().setSystem("urn:ietf:bcp:13").setValue(Constants.CT_FHIR_JSON_NEW); + e.setAddress("https://fhir.test.com/fhir"); - ValidationResult result = resourceValidator.validate(endpoint); - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + ValidationResult result = resourceValidator.validate(e); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(0, result.getMessages().stream().filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) || ResultSeverityEnum.FATAL.equals(m.getSeverity())).count()); @@ -61,26 +85,24 @@ public void testEndpointProfileValid() throws Exception @Test public void testEndpointProfileValidWithThumbprintExtension() throws Exception { - Endpoint endpoint = new Endpoint(); - endpoint.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/endpoint"); - endpoint.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); - endpoint.getIdentifierFirstRep().setSystem("http://dsf.dev/sid/endpoint-identifier").setValue("fhir.test.com"); - endpoint.setStatus(EndpointStatus.ACTIVE); - endpoint.getConnectionType().setSystem("http://terminology.hl7.org/CodeSystem/endpoint-connection-type") + Endpoint e = new Endpoint(); + e.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/endpoint"); + e.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); + e.getIdentifierFirstRep().setSystem("http://dsf.dev/sid/endpoint-identifier").setValue("fhir.test.com"); + e.setStatus(EndpointStatus.ACTIVE); + e.getConnectionType().setSystem("http://terminology.hl7.org/CodeSystem/endpoint-connection-type") .setCode("hl7-fhir-rest"); - endpoint.getManagingOrganization().setReference("Organization/" + UUID.randomUUID().toString()); - endpoint.getPayloadTypeFirstRep().getCodingFirstRep().setSystem("http://hl7.org/fhir/resource-types") - .setCode("Task"); - endpoint.addPayloadMimeTypeElement().setSystem("urn:ietf:bcp:13").setValue(Constants.CT_FHIR_XML_NEW); - endpoint.addPayloadMimeTypeElement().setSystem("urn:ietf:bcp:13").setValue(Constants.CT_FHIR_JSON_NEW); - endpoint.setAddress("https://fhir.test.com/fhir"); - endpoint.addExtension().setUrl("http://dsf.dev/fhir/StructureDefinition/extension-certificate-thumbprint") + e.getManagingOrganization().setReference("Organization/" + UUID.randomUUID().toString()); + e.getPayloadTypeFirstRep().getCodingFirstRep().setSystem("http://hl7.org/fhir/resource-types").setCode("Task"); + e.addPayloadMimeTypeElement().setSystem("urn:ietf:bcp:13").setValue(Constants.CT_FHIR_XML_NEW); + e.addPayloadMimeTypeElement().setSystem("urn:ietf:bcp:13").setValue(Constants.CT_FHIR_JSON_NEW); + e.setAddress("https://fhir.test.com/fhir"); + e.addExtension().setUrl("http://dsf.dev/fhir/StructureDefinition/extension-certificate-thumbprint") .setValue(new StringType( "6d40e7c82ead96a9c5851976002d3732631d6e0e82e10e98c5ba568b2980b45a4436577d329ee47a8bc50fd35e39aa3c54faa23249d7b7a82a117824a4c430eb")); - ValidationResult result = resourceValidator.validate(endpoint); - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + ValidationResult result = resourceValidator.validate(e); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(0, result.getMessages().stream().filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) || ResultSeverityEnum.FATAL.equals(m.getSeverity())).count()); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/GroupProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/GroupProfileTest.java new file mode 100644 index 000000000..1655ccd4d --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/GroupProfileTest.java @@ -0,0 +1,42 @@ +package dev.dsf.fhir.profiles; + +import java.util.List; + +import org.hl7.fhir.r4.model.Group; +import org.hl7.fhir.r4.model.Group.GroupType; +import org.junit.ClassRule; +import org.junit.Test; + +import dev.dsf.fhir.validation.ResourceValidator; +import dev.dsf.fhir.validation.ResourceValidatorImpl; +import dev.dsf.fhir.validation.ValidationSupportRule; + +public class GroupProfileTest extends AbstractMetaTagProfileTest<Group> +{ + @ClassRule + public static final ValidationSupportRule validationRule = new ValidationSupportRule(context, + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-group-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); + + private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), + validationRule.getValidationSupport()); + + protected Group create() + { + Group g = new Group(); + g.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/group"); + g.setType(GroupType.PERSON); + g.setActual(false); + + return g; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/HealthcareServiceProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/HealthcareServiceProfileTest.java new file mode 100644 index 000000000..f9310210b --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/HealthcareServiceProfileTest.java @@ -0,0 +1,39 @@ +package dev.dsf.fhir.profiles; + +import java.util.List; + +import org.hl7.fhir.r4.model.HealthcareService; +import org.junit.ClassRule; +import org.junit.Test; + +import dev.dsf.fhir.validation.ResourceValidator; +import dev.dsf.fhir.validation.ResourceValidatorImpl; +import dev.dsf.fhir.validation.ValidationSupportRule; + +public class HealthcareServiceProfileTest extends AbstractMetaTagProfileTest<HealthcareService> +{ + @ClassRule + public static final ValidationSupportRule validationRule = new ValidationSupportRule(context, + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-healthcare-service-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); + + private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), + validationRule.getValidationSupport()); + + protected HealthcareService create() + { + HealthcareService s = new HealthcareService(); + s.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/healthcare-service"); + + return s; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/LibraryProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/LibraryProfileTest.java new file mode 100644 index 000000000..0beee26f3 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/LibraryProfileTest.java @@ -0,0 +1,43 @@ +package dev.dsf.fhir.profiles; + +import java.util.List; + +import org.hl7.fhir.r4.model.Enumerations.PublicationStatus; +import org.hl7.fhir.r4.model.Library; +import org.junit.ClassRule; +import org.junit.Test; + +import dev.dsf.fhir.validation.ResourceValidator; +import dev.dsf.fhir.validation.ResourceValidatorImpl; +import dev.dsf.fhir.validation.ValidationSupportRule; + +public class LibraryProfileTest extends AbstractMetaTagProfileTest<Library> +{ + @ClassRule + public static final ValidationSupportRule validationRule = new ValidationSupportRule(context, + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-library-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); + + private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), + validationRule.getValidationSupport()); + + protected Library create() + { + Library l = new Library(); + l.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/library"); + l.setStatus(PublicationStatus.ACTIVE); + l.getType().getCodingFirstRep().setSystem("http://terminology.hl7.org/CodeSystem/library-type") + .setCode("logic-library"); + + return l; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/LocationProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/LocationProfileTest.java new file mode 100644 index 000000000..8c058f391 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/LocationProfileTest.java @@ -0,0 +1,39 @@ +package dev.dsf.fhir.profiles; + +import java.util.List; + +import org.hl7.fhir.r4.model.Location; +import org.junit.ClassRule; +import org.junit.Test; + +import dev.dsf.fhir.validation.ResourceValidator; +import dev.dsf.fhir.validation.ResourceValidatorImpl; +import dev.dsf.fhir.validation.ValidationSupportRule; + +public class LocationProfileTest extends AbstractMetaTagProfileTest<Location> +{ + @ClassRule + public static final ValidationSupportRule validationRule = new ValidationSupportRule(context, + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-location-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); + + private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), + validationRule.getValidationSupport()); + + protected Location create() + { + Location l = new Location(); + l.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/location"); + + return l; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/MeasureProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/MeasureProfileTest.java new file mode 100644 index 000000000..968808c75 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/MeasureProfileTest.java @@ -0,0 +1,41 @@ +package dev.dsf.fhir.profiles; + +import java.util.List; + +import org.hl7.fhir.r4.model.Enumerations.PublicationStatus; +import org.hl7.fhir.r4.model.Measure; +import org.junit.ClassRule; +import org.junit.Test; + +import dev.dsf.fhir.validation.ResourceValidator; +import dev.dsf.fhir.validation.ResourceValidatorImpl; +import dev.dsf.fhir.validation.ValidationSupportRule; + +public class MeasureProfileTest extends AbstractMetaTagProfileTest<Measure> +{ + @ClassRule + public static final ValidationSupportRule validationRule = new ValidationSupportRule(context, + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-measure-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); + + private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), + validationRule.getValidationSupport()); + + protected Measure create() + { + Measure m = new Measure(); + m.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/measure"); + m.setStatus(PublicationStatus.ACTIVE); + + return m; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/MeasureReportProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/MeasureReportProfileTest.java new file mode 100644 index 000000000..5e68c3544 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/MeasureReportProfileTest.java @@ -0,0 +1,46 @@ +package dev.dsf.fhir.profiles; + +import java.util.Date; +import java.util.List; + +import org.hl7.fhir.r4.model.MeasureReport; +import org.hl7.fhir.r4.model.MeasureReport.MeasureReportStatus; +import org.hl7.fhir.r4.model.MeasureReport.MeasureReportType; +import org.junit.ClassRule; +import org.junit.Test; + +import dev.dsf.fhir.validation.ResourceValidator; +import dev.dsf.fhir.validation.ResourceValidatorImpl; +import dev.dsf.fhir.validation.ValidationSupportRule; + +public class MeasureReportProfileTest extends AbstractMetaTagProfileTest<MeasureReport> +{ + @ClassRule + public static final ValidationSupportRule validationRule = new ValidationSupportRule(context, + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-measure-report-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); + + private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), + validationRule.getValidationSupport()); + + protected MeasureReport create() + { + MeasureReport m = new MeasureReport(); + m.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/measure-report"); + m.setStatus(MeasureReportStatus.COMPLETE); + m.setType(MeasureReportType.SUMMARY); + m.setMeasure("http://localhost/fhir/Measure/foo"); + m.getPeriod().setStart(new Date()).setEnd(new Date()); + + return m; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/NamingSystemProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/NamingSystemProfileTest.java new file mode 100644 index 000000000..31124f9bd --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/NamingSystemProfileTest.java @@ -0,0 +1,101 @@ +package dev.dsf.fhir.profiles; + +import java.util.Date; +import java.util.List; + +import org.hl7.fhir.r4.model.Enumerations.PublicationStatus; +import org.hl7.fhir.r4.model.NamingSystem; +import org.hl7.fhir.r4.model.NamingSystem.NamingSystemIdentifierType; +import org.hl7.fhir.r4.model.NamingSystem.NamingSystemType; +import org.junit.ClassRule; +import org.junit.Test; + +import dev.dsf.fhir.validation.ResourceValidator; +import dev.dsf.fhir.validation.ResourceValidatorImpl; +import dev.dsf.fhir.validation.ValidationSupportRule; + +public class NamingSystemProfileTest extends AbstractMetaTagProfileTest<NamingSystem> +{ + @ClassRule + public static final ValidationSupportRule validationRule = new ValidationSupportRule( + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-extension-check-logical-reference-2.0.0.xml", "dsf-naming-system-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); + + private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), + validationRule.getValidationSupport()); + + protected NamingSystem create() + { + NamingSystem s = new NamingSystem(); + s.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/naming-system"); + s.setName("Test"); + s.setDate(new Date()); + s.setStatus(PublicationStatus.ACTIVE); + s.setKind(NamingSystemType.IDENTIFIER); + s.getUniqueIdFirstRep().setType(NamingSystemIdentifierType.OTHER) + .setValue("http://dsf.dev/sid/test-identifier"); + + return s; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } + + @Test + public void testNotValidNoName() throws Exception + { + NamingSystem s = create(); + s.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ALL); + s.setName(null); + + testNotValid(resourceValidator, s, 1); + } + + @Test + public void testNotValidNoDate() throws Exception + { + NamingSystem s = create(); + s.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ALL); + s.setDate(null); + + testNotValid(resourceValidator, s, 1); + } + + @Test + public void testDsfEndpoint() throws Exception + { + NamingSystem s = readValidationResource(NamingSystem.class, "dsf-endpoint.xml"); + + testValid(resourceValidator, s); + } + + @Test + public void testDsfOrganization() throws Exception + { + NamingSystem s = readValidationResource(NamingSystem.class, "dsf-organization.xml"); + + testValid(resourceValidator, s); + } + + @Test + public void testDsfPractitioner() throws Exception + { + NamingSystem s = readValidationResource(NamingSystem.class, "dsf-practitioner.xml"); + + testValid(resourceValidator, s); + } + + @Test + public void testDsfTask() throws Exception + { + NamingSystem s = readValidationResource(NamingSystem.class, "dsf-task.xml"); + + testValid(resourceValidator, s); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/OrganizationAffiliationProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/OrganizationAffiliationProfileTest.java index 2908b95cf..a784e0c5e 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/OrganizationAffiliationProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/OrganizationAffiliationProfileTest.java @@ -23,10 +23,12 @@ public class OrganizationAffiliationProfileTest @ClassRule public static final ValidationSupportRule validationRule = new ValidationSupportRule( - List.of("dsf-organization-affiliation-2.0.0.xml", "dsf-organization-2.0.0.xml", - "dsf-organization-parent-2.0.0.xml"), - List.of("dsf-read-access-tag-1.0.0.xml", "dsf-organization-role-1.0.0.xml"), - List.of("dsf-read-access-tag-1.0.0.xml", "dsf-organization-role-1.0.0.xml")); + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-organization-2.0.0.xml", "dsf-organization-parent-2.0.0.xml", + "dsf-organization-affiliation-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); @@ -36,6 +38,7 @@ public void testOrganizationAffiliationProfileValid() throws Exception { OrganizationAffiliation a = new OrganizationAffiliation(); a.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/organization-affiliation"); + a.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); a.setActive(true); a.getOrganization().setReference("Organization/" + UUID.randomUUID().toString()); a.getParticipatingOrganization().setReference("Organization/" + UUID.randomUUID().toString()); @@ -44,8 +47,7 @@ public void testOrganizationAffiliationProfileValid() throws Exception a.getEndpointFirstRep().setReference("Endpoint/" + UUID.randomUUID().toString()); ValidationResult result = resourceValidator.validate(a); - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(0, result.getMessages().stream().filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) || ResultSeverityEnum.FATAL.equals(m.getSeverity())).count()); @@ -56,6 +58,7 @@ public void testOrganizationAffiliationProfileNotValidMultipleEndpoints() throws { OrganizationAffiliation a = new OrganizationAffiliation(); a.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/organization-affiliation"); + a.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); a.setActive(true); a.getOrganization().setReference("Organization/" + UUID.randomUUID().toString()); a.getParticipatingOrganization().setReference("Organization/" + UUID.randomUUID().toString()); @@ -65,8 +68,7 @@ public void testOrganizationAffiliationProfileNotValidMultipleEndpoints() throws a.addEndpoint().setReference("Endpoint/" + UUID.randomUUID().toString()); ValidationResult result = resourceValidator.validate(a); - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(1, result.getMessages().stream().filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) || ResultSeverityEnum.FATAL.equals(m.getSeverity())).count()); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/OrganizationProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/OrganizationProfileTest.java index 20c69a30d..030926d5f 100755 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/OrganizationProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/OrganizationProfileTest.java @@ -5,7 +5,6 @@ import java.util.List; import java.util.UUID; -import org.hl7.fhir.r4.model.Coding; import org.hl7.fhir.r4.model.Identifier; import org.hl7.fhir.r4.model.Organization; import org.hl7.fhir.r4.model.StringType; @@ -26,11 +25,11 @@ public class OrganizationProfileTest @ClassRule public static final ValidationSupportRule validationRule = new ValidationSupportRule( - List.of("dsf-organization-2.0.0.xml", "dsf-organization-parent-2.0.0.xml", - "dsf-extension-certificate-thumbprint-2.0.0.xml", "dsf-endpoint-2.0.0.xml", - "dsf-extension-read-access-parent-organization-role-1.0.0.xml", - "dsf-extension-read-access-organization-1.0.0.xml"), - List.of("dsf-read-access-tag-1.0.0.xml"), List.of("dsf-read-access-tag-1.0.0.xml")); + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-extension-certificate-thumbprint-2.0.0.xml", "dsf-organization-2.0.0.xml", + "dsf-organization-parent-2.0.0.xml", "dsf-endpoint-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml"), List.of("dsf-read-access-tag-2.0.0.xml")); private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); @@ -40,10 +39,11 @@ public void testOrganizationProfileValid() throws Exception { Organization org = new Organization(); org.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/organization"); - Coding tag = org.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag") - .setCode("ORGANIZATION"); - tag.addExtension("http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization", - new Identifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("organization.com")); + org.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("LOCAL"); + org.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ORGANIZATION") + .addExtension("http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization", + new Identifier().setSystem("http://dsf.dev/sid/organization-identifier") + .setValue("organization.com")); org.addIdentifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("test.org"); org.setActive(true); org.addEndpoint().setReference("Endpoint/" + UUID.randomUUID().toString()); @@ -53,8 +53,7 @@ public void testOrganizationProfileValid() throws Exception "6d40e7c82ead96a9c5851976002d3732631d6e0e82e10e98c5ba568b2980b45a4436577d329ee47a8bc50fd35e39aa3c54faa23249d7b7a82a117824a4c430eb")); ValidationResult result = resourceValidator.validate(org); - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(0, result.getMessages().stream().filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) || ResultSeverityEnum.FATAL.equals(m.getSeverity())).count()); @@ -70,8 +69,7 @@ public void testOrganizationParentProfileValid() throws Exception org.setActive(true); ValidationResult result = resourceValidator.validate(org); - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(0, result.getMessages().stream().filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) || ResultSeverityEnum.FATAL.equals(m.getSeverity())).count()); @@ -82,10 +80,11 @@ public void testOrganizationProfileHexNotValid() throws Exception { Organization org = new Organization(); org.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/organization"); - Coding tag = org.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag") - .setCode("ORGANIZATION"); - tag.addExtension("http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization", - new Identifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("organization.com")); + org.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("LOCAL"); + org.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ORGANIZATION") + .addExtension("http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization", + new Identifier().setSystem("http://dsf.dev/sid/organization-identifier") + .setValue("organization.com")); org.addIdentifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("test.org"); org.setActive(true); org.addEndpoint().setReference("Endpoint/" + UUID.randomUUID().toString()); @@ -98,8 +97,7 @@ public void testOrganizationProfileHexNotValid() throws Exception "6d40e7c82ead96a9c5851976002d3732631d6e0e82e10e98c5ba568b2980b45a4436577d329ee47a8bc50fd35e39aa3c54faa23249d7b7a82a117824a4c430ebTooLong")); ValidationResult result = resourceValidator.validate(org); - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(2, result.getMessages().stream().filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) || ResultSeverityEnum.FATAL.equals(m.getSeverity())).count()); @@ -110,10 +108,11 @@ public void testOrganizationProfileNotValidMissingEndpoint() throws Exception { Organization org = new Organization(); org.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/organization"); - Coding tag = org.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag") - .setCode("ORGANIZATION"); - tag.addExtension("http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization", - new Identifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("organization.com")); + org.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("LOCAL"); + org.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ORGANIZATION") + .addExtension("http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization", + new Identifier().setSystem("http://dsf.dev/sid/organization-identifier") + .setValue("organization.com")); org.addIdentifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("test.org"); org.setActive(true); org.addExtension().setUrl("http://dsf.dev/fhir/StructureDefinition/extension-certificate-thumbprint") @@ -121,8 +120,7 @@ public void testOrganizationProfileNotValidMissingEndpoint() throws Exception "6d40e7c82ead96a9c5851976002d3732631d6e0e82e10e98c5ba568b2980b45a4436577d329ee47a8bc50fd35e39aa3c54faa23249d7b7a82a117824a4c430eb")); ValidationResult result = resourceValidator.validate(org); - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(1, result.getMessages().stream().filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) || ResultSeverityEnum.FATAL.equals(m.getSeverity())).count()); @@ -141,8 +139,7 @@ public void testOrganizationProfileNotValidMissingIdentifier() throws Exception "6d40e7c82ead96a9c5851976002d3732631d6e0e82e10e98c5ba568b2980b45a4436577d329ee47a8bc50fd35e39aa3c54faa23249d7b7a82a117824a4c430eb")); ValidationResult result = resourceValidator.validate(org); - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(3, result.getMessages().stream().filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) || ResultSeverityEnum.FATAL.equals(m.getSeverity())).count()); @@ -161,8 +158,7 @@ public void testOrganizationProfileNotValidMissingActive() throws Exception "6d40e7c82ead96a9c5851976002d3732631d6e0e82e10e98c5ba568b2980b45a4436577d329ee47a8bc50fd35e39aa3c54faa23249d7b7a82a117824a4c430eb")); ValidationResult result = resourceValidator.validate(org); - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(1, result.getMessages().stream().filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) || ResultSeverityEnum.FATAL.equals(m.getSeverity())).count()); @@ -179,8 +175,7 @@ public void testOrganizationProfileNotValidMissingThumbprint() throws Exception org.addEndpoint().setReference("Endpoint/" + UUID.randomUUID().toString()); ValidationResult result = resourceValidator.validate(org); - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(2, result.getMessages().stream().filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) || ResultSeverityEnum.FATAL.equals(m.getSeverity())).count()); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PatientProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PatientProfileTest.java new file mode 100644 index 000000000..b8af99da1 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PatientProfileTest.java @@ -0,0 +1,39 @@ +package dev.dsf.fhir.profiles; + +import java.util.List; + +import org.hl7.fhir.r4.model.Patient; +import org.junit.ClassRule; +import org.junit.Test; + +import dev.dsf.fhir.validation.ResourceValidator; +import dev.dsf.fhir.validation.ResourceValidatorImpl; +import dev.dsf.fhir.validation.ValidationSupportRule; + +public class PatientProfileTest extends AbstractMetaTagProfileTest<Patient> +{ + @ClassRule + public static final ValidationSupportRule validationRule = new ValidationSupportRule(context, + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-patient-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); + + private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), + validationRule.getValidationSupport()); + + protected Patient create() + { + Patient p = new Patient(); + p.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/patient"); + + return p; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PractitionerProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PractitionerProfileTest.java new file mode 100644 index 000000000..bd8673290 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PractitionerProfileTest.java @@ -0,0 +1,39 @@ +package dev.dsf.fhir.profiles; + +import java.util.List; + +import org.hl7.fhir.r4.model.Practitioner; +import org.junit.ClassRule; +import org.junit.Test; + +import dev.dsf.fhir.validation.ResourceValidator; +import dev.dsf.fhir.validation.ResourceValidatorImpl; +import dev.dsf.fhir.validation.ValidationSupportRule; + +public class PractitionerProfileTest extends AbstractMetaTagProfileTest<Practitioner> +{ + @ClassRule + public static final ValidationSupportRule validationRule = new ValidationSupportRule(context, + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-practitioner-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); + + private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), + validationRule.getValidationSupport()); + + protected Practitioner create() + { + Practitioner p = new Practitioner(); + p.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/practitioner"); + + return p; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PractitionerRoleProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PractitionerRoleProfileTest.java new file mode 100644 index 000000000..5b4c94037 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PractitionerRoleProfileTest.java @@ -0,0 +1,39 @@ +package dev.dsf.fhir.profiles; + +import java.util.List; + +import org.hl7.fhir.r4.model.PractitionerRole; +import org.junit.ClassRule; +import org.junit.Test; + +import dev.dsf.fhir.validation.ResourceValidator; +import dev.dsf.fhir.validation.ResourceValidatorImpl; +import dev.dsf.fhir.validation.ValidationSupportRule; + +public class PractitionerRoleProfileTest extends AbstractMetaTagProfileTest<PractitionerRole> +{ + @ClassRule + public static final ValidationSupportRule validationRule = new ValidationSupportRule(context, + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-practitioner-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); + + private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), + validationRule.getValidationSupport()); + + protected PractitionerRole create() + { + PractitionerRole p = new PractitionerRole(); + p.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/practitioner-role"); + + return p; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ProvenanceProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ProvenanceProfileTest.java new file mode 100644 index 000000000..a89d255b0 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ProvenanceProfileTest.java @@ -0,0 +1,45 @@ +package dev.dsf.fhir.profiles; + +import java.util.Date; +import java.util.List; +import java.util.UUID; + +import org.hl7.fhir.r4.model.Provenance; +import org.junit.ClassRule; +import org.junit.Test; + +import dev.dsf.fhir.validation.ResourceValidator; +import dev.dsf.fhir.validation.ResourceValidatorImpl; +import dev.dsf.fhir.validation.ValidationSupportRule; + +public class ProvenanceProfileTest extends AbstractMetaTagProfileTest<Provenance> +{ + @ClassRule + public static final ValidationSupportRule validationRule = new ValidationSupportRule(context, + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-provenance-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); + + private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), + validationRule.getValidationSupport()); + + protected Provenance create() + { + Provenance p = new Provenance(); + p.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/provenance"); + p.getTargetFirstRep().setReference("http://localhost/fhir/Binary/" + UUID.randomUUID().toString()); + p.setRecorded(new Date()); + p.getAgentFirstRep().getWho() + .setReference("http://localhost/fhir/Practitioner/" + UUID.randomUUID().toString()); + + return p; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/QuestionnaireProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/QuestionnaireProfileTest.java index ac91630ca..3bf7d0086 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/QuestionnaireProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/QuestionnaireProfileTest.java @@ -18,16 +18,17 @@ import dev.dsf.fhir.validation.ResourceValidatorImpl; import dev.dsf.fhir.validation.ValidationSupportRule; -public class QuestionnaireProfileTest +public class QuestionnaireProfileTest extends AbstractMetaTagProfileTest<Questionnaire> { private static final Logger logger = LoggerFactory.getLogger(QuestionnaireProfileTest.class); - private static final String VERSION_1_0_0 = "1.0.0"; - private static final String VERSION_1_5_0 = "1.5.0"; - @ClassRule public static final ValidationSupportRule validationRule = new ValidationSupportRule( - List.of("dsf-questionnaire-1.0.0.xml", "dsf-questionnaire-1.5.0.xml"), List.of(), List.of()); + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-questionnaire-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); @@ -35,87 +36,75 @@ public class QuestionnaireProfileTest @Test public void testQuestionnaireValidTypeString() { - testQuestionnaireValidType(VERSION_1_0_0, Questionnaire.QuestionnaireItemType.STRING); - testQuestionnaireValidType(VERSION_1_5_0, Questionnaire.QuestionnaireItemType.STRING); + testQuestionnaireValidType(Questionnaire.QuestionnaireItemType.STRING); } @Test public void testQuestionnaireValidTypeText() { - testQuestionnaireValidType(VERSION_1_0_0, Questionnaire.QuestionnaireItemType.TEXT); - testQuestionnaireValidType(VERSION_1_5_0, Questionnaire.QuestionnaireItemType.TEXT); + testQuestionnaireValidType(Questionnaire.QuestionnaireItemType.TEXT); } @Test public void testQuestionnaireValidTypeInteger() { - testQuestionnaireValidType(VERSION_1_0_0, Questionnaire.QuestionnaireItemType.INTEGER); - testQuestionnaireValidType(VERSION_1_5_0, Questionnaire.QuestionnaireItemType.INTEGER); + testQuestionnaireValidType(Questionnaire.QuestionnaireItemType.INTEGER); } @Test public void testQuestionnaireValidTypeDecimal() { - testQuestionnaireValidType(VERSION_1_0_0, Questionnaire.QuestionnaireItemType.DECIMAL); - testQuestionnaireValidType(VERSION_1_5_0, Questionnaire.QuestionnaireItemType.DECIMAL); + testQuestionnaireValidType(Questionnaire.QuestionnaireItemType.DECIMAL); } @Test public void testQuestionnaireValidTypeBoolean() { - testQuestionnaireValidType(VERSION_1_0_0, Questionnaire.QuestionnaireItemType.BOOLEAN); - testQuestionnaireValidType(VERSION_1_5_0, Questionnaire.QuestionnaireItemType.BOOLEAN); + testQuestionnaireValidType(Questionnaire.QuestionnaireItemType.BOOLEAN); } @Test public void testQuestionnaireValidTypeDate() { - testQuestionnaireValidType(VERSION_1_0_0, Questionnaire.QuestionnaireItemType.DATE); - testQuestionnaireValidType(VERSION_1_5_0, Questionnaire.QuestionnaireItemType.DATE); + testQuestionnaireValidType(Questionnaire.QuestionnaireItemType.DATE); } @Test public void testQuestionnaireValidTypeTime() { - testQuestionnaireValidType(VERSION_1_0_0, Questionnaire.QuestionnaireItemType.TIME); - testQuestionnaireValidType(VERSION_1_5_0, Questionnaire.QuestionnaireItemType.TIME); + testQuestionnaireValidType(Questionnaire.QuestionnaireItemType.TIME); } @Test public void testQuestionnaireValidTypeDateTime() { - testQuestionnaireValidType(VERSION_1_0_0, Questionnaire.QuestionnaireItemType.DATETIME); - testQuestionnaireValidType(VERSION_1_5_0, Questionnaire.QuestionnaireItemType.DATETIME); + testQuestionnaireValidType(Questionnaire.QuestionnaireItemType.DATETIME); } @Test public void testQuestionnaireValidTypeUrl() { - testQuestionnaireValidType(VERSION_1_0_0, Questionnaire.QuestionnaireItemType.URL); - testQuestionnaireValidType(VERSION_1_5_0, Questionnaire.QuestionnaireItemType.URL); + testQuestionnaireValidType(Questionnaire.QuestionnaireItemType.URL); } @Test public void testQuestionnaireValidTypeReference() { - testQuestionnaireValidType(VERSION_1_0_0, Questionnaire.QuestionnaireItemType.REFERENCE); - testQuestionnaireValidType(VERSION_1_5_0, Questionnaire.QuestionnaireItemType.REFERENCE); + testQuestionnaireValidType(Questionnaire.QuestionnaireItemType.REFERENCE); } @Test public void testQuestionnaireValidTypeDisplay() { - testQuestionnaireValidType(VERSION_1_0_0, Questionnaire.QuestionnaireItemType.DISPLAY); - testQuestionnaireValidType(VERSION_1_5_0, Questionnaire.QuestionnaireItemType.DISPLAY); + testQuestionnaireValidType(Questionnaire.QuestionnaireItemType.DISPLAY); } - private void testQuestionnaireValidType(String profileVersion, Questionnaire.QuestionnaireItemType type) + private void testQuestionnaireValidType(Questionnaire.QuestionnaireItemType type) { - Questionnaire res = createQuestionnaire(profileVersion, type); + Questionnaire res = createQuestionnaire(type); ValidationResult result = resourceValidator.validate(res); - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(0, result.getMessages().stream().filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) || ResultSeverityEnum.FATAL.equals(m.getSeverity())).count()); @@ -124,53 +113,46 @@ private void testQuestionnaireValidType(String profileVersion, Questionnaire.Que @Test public void testQuestionnaireInvalidTypeGroup() { - testQuestionnaireInvalidType(VERSION_1_0_0, Questionnaire.QuestionnaireItemType.GROUP); - testQuestionnaireInvalidType(VERSION_1_5_0, Questionnaire.QuestionnaireItemType.GROUP); + testQuestionnaireInvalidType(Questionnaire.QuestionnaireItemType.GROUP); } @Test public void testQuestionnaireInvalidTypeQuestion() { - testQuestionnaireInvalidType(VERSION_1_0_0, Questionnaire.QuestionnaireItemType.QUESTION); - testQuestionnaireInvalidType(VERSION_1_5_0, Questionnaire.QuestionnaireItemType.QUESTION); + testQuestionnaireInvalidType(Questionnaire.QuestionnaireItemType.QUESTION); } @Test public void testQuestionnaireInvalidTypeChoice() { - testQuestionnaireInvalidType(VERSION_1_0_0, Questionnaire.QuestionnaireItemType.CHOICE); - testQuestionnaireInvalidType(VERSION_1_5_0, Questionnaire.QuestionnaireItemType.CHOICE); + testQuestionnaireInvalidType(Questionnaire.QuestionnaireItemType.CHOICE); } @Test public void testQuestionnaireInvalidTypeOpenChoice() { - testQuestionnaireInvalidType(VERSION_1_0_0, Questionnaire.QuestionnaireItemType.OPENCHOICE); - testQuestionnaireInvalidType(VERSION_1_5_0, Questionnaire.QuestionnaireItemType.OPENCHOICE); + testQuestionnaireInvalidType(Questionnaire.QuestionnaireItemType.OPENCHOICE); } @Test public void testQuestionnaireInvalidTypeAttachment() { - testQuestionnaireInvalidType(VERSION_1_0_0, Questionnaire.QuestionnaireItemType.ATTACHMENT); - testQuestionnaireInvalidType(VERSION_1_5_0, Questionnaire.QuestionnaireItemType.ATTACHMENT); + testQuestionnaireInvalidType(Questionnaire.QuestionnaireItemType.ATTACHMENT); } @Test public void testQuestionnaireInvalidTypeQuantity() { - testQuestionnaireInvalidType(VERSION_1_0_0, Questionnaire.QuestionnaireItemType.QUANTITY); - testQuestionnaireInvalidType(VERSION_1_5_0, Questionnaire.QuestionnaireItemType.QUANTITY); + testQuestionnaireInvalidType(Questionnaire.QuestionnaireItemType.QUANTITY); } - private void testQuestionnaireInvalidType(String profileVersion, Questionnaire.QuestionnaireItemType type) + private void testQuestionnaireInvalidType(Questionnaire.QuestionnaireItemType type) { - Questionnaire res = createQuestionnaire(profileVersion, Questionnaire.QuestionnaireItemType.STRING); - res.addItem().setLinkId("invalid-type").setType(type).setText("Invalid type"); + Questionnaire q = createQuestionnaire(Questionnaire.QuestionnaireItemType.STRING); + q.addItem().setLinkId("invalid-type").setType(type).setText("Invalid type"); - ValidationResult result = resourceValidator.validate(res); - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + ValidationResult result = resourceValidator.validate(q); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(1, result.getMessages().stream() @@ -180,23 +162,38 @@ private void testQuestionnaireInvalidType(String profileVersion, Questionnaire.Q .filter(m -> m.getMessage().startsWith("Constraint failed: type-code")).count()); } - private Questionnaire createQuestionnaire(String profileVersion, Questionnaire.QuestionnaireItemType type) + private Questionnaire createQuestionnaire(Questionnaire.QuestionnaireItemType type) { - Questionnaire res = new Questionnaire(); - res.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/questionnaire|" + profileVersion); - res.setUrl("http://dsf.dev/fhir/Questionnaire/hello-world"); - res.setVersion("0.1.0"); - res.setDate(new Date()); - res.setStatus(Enumerations.PublicationStatus.ACTIVE); - res.addItem().setLinkId("business-key").setType(Questionnaire.QuestionnaireItemType.STRING) - .setText("The business-key of the process execution").setRequired(true); - res.addItem().setLinkId("user-task-id").setType(Questionnaire.QuestionnaireItemType.STRING) - .setText("The user-task-id of the process execution").setRequired(true); + Questionnaire q = create(); + q.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ALL); - var item = res.addItem().setLinkId("valid-type").setType(type).setText("valid type"); + var item = q.addItem().setLinkId("valid-type").setType(type).setText("valid type"); if (!Questionnaire.QuestionnaireItemType.DISPLAY.equals(type)) item.setRequired(true); - return res; + return q; + } + + @Override + protected Questionnaire create() + { + Questionnaire q = new Questionnaire(); + q.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/questionnaire"); + q.setUrl("http://dsf.dev/fhir/Questionnaire/hello-world"); + q.setVersion("0.1.0"); + q.setDate(new Date()); + q.setStatus(Enumerations.PublicationStatus.ACTIVE); + q.addItem().setLinkId("business-key").setType(Questionnaire.QuestionnaireItemType.STRING) + .setText("The business-key of the process execution").setRequired(true); + q.addItem().setLinkId("user-task-id").setType(Questionnaire.QuestionnaireItemType.STRING) + .setText("The user-task-id of the process execution").setRequired(true); + + return q; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); } } \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/QuestionnaireResponseProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/QuestionnaireResponseProfileTest.java index 67257f929..da0ae1eac 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/QuestionnaireResponseProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/QuestionnaireResponseProfileTest.java @@ -39,7 +39,7 @@ public class QuestionnaireResponseProfileTest @ClassRule public static final ValidationSupportRule validationRule = new ValidationSupportRule( List.of("dsf-questionnaire-response-2.0.0.xml", "dsf-extension-questionnaire-authorization-2.0.0.xml"), - List.of("dsf-practitioner-role-1.0.0.xml"), List.of("dsf-practitioner-role-1.0.0.xml")); + List.of("dsf-practitioner-role-2.0.0.xml"), List.of("dsf-practitioner-role-2.0.0.xml")); private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); @@ -159,8 +159,7 @@ private void testQuestionnaireResponse(QuestionnaireResponse r) private void testQuestionnaireResponse(QuestionnaireResponse r, int numberOfExpectedErrors) { ValidationResult result = resourceValidator.validate(r); - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(numberOfExpectedErrors, result.getMessages().stream().filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) @@ -175,9 +174,7 @@ private void testQuestionnaireResponse(QuestionnaireResponse r, int numberOfExpe // Coding().setSystem("http://system.foo").setCode("code")); // // ValidationResult result = resourceValidator.validate(res); - // result.getMessages().stream() - // .map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" + m.getLocationCol() + " - " - // + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + // ValidationSupportRule.logValidationMessages(logger::debug, result); // // assertEquals(1, result.getMessages().stream() // .filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) || ResultSeverityEnum.FATAL.equals( @@ -215,8 +212,7 @@ public void testQuestionnaireResponseInvalidCompletedNoAuthorAndNoAuthored() r.setStatus(QuestionnaireResponse.QuestionnaireResponseStatus.COMPLETED); ValidationResult result = resourceValidator.validate(r); - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(2, result.getMessages().stream() .filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) @@ -234,8 +230,7 @@ public void testQuestionnaireResponseInvalidAmendedNoAuthorAndNoAuthored() r.setStatus(QuestionnaireResponse.QuestionnaireResponseStatus.AMENDED); ValidationResult result = resourceValidator.validate(r); - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(2, result.getMessages().stream() .filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) @@ -255,8 +250,7 @@ public void testQuestionnaireResponseInvalidCompletedWithAuthorReferenceAndAutho r.setAuthor(new Reference("Organization/" + UUID.randomUUID().toString())); ValidationResult result = resourceValidator.validate(r); - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(1, result.getMessages().stream() .filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/StructureDefinitionProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/StructureDefinitionProfileTest.java new file mode 100644 index 000000000..49f73fe49 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/StructureDefinitionProfileTest.java @@ -0,0 +1,375 @@ +package dev.dsf.fhir.profiles; + +import java.util.Date; +import java.util.List; + +import org.hl7.fhir.r4.model.ElementDefinition; +import org.hl7.fhir.r4.model.Enumerations.PublicationStatus; +import org.hl7.fhir.r4.model.StructureDefinition; +import org.hl7.fhir.r4.model.StructureDefinition.StructureDefinitionKind; +import org.hl7.fhir.r4.model.StructureDefinition.TypeDerivationRule; +import org.junit.ClassRule; +import org.junit.Test; + +import dev.dsf.fhir.validation.ResourceValidator; +import dev.dsf.fhir.validation.ResourceValidatorImpl; +import dev.dsf.fhir.validation.ValidationSupportRule; + +public class StructureDefinitionProfileTest extends AbstractMetaDataResourceProfileTest<StructureDefinition> +{ + @ClassRule + public static final ValidationSupportRule validationRule = new ValidationSupportRule( + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-extension-process-authorization-2.0.0.xml", + "dsf-extension-process-authorization-practitioner-2.0.0.xml", + "dsf-extension-process-authorization-organization-2.0.0.xml", + "dsf-extension-process-authorization-organization-practitioner-2.0.0.xml", + "dsf-extension-process-authorization-parent-organization-role-2.0.0.xml", + "dsf-extension-process-authorization-parent-organization-role-practitioner-2.0.0.xml", + "dsf-coding-process-authorization-local-all-2.0.0.xml", + "dsf-coding-process-authorization-local-all-practitioner-2.0.0.xml", + "dsf-coding-process-authorization-local-organization-2.0.0.xml", + "dsf-coding-process-authorization-local-organization-practitioner-2.0.0.xml", + "dsf-coding-process-authorization-local-parent-organization-role-2.0.0.xml", + "dsf-coding-process-authorization-local-parent-organization-role-practitioner-2.0.0.xml", + "dsf-coding-process-authorization-remote-all-2.0.0.xml", + "dsf-coding-process-authorization-remote-organization-2.0.0.xml", + "dsf-coding-process-authorization-remote-parent-organization-role-2.0.0.xml", + "dsf-structure-definition-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml", + "dsf-practitioner-role-2.0.0.xml", "dsf-process-authorization-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml", + "dsf-practitioner-role-2.0.0.xml", "dsf-process-authorization-recipient-2.0.0.xml", + "dsf-process-authorization-requester-2.0.0.xml")); + + private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), + validationRule.getValidationSupport()); + + protected StructureDefinition create() + { + StructureDefinition d = new StructureDefinition(); + d.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/structure-definition"); + d.setUrl("http://test.com/fhir/test"); + d.setVersion("2.0.0"); + d.setName("Test"); + d.setDate(new Date()); + d.setStatus(PublicationStatus.ACTIVE); + d.setBaseDefinition("http://hl7.org/fhir/StructureDefinition/Patient"); + d.setDerivation(TypeDerivationRule.CONSTRAINT); + d.setKind(StructureDefinitionKind.RESOURCE); + d.setAbstract(false); + d.setType("Patient"); + + ElementDefinition e = d.getDifferential().addElement(); + e.setId("Patient.active"); + e.setPath("Patient.active"); + e.setMin(1); + + return d; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } + + @Test + public void runMetaDataResourceTests() throws Exception + { + doRunMetaDataResourceTests(resourceValidator); + } + + @Test + public void testActivityDefinition() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-activity-definition-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testBinary() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-binary-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testBundle() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-bundle-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testCodeSystem() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-code-system-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testCodingProcessAuthorizationLocalAll() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, + "dsf-coding-process-authorization-local-all-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testCodingProcessAuthorizationLocalAllPractitioner() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, + "dsf-coding-process-authorization-local-all-practitioner-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testCodingProcessAuthorizationLocalOrganization() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, + "dsf-coding-process-authorization-local-organization-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testCodingProcessAuthorizationLocalOrganizationPractitioner() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, + "dsf-coding-process-authorization-local-organization-practitioner-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testCodingProcessAuthorizationLocalParentOrganizationRole() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, + "dsf-coding-process-authorization-local-parent-organization-role-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testCodingProcessAuthorizationLocalParentOrganizationRolePractitioner() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, + "dsf-coding-process-authorization-local-parent-organization-role-practitioner-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testCodingProcessAuthorizationRemoteAll() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, + "dsf-coding-process-authorization-remote-all-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testCodingProcessAuthorizationRemoteOrganization() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, + "dsf-coding-process-authorization-remote-organization-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testCodingProcessAuthorizationRemoteParentOrganizationRole() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, + "dsf-coding-process-authorization-remote-parent-organization-role-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testGroup() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-group-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testHealthcareService() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-healthcare-service-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testLibrary() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-library-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testLocation() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-location-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testMeasure() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-measure-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testMeasureReport() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-measure-report-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testMeta() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-meta-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testNamingSystem() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-naming-system-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testOrganization() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-organization-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testOrganizationAffiliation() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, + "dsf-organization-affiliation-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testOrganizationParent() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-organization-parent-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testPatient() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-patient-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testPractitioner() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-practitioner-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testPractitionerRole() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-practitioner-role-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testProvenance() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-provenance-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testQuestionnaire() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-questionnaire-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testQuestionnaireResponse() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, + "dsf-questionnaire-response-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testResearchStudy() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-research-study-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testStructureDefinition() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-structure-definition-2.0.0.xml"); + d.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/structure-definition"); + + testValid(resourceValidator, d); + } + + @Test + public void testSubscription() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-subscription-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testTask() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-task-2.0.0.xml"); + + testValid(resourceValidator, d); + } + + @Test + public void testValueSet() throws Exception + { + StructureDefinition d = readValidationResource(StructureDefinition.class, "dsf-value-set-2.0.0.xml"); + + testValid(resourceValidator, d); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/SubscriptionProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/SubscriptionProfileTest.java new file mode 100644 index 000000000..c4c856c24 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/SubscriptionProfileTest.java @@ -0,0 +1,101 @@ +package dev.dsf.fhir.profiles; + +import java.util.List; + +import org.hl7.fhir.r4.model.Subscription; +import org.hl7.fhir.r4.model.Subscription.SubscriptionChannelType; +import org.hl7.fhir.r4.model.Subscription.SubscriptionStatus; +import org.junit.ClassRule; +import org.junit.Test; + +import dev.dsf.fhir.validation.ResourceValidator; +import dev.dsf.fhir.validation.ResourceValidatorImpl; +import dev.dsf.fhir.validation.ValidationSupportRule; + +public class SubscriptionProfileTest extends AbstractMetaTagProfileTest<Subscription> +{ + @ClassRule + public static final ValidationSupportRule validationRule = new ValidationSupportRule( + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-subscription-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); + + private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), + validationRule.getValidationSupport()); + + protected Subscription create() + { + var s = new Subscription(); + s.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/subscription"); + s.setStatus(SubscriptionStatus.ACTIVE); + s.setReason("Reasons"); + s.setCriteria("Patient"); + s.getChannel().setType(SubscriptionChannelType.WEBSOCKET); + + return s; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } + + @Test + public void testValidPayloadFhirJson() throws Exception + { + Subscription s = create(); + s.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ALL); + s.getChannel().setPayload("application/fhir+json"); + + testValid(resourceValidator, s); + } + + @Test + public void testValidPayloadFhirXml() throws Exception + { + Subscription s = create(); + s.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ALL); + s.getChannel().setPayload("application/fhir+xml"); + + testValid(resourceValidator, s); + } + + @Test + public void testNotValidTypeNotWebsocket() throws Exception + { + Subscription s = create(); + s.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ALL); + s.getChannel().setType(SubscriptionChannelType.EMAIL); + + testNotValid(resourceValidator, s, 1); + } + + @Test + public void testNotValidPayloadNotFhirJsonOrFhirXml() throws Exception + { + Subscription s = create(); + s.getMeta().addTag().setSystem(CS_READ_ACCESS_TAG).setCode(TAG_ALL); + s.getChannel().setPayload("application/pdf"); + + testNotValid(resourceValidator, s, 1); + } + + @Test + public void testDsfBpmnQuestionnaireResponseSubscription() throws Exception + { + Subscription s = readValidationResource(Subscription.class, "dsf-bpmn-questionnaire-response-subscription.xml"); + + testValid(resourceValidator, s); + } + + @Test + public void testDsfBpmnTaskSubscription() throws Exception + { + Subscription s = readValidationResource(Subscription.class, "dsf-bpmn-task-subscription.xml"); + + testValid(resourceValidator, s); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/TaskProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/TaskProfileTest.java index b43daa79d..a959735c3 100755 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/TaskProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/TaskProfileTest.java @@ -31,9 +31,9 @@ public class TaskProfileTest @ClassRule public static final ValidationSupportRule validationRule = new ValidationSupportRule( - List.of("dsf-task-base-2.0.0.xml", "dsf-task-test.xml", "dsf-task-test-v2.xml"), - List.of("dsf-bpmn-message-1.0.0.xml", "dsf-test.xml", "dsf-test-v2.xml"), - List.of("dsf-bpmn-message-1.0.0.xml", "dsf-test.xml", "dsf-test-v2.xml")); + List.of("dsf-task-2.0.0.xml", "dsf-task-test.xml", "dsf-task-test-v2.xml"), + List.of("dsf-bpmn-message-2.0.0.xml", "dsf-test.xml", "dsf-test-v2.xml"), + List.of("dsf-bpmn-message-2.0.0.xml", "dsf-test.xml", "dsf-test-v2.xml")); private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); @@ -131,7 +131,7 @@ private Task createTaskForPractitionerRequester(Task.TaskStatus status) private Task createTask(Task.TaskStatus status) { Task task = new Task(); - task.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/task-base"); + task.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/task"); task.setInstantiatesCanonical("http://dsf.dev/bpe/Process/foo|0.1.0"); task.setStatus(status); task.setIntent(Task.TaskIntent.ORDER); @@ -168,8 +168,7 @@ private void testTaskInvalidMissingBusinessKey(Task task) private ValidationResult validate(Task task) { ValidationResult result = resourceValidator.validate(task); - result.getMessages().stream().map(m -> m.getLocationString() + " " + m.getLocationLine() + ":" - + m.getLocationCol() + " - " + m.getSeverity() + ": " + m.getMessage()).forEach(logger::info); + ValidationSupportRule.logValidationMessages(logger::debug, result); return result; } @@ -194,7 +193,7 @@ public void testTaskValidationWithAdditionalInputNotInDsfBaseTaskVersion1_4() .setSystem("http://dsf.dev/fhir/CodeSystem/test|1.4").setCode("string-example"); ValidationResult result = resourceValidator.validate(task); - ValidationSupportRule.logValidationMessages(logger, result); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(0, result.getMessages().stream().filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) || ResultSeverityEnum.FATAL.equals(m.getSeverity())).count()); @@ -220,7 +219,7 @@ public void testTaskValidationWithAdditionalInputNotInDsfBaseTaskVersion2_0() .setSystem("http://dsf.dev/fhir/CodeSystem/test|2.0").setCode("integer-example"); ValidationResult result = resourceValidator.validate(task); - ValidationSupportRule.logValidationMessages(logger, result); + ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(0, result.getMessages().stream().filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) || ResultSeverityEnum.FATAL.equals(m.getSeverity())).count()); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ValueSetProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ValueSetProfileTest.java new file mode 100644 index 000000000..f5973134b --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ValueSetProfileTest.java @@ -0,0 +1,109 @@ +package dev.dsf.fhir.profiles; + +import java.util.Date; +import java.util.List; + +import org.hl7.fhir.r4.model.Enumerations.PublicationStatus; +import org.hl7.fhir.r4.model.ValueSet; +import org.junit.ClassRule; +import org.junit.Test; + +import dev.dsf.fhir.validation.ResourceValidator; +import dev.dsf.fhir.validation.ResourceValidatorImpl; +import dev.dsf.fhir.validation.ValidationSupportRule; + +public class ValueSetProfileTest extends AbstractMetaDataResourceProfileTest<ValueSet> +{ + @ClassRule + public static final ValidationSupportRule validationRule = new ValidationSupportRule( + List.of("dsf-extension-read-access-organization-2.0.0.xml", + "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", + "dsf-value-set-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); + + private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), + validationRule.getValidationSupport()); + + protected ValueSet create() + { + ValueSet s = new ValueSet(); + s.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/value-set"); + s.setUrl("http://test.com/fhir/test"); + s.setVersion("2.0.0"); + s.setName("Test"); + s.setDate(new Date()); + s.setStatus(PublicationStatus.ACTIVE); + s.getCompose().addInclude().setSystem(CS_READ_ACCESS_TAG).setVersion("2.0.0"); + + return s; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } + + @Test + public void runMetaDataResourceTests() throws Exception + { + doRunMetaDataResourceTests(resourceValidator); + } + + @Test + public void testBpmnMessage() throws Exception + { + ValueSet s = readValidationResource(ValueSet.class, "dsf-bpmn-message-2.0.0.xml"); + + testValid(resourceValidator, s); + } + + @Test + public void testOrganizationRole() throws Exception + { + ValueSet s = readValidationResource(ValueSet.class, "dsf-organization-role-2.0.0.xml"); + + testValid(resourceValidator, s); + } + + @Test + public void testPractitionerRole() throws Exception + { + ValueSet s = readValidationResource(ValueSet.class, "dsf-practitioner-role-2.0.0.xml"); + + testValid(resourceValidator, s); + } + + @Test + public void testProcessAuthorizationRecipient() throws Exception + { + ValueSet s = readValidationResource(ValueSet.class, "dsf-process-authorization-recipient-2.0.0.xml"); + + testValid(resourceValidator, s); + } + + @Test + public void testProcessAuthorizationRequester() throws Exception + { + ValueSet s = readValidationResource(ValueSet.class, "dsf-process-authorization-requester-2.0.0.xml"); + + testValid(resourceValidator, s); + } + + @Test + public void testReadAccessTag() throws Exception + { + ValueSet s = readValidationResource(ValueSet.class, "dsf-read-access-tag-2.0.0.xml"); + + testValid(resourceValidator, s); + } + + @Test + public void testValuesetMimetypes() throws Exception + { + ValueSet s = readValidationResource(ValueSet.class, "valueset-mimetypes.xml"); + + testValid(resourceValidator, s); + } +} diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/validation/ValueSetExpanderTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/validation/ValueSetExpanderTest.java index df3b91fb3..6d0820c5e 100755 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/validation/ValueSetExpanderTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/validation/ValueSetExpanderTest.java @@ -50,7 +50,7 @@ public Locale getLocale() private List<CodeSystem> readCodeSystems() { - return Stream.of("dsf-read-access-tag-1.0.0.xml", "dsf-bpmn-message-1.0.0.xml") + return Stream.of("dsf-read-access-tag-2.0.0.xml", "dsf-bpmn-message-2.0.0.xml") .map(file -> "/fhir/CodeSystem/" + file).map(this::readCodeSystem).collect(Collectors.toList()); } @@ -70,7 +70,7 @@ private CodeSystem readCodeSystem(String file) public void testExpandFeasibility() throws Exception { ValueSetExpansionOutcome out = valueSetExpander - .expand(readValueSet("/fhir/ValueSet/dsf-read-access-tag-1.0.0.xml")); + .expand(readValueSet("/fhir/ValueSet/dsf-read-access-tag-2.0.0.xml")); assertNotNull(out); assertNull(out.getError()); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/CodeSystem/dsf-test-v2.xml b/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/CodeSystem/dsf-test-v2.xml index b5b63d971..0566294b3 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/CodeSystem/dsf-test-v2.xml +++ b/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/CodeSystem/dsf-test-v2.xml @@ -1,5 +1,7 @@ -<CodeSystem xmlns="http://hl7.org/fhir"> +<CodeSystem xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/code-system" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/CodeSystem/dsf-test.xml b/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/CodeSystem/dsf-test.xml index 6b498fe64..7faa470e8 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/CodeSystem/dsf-test.xml +++ b/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/CodeSystem/dsf-test.xml @@ -1,5 +1,7 @@ -<CodeSystem xmlns="http://hl7.org/fhir"> +<CodeSystem xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/code-system" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/StructureDefinition/dsf-task-test-v2.xml b/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/StructureDefinition/dsf-task-test-v2.xml index bd2c4084f..bad2008e4 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/StructureDefinition/dsf-task-test-v2.xml +++ b/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/StructureDefinition/dsf-task-test-v2.xml @@ -1,86 +1,88 @@ -<StructureDefinition xmlns="http://hl7.org/fhir"> - <meta> - <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> - <code value="ALL" /> - </tag> - </meta> - <url value="http://dsf.dev/fhir/StructureDefinition/task-test" /> - <version value="2.0" /> - <name value="testProcess" /> - <status value="active" /> - <experimental value="false" /> - <date value="2025-02-04" /> - <fhirVersion value="4.0.1" /> - <kind value="resource" /> - <abstract value="false" /> - <type value="Task" /> - <baseDefinition value="http://dsf.dev/fhir/StructureDefinition/task-base" /> - <derivation value="constraint" /> - <differential> - <element id="Task.instantiatesUri"> - <path value="Task.instantiatesUri" /> - <fixedUri value="http://dsf.dev/bpe/Process/test/2.0" /> - </element> - <element id="Task.input"> - <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name"> - <valueString value="Parameter" /> - </extension> - <path value="Task.input" /> - </element> - <element id="Task.input:message-name"> - <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name"> - <valueString value="Parameter" /> - </extension> - <path value="Task.input" /> - <sliceName value="message-name" /> - </element> - <element id="Task.input:message-name.value[x]"> - <path value="Task.input.value[x]" /> - <fixedString value="test_v2" /> - </element> - <element id="Task.input:correlation-key"> - <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name"> - <valueString value="Parameter" /> - </extension> - <path value="Task.input" /> - <sliceName value="correlation-key" /> - <max value="0" /> - </element> - <element id="Task.input:integer-example"> - <path value="Task.input" /> - <sliceName value="integer-example" /> - <min value="1" /> - <max value="1" /> - </element> - <element id="Task.input:integer-example.type"> - <path value="Task.input.type" /> - <binding> - <strength value="required" /> - <valueSet value="http://dsf.dev/fhir/ValueSet/test|2.0" /> - </binding> - </element> - <element id="Task.input:string-example.type.coding"> - <path value="Task.input.type.coding" /> - <min value="1" /> - <max value="1" /> - </element> - <element id="Task.input:string-example.system"> - <path value="Task.input.type.coding.system" /> - <min value="1" /> - <fixedUri value="http://dsf.dev/fhir/CodeSystem/test|2.0" /> - </element> - <element id="Task.input:string-example.type.coding.code"> - <path value="Task.input.type.coding.code" /> - <min value="1" /> - <fixedCode value="integer-example" /> - </element> - <element id="Task.input:string-example.value[x]"> - <path value="Task.input.value[x]" /> - <type> - <code value="integer" /> - </type> - <min value="1" /> - </element> - </differential> +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/task-test" /> + <version value="2.0" /> + <name value="testProcess" /> + <status value="active" /> + <experimental value="false" /> + <date value="2025-02-04" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="Task" /> + <baseDefinition value="http://dsf.dev/fhir/StructureDefinition/task" /> + <derivation value="constraint" /> + <differential> + <element id="Task.instantiatesUri"> + <path value="Task.instantiatesUri" /> + <fixedUri value="http://dsf.dev/bpe/Process/test/2.0" /> + </element> + <element id="Task.input"> + <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name"> + <valueString value="Parameter" /> + </extension> + <path value="Task.input" /> + </element> + <element id="Task.input:message-name"> + <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name"> + <valueString value="Parameter" /> + </extension> + <path value="Task.input" /> + <sliceName value="message-name" /> + </element> + <element id="Task.input:message-name.value[x]"> + <path value="Task.input.value[x]" /> + <fixedString value="test_v2" /> + </element> + <element id="Task.input:correlation-key"> + <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name"> + <valueString value="Parameter" /> + </extension> + <path value="Task.input" /> + <sliceName value="correlation-key" /> + <max value="0" /> + </element> + <element id="Task.input:integer-example"> + <path value="Task.input" /> + <sliceName value="integer-example" /> + <min value="1" /> + <max value="1" /> + </element> + <element id="Task.input:integer-example.type"> + <path value="Task.input.type" /> + <binding> + <strength value="required" /> + <valueSet value="http://dsf.dev/fhir/ValueSet/test|2.0" /> + </binding> + </element> + <element id="Task.input:string-example.type.coding"> + <path value="Task.input.type.coding" /> + <min value="1" /> + <max value="1" /> + </element> + <element id="Task.input:string-example.system"> + <path value="Task.input.type.coding.system" /> + <min value="1" /> + <fixedUri value="http://dsf.dev/fhir/CodeSystem/test|2.0" /> + </element> + <element id="Task.input:string-example.type.coding.code"> + <path value="Task.input.type.coding.code" /> + <min value="1" /> + <fixedCode value="integer-example" /> + </element> + <element id="Task.input:string-example.value[x]"> + <path value="Task.input.value[x]" /> + <min value="1" /> + <type> + <code value="integer" /> + </type> + </element> + </differential> </StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/StructureDefinition/dsf-task-test.xml b/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/StructureDefinition/dsf-task-test.xml index b9d272efb..3c7f99f56 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/StructureDefinition/dsf-task-test.xml +++ b/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/StructureDefinition/dsf-task-test.xml @@ -1,86 +1,88 @@ -<StructureDefinition xmlns="http://hl7.org/fhir"> - <meta> - <tag> - <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> - <code value="ALL" /> - </tag> - </meta> - <url value="http://dsf.dev/fhir/StructureDefinition/task-test" /> - <version value="1.4" /> - <name value="testProcess" /> - <status value="active" /> - <experimental value="false" /> - <date value="2023-12-03" /> - <fhirVersion value="4.0.1" /> - <kind value="resource" /> - <abstract value="false" /> - <type value="Task" /> - <baseDefinition value="http://dsf.dev/fhir/StructureDefinition/task-base" /> - <derivation value="constraint" /> - <differential> - <element id="Task.instantiatesUri"> - <path value="Task.instantiatesUri" /> - <fixedUri value="http://dsf.dev/bpe/Process/test/1.4" /> - </element> - <element id="Task.input"> - <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name"> - <valueString value="Parameter" /> - </extension> - <path value="Task.input" /> - </element> - <element id="Task.input:message-name"> - <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name"> - <valueString value="Parameter" /> - </extension> - <path value="Task.input" /> - <sliceName value="message-name" /> - </element> - <element id="Task.input:message-name.value[x]"> - <path value="Task.input.value[x]" /> - <fixedString value="test" /> - </element> - <element id="Task.input:correlation-key"> - <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name"> - <valueString value="Parameter" /> - </extension> - <path value="Task.input" /> - <sliceName value="correlation-key" /> - <max value="0" /> - </element> - <element id="Task.input:string-example"> - <path value="Task.input" /> - <sliceName value="string-example" /> - <min value="1" /> - <max value="1" /> - </element> - <element id="Task.input:string-example.type"> - <path value="Task.input.type" /> - <binding> - <strength value="required" /> - <valueSet value="http://dsf.dev/fhir/ValueSet/test|1.4" /> - </binding> - </element> - <element id="Task.input:string-example.type.coding"> - <path value="Task.input.type.coding" /> - <min value="1" /> - <max value="1" /> - </element> - <element id="Task.input:string-example.system"> - <path value="Task.input.type.coding.system" /> - <min value="1" /> - <fixedUri value="http://dsf.dev/fhir/CodeSystem/test|1.4" /> - </element> - <element id="Task.input:string-example.type.coding.code"> - <path value="Task.input.type.coding.code" /> - <min value="1" /> - <fixedCode value="string-example" /> - </element> - <element id="Task.input:string-example.value[x]"> - <path value="Task.input.value[x]" /> - <type> - <code value="string" /> - </type> - <min value="1" /> - </element> - </differential> +<StructureDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> + <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> + <tag> + <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> + <code value="ALL" /> + </tag> + </meta> + <url value="http://dsf.dev/fhir/StructureDefinition/task-test" /> + <version value="1.4" /> + <name value="testProcess" /> + <status value="active" /> + <experimental value="false" /> + <date value="2023-12-03" /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="Task" /> + <baseDefinition value="http://dsf.dev/fhir/StructureDefinition/task" /> + <derivation value="constraint" /> + <differential> + <element id="Task.instantiatesUri"> + <path value="Task.instantiatesUri" /> + <fixedUri value="http://dsf.dev/bpe/Process/test/1.4" /> + </element> + <element id="Task.input"> + <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name"> + <valueString value="Parameter" /> + </extension> + <path value="Task.input" /> + </element> + <element id="Task.input:message-name"> + <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name"> + <valueString value="Parameter" /> + </extension> + <path value="Task.input" /> + <sliceName value="message-name" /> + </element> + <element id="Task.input:message-name.value[x]"> + <path value="Task.input.value[x]" /> + <fixedString value="test" /> + </element> + <element id="Task.input:correlation-key"> + <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name"> + <valueString value="Parameter" /> + </extension> + <path value="Task.input" /> + <sliceName value="correlation-key" /> + <max value="0" /> + </element> + <element id="Task.input:string-example"> + <path value="Task.input" /> + <sliceName value="string-example" /> + <min value="1" /> + <max value="1" /> + </element> + <element id="Task.input:string-example.type"> + <path value="Task.input.type" /> + <binding> + <strength value="required" /> + <valueSet value="http://dsf.dev/fhir/ValueSet/test|1.4" /> + </binding> + </element> + <element id="Task.input:string-example.type.coding"> + <path value="Task.input.type.coding" /> + <min value="1" /> + <max value="1" /> + </element> + <element id="Task.input:string-example.system"> + <path value="Task.input.type.coding.system" /> + <min value="1" /> + <fixedUri value="http://dsf.dev/fhir/CodeSystem/test|1.4" /> + </element> + <element id="Task.input:string-example.type.coding.code"> + <path value="Task.input.type.coding.code" /> + <min value="1" /> + <fixedCode value="string-example" /> + </element> + <element id="Task.input:string-example.value[x]"> + <path value="Task.input.value[x]" /> + <min value="1" /> + <type> + <code value="string" /> + </type> + </element> + </differential> </StructureDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/ValueSet/dsf-test-v2.xml b/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/ValueSet/dsf-test-v2.xml index e4562a233..2f65954ce 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/ValueSet/dsf-test-v2.xml +++ b/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/ValueSet/dsf-test-v2.xml @@ -1,5 +1,7 @@ -<ValueSet xmlns="http://hl7.org/fhir"> +<ValueSet xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/value-set" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/ValueSet/dsf-test.xml b/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/ValueSet/dsf-test.xml index 7e0bdf2c7..7eeaef310 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/ValueSet/dsf-test.xml +++ b/dsf-fhir/dsf-fhir-validation/src/test/resources/fhir/ValueSet/dsf-test.xml @@ -1,5 +1,7 @@ -<ValueSet xmlns="http://hl7.org/fhir"> +<ValueSet xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/value-set" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/test/resources/log4j2-maven-surefire-config.xml b/dsf-fhir/dsf-fhir-validation/src/test/resources/log4j2-maven-surefire-config.xml new file mode 100644 index 000000000..c75913177 --- /dev/null +++ b/dsf-fhir/dsf-fhir-validation/src/test/resources/log4j2-maven-surefire-config.xml @@ -0,0 +1,18 @@ +<Configuration status="WARN" monitorInterval="30" verbose="false"> + + <Appenders> + <Console name="CONSOLE" target="SYSTEM_OUT"> + <PatternLayout pattern="%p\t%t | %m%n"/> + </Console> + </Appenders> + + <Loggers> + <Logger name="dev.dsf" level="INFO"/> + <Logger name="org.eclipse.jetty" level="INFO"/> + <Logger name="ca.uhn.fhir.parser.LenientErrorHandler" level="ERROR"/> + + <Root level="WARN"> + <AppenderRef ref="CONSOLE"/> + </Root> + </Loggers> +</Configuration> \ No newline at end of file From 4aeb4ec06a22ffe49abd2ce6d16e94cd9dfe8319 Mon Sep 17 00:00:00 2001 From: Hauke Hund <hauke.hund@hs-heilbronn.de> Date: Wed, 29 Oct 2025 02:53:34 +0100 Subject: [PATCH 03/16] changes to support 2.0.0 profiles --- .../java/dev/dsf/maven/bundle/BundleGenerator.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/dsf-maven/dsf-maven-plugin/src/main/java/dev/dsf/maven/bundle/BundleGenerator.java b/dsf-maven/dsf-maven-plugin/src/main/java/dev/dsf/maven/bundle/BundleGenerator.java index fd0e57d42..69dd3ec27 100755 --- a/dsf-maven/dsf-maven-plugin/src/main/java/dev/dsf/maven/bundle/BundleGenerator.java +++ b/dsf-maven/dsf-maven-plugin/src/main/java/dev/dsf/maven/bundle/BundleGenerator.java @@ -11,7 +11,6 @@ import java.nio.file.Path; import java.nio.file.StandardCopyOption; import java.util.ArrayList; -import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -188,6 +187,10 @@ public Bundle generateBundle() throws IOException try (InputStream in = Files.newInputStream(resourceFile)) { Resource r = newXmlParser().parseResource(resource, in); + + // removing self declared profiles to allow initial data loader to make it past the FHIR validator + r.getMeta().setProfile(null); + String ifNoneExistValue = Files.readString(postFile); BundleEntryComponent entry = bundle.addEntry(); @@ -302,6 +305,8 @@ private Predicate<Entry<EntryAndLabel, Set<String>>> hasSingleCycle( private Set<String> listDependencies(BundleEntryComponent entry) { + // using self declared profiles as dependencies results in dependency cycles, breaking this generator + Resource resource = entry.getResource(); if (resource instanceof CodeSystem || resource instanceof Subscription) @@ -319,7 +324,7 @@ else if (resource instanceof NamingSystem ns) .flatMap(List::stream).map(Extension::getUrl).map(url -> { if ("http://dsf.dev/fhir/StructureDefinition/extension-check-logical-reference".equals(url)) - return url + "|1.0.0"; + return url + "|2.0.0"; else return url; }).distinct().collect(Collectors.toSet()); @@ -373,8 +378,8 @@ private void generateStructureDefinitionSnapshots(Bundle bundle, IValidationSupp SnapshotGenerator generator = new SnapshotGenerator(fhirContext, validationSupport); bundle.getEntry().stream().map(BundleEntryComponent::getResource).filter(r -> r instanceof StructureDefinition) - .map(r -> (StructureDefinition) r).sorted(Comparator.comparing(StructureDefinition::getUrl).reversed()) - .filter(s -> !s.hasSnapshot()).forEach(s -> generator.generateSnapshot(s)); + .map(r -> (StructureDefinition) r).filter(s -> !s.hasSnapshot()) + .forEach(s -> generator.generateSnapshot(s)); } private void expandValueSets(Bundle bundle, ValidationSupportChain validationSupport) From 179e3c026b0376d0e004405558d7556ce2f6e17d Mon Sep 17 00:00:00 2001 From: Hauke Hund <hauke.hund@hs-heilbronn.de> Date: Wed, 29 Oct 2025 02:54:12 +0100 Subject: [PATCH 04/16] removed special case for Questionnaire 1.0.0 profile --- .../src/main/resources/fhir/static/form.js | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/dsf-fhir/dsf-fhir-server/src/main/resources/fhir/static/form.js b/dsf-fhir/dsf-fhir-server/src/main/resources/fhir/static/form.js index a202b3be0..73d023846 100644 --- a/dsf-fhir/dsf-fhir-server/src/main/resources/fhir/static/form.js +++ b/dsf-fhir/dsf-fhir-server/src/main/resources/fhir/static/form.js @@ -667,19 +667,7 @@ function parseStructureDefinition(bundle) { function parseQuestionnaire(bundle) { if (bundle.entry.length > 0 && bundle.entry[0].resource !== null) { const questionnaire = bundle.entry[0].resource - - if (questionnaire.meta !== null && questionnaire.meta.profile !== null && questionnaire.meta.profile.length > 0) { - const profile = questionnaire.meta.profile[0] - const urlVersion = profile.split('|') - - if (urlVersion.length > 1) { - const version = urlVersion[1] - - if (version !== '1.0.0' && questionnaire.item !== undefined) { - questionnaire.item.forEach(modifyQuestionnaireInputRow) - } - } - } + questionnaire.item.forEach(modifyQuestionnaireInputRow) } } From ff36ddb3fba843df59567ca669c15d8fed77d291 Mon Sep 17 00:00:00 2001 From: Hauke Hund <hauke.hund@hs-heilbronn.de> Date: Wed, 29 Oct 2025 04:32:22 +0100 Subject: [PATCH 05/16] data migrations jobs to fix task profiles and questionnaire resources - QuestionnairesMigrationJob removes version prefix from profiles and sets "required" property for items with link-ids "business-key" and "user-task-id" to true else to false if Questionnaire had old 1.0.0 profile - StructureDefinitionTaskProfileMigrationJob modifies baseDefinition (task-base -> task), adds structure-definition profile and generates new StructureDefinition snapshots - both migration jobs emit resource updated events - New methods in QuestionnaireDao and StructureDefinitionDao to simplify migration job implementation --- .../dev/dsf/fhir/dao/QuestionnaireDao.java | 5 + .../dsf/fhir/dao/StructureDefinitionDao.java | 6 + .../AbstractStructureDefinitionDaoJdbc.java | 31 ++++ .../fhir/dao/jdbc/QuestionnaireDaoJdbc.java | 28 ++++ .../migration/QuestionnairesMigrationJob.java | 113 ++++++++++++++ ...tureDefinitionTaskProfileMigrationJob.java | 144 ++++++++++++++++++ .../config/InitialDataMigratorConfig.java | 22 ++- 7 files changed, 345 insertions(+), 4 deletions(-) create mode 100644 dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/migration/QuestionnairesMigrationJob.java create mode 100644 dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/migration/StructureDefinitionTaskProfileMigrationJob.java diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/QuestionnaireDao.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/QuestionnaireDao.java index 9345eb440..1a7e9b304 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/QuestionnaireDao.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/QuestionnaireDao.java @@ -1,7 +1,12 @@ package dev.dsf.fhir.dao; +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + import org.hl7.fhir.r4.model.Questionnaire; public interface QuestionnaireDao extends ResourceDao<Questionnaire>, ReadByUrlDao<Questionnaire> { + List<Questionnaire> readAllByProfileWithTransaction(Connection connection, String profile) throws SQLException; } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/StructureDefinitionDao.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/StructureDefinitionDao.java index 67f3d9559..0d47d2965 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/StructureDefinitionDao.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/StructureDefinitionDao.java @@ -1,7 +1,13 @@ package dev.dsf.fhir.dao; +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + import org.hl7.fhir.r4.model.StructureDefinition; public interface StructureDefinitionDao extends ResourceDao<StructureDefinition>, ReadByUrlDao<StructureDefinition> { + List<StructureDefinition> readAllByBaseDefinitionWithTransaction(Connection connection, String baseDefinition) + throws SQLException; } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/jdbc/AbstractStructureDefinitionDaoJdbc.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/jdbc/AbstractStructureDefinitionDaoJdbc.java index b437eb0b0..fb2c07f9a 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/jdbc/AbstractStructureDefinitionDaoJdbc.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/jdbc/AbstractStructureDefinitionDaoJdbc.java @@ -1,8 +1,12 @@ package dev.dsf.fhir.dao.jdbc; import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.Optional; import java.util.function.Function; @@ -40,6 +44,7 @@ private static <R extends Resource> SearchQueryParameterFactory<R> factory(Strin } private final ReadByUrlDaoJdbc<StructureDefinition> readByUrl; + private final String readByBaseDefinition; protected AbstractStructureDefinitionDaoJdbc(DataSource dataSource, DataSource permanentDeleteDataSource, FhirContext fhirContext, String resourceTable, String resourceColumn, String resourceIdColumn, @@ -61,6 +66,9 @@ protected AbstractStructureDefinitionDaoJdbc(DataSource dataSource, DataSource p List.of()); readByUrl = new ReadByUrlDaoJdbc<>(this::getDataSource, this::getResource, resourceTable, resourceColumn); + + readByBaseDefinition = "SELECT " + resourceColumn + " FROM current_" + resourceTable + " WHERE " + + resourceColumn + "->>'baseDefinition' = ?"; } @Override @@ -88,4 +96,27 @@ public Optional<StructureDefinition> readByUrlAndVersionWithTransaction(Connecti { return readByUrl.readByUrlAndVersionWithTransaction(connection, url, version); } + + @Override + public List<StructureDefinition> readAllByBaseDefinitionWithTransaction(Connection connection, + String baseDefinition) throws SQLException + { + Objects.requireNonNull(connection, "connection"); + Objects.requireNonNull(baseDefinition, "baseDefinition"); + + try (PreparedStatement statement = connection.prepareStatement(readByBaseDefinition)) + { + statement.setString(1, baseDefinition); + + try (ResultSet result = statement.executeQuery()) + { + List<StructureDefinition> byBaseDefinition = new ArrayList<>(); + + while (result.next()) + byBaseDefinition.add(getResource(result, 1)); + + return byBaseDefinition; + } + } + } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/jdbc/QuestionnaireDaoJdbc.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/jdbc/QuestionnaireDaoJdbc.java index f22f18945..8a65fb09d 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/jdbc/QuestionnaireDaoJdbc.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/jdbc/QuestionnaireDaoJdbc.java @@ -1,8 +1,12 @@ package dev.dsf.fhir.dao.jdbc; import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.Optional; import javax.sql.DataSource; @@ -75,4 +79,28 @@ public Optional<Questionnaire> readByUrlAndVersionWithTransaction(Connection con { return readByUrl.readByUrlAndVersionWithTransaction(connection, url, version); } + + @Override + public List<Questionnaire> readAllByProfileWithTransaction(Connection connection, String profile) + throws SQLException + { + Objects.requireNonNull(connection, "connection"); + Objects.requireNonNull(profile, "profile"); + + try (PreparedStatement statement = connection.prepareStatement( + "SELECT questionnaire FROM current_questionnaires WHERE questionnaire->'meta'->'profile' ?? ?")) + { + statement.setString(1, profile); + + try (ResultSet result = statement.executeQuery()) + { + List<Questionnaire> byProfile = new ArrayList<>(); + + while (result.next()) + byProfile.add(getResource(result, 1)); + + return byProfile; + } + } + } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/migration/QuestionnairesMigrationJob.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/migration/QuestionnairesMigrationJob.java new file mode 100644 index 000000000..239eaeda3 --- /dev/null +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/migration/QuestionnairesMigrationJob.java @@ -0,0 +1,113 @@ +package dev.dsf.fhir.service.migration; + +import java.sql.Connection; +import java.util.List; +import java.util.Objects; +import java.util.stream.Stream; + +import org.hl7.fhir.r4.model.CanonicalType; +import org.hl7.fhir.r4.model.Questionnaire; +import org.hl7.fhir.r4.model.Questionnaire.QuestionnaireItemComponent; +import org.hl7.fhir.r4.model.Questionnaire.QuestionnaireItemType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.InitializingBean; + +import dev.dsf.fhir.dao.QuestionnaireDao; +import dev.dsf.fhir.event.EventGenerator; +import dev.dsf.fhir.event.EventHandler; + +public class QuestionnairesMigrationJob implements MigrationJob, InitializingBean +{ + private static final Logger logger = LoggerFactory.getLogger(QuestionnairesMigrationJob.class); + + private static final String P_QUESTIONNAIRE = "http://dsf.dev/fhir/StructureDefinition/questionnaire"; + private static final String P_QUESTIONNAIRE_1_5_0 = "http://dsf.dev/fhir/StructureDefinition/questionnaire|1.5.0"; + private static final String P_QUESTIONNAIRE_1_0_0 = "http://dsf.dev/fhir/StructureDefinition/questionnaire|1.0.0"; + + private final QuestionnaireDao dao; + private final EventHandler eventHandler; + private final EventGenerator eventGenerator; + + /** + * @param dao + * not <code>null</code> + * @param eventHandler + * not <code>null</code> + * @param eventGenerator + * not <code>null</code> + */ + public QuestionnairesMigrationJob(QuestionnaireDao dao, EventHandler eventHandler, EventGenerator eventGenerator) + { + this.dao = dao; + this.eventHandler = eventHandler; + this.eventGenerator = eventGenerator; + } + + @Override + public void afterPropertiesSet() throws Exception + { + Objects.requireNonNull(dao, "dao"); + Objects.requireNonNull(eventHandler, "eventHandler"); + Objects.requireNonNull(eventGenerator, "eventGenerator"); + } + + @Override + public void execute() throws Exception + { + try (Connection connection = dao.newReadWriteTransaction()) + { + List<Questionnaire> qs150 = dao.readAllByProfileWithTransaction(connection, P_QUESTIONNAIRE_1_5_0); + for (Questionnaire q : qs150) + { + updateProfile(q, P_QUESTIONNAIRE_1_5_0); + + logger.info("Updating Questionnaire {}|{}", q.getUrl(), q.getVersion()); + Questionnaire updated = dao.update(q); + + eventHandler.handleEvent(eventGenerator.newResourceUpdatedEvent(updated)); + } + + List<Questionnaire> qs100 = dao.readAllByProfileWithTransaction(connection, P_QUESTIONNAIRE_1_0_0); + for (Questionnaire q : qs100) + { + setRequired(q.getItem()); + + updateProfile(q, P_QUESTIONNAIRE_1_0_0); + + logger.info("Updating Questionnaire {}|{}", q.getUrl(), q.getVersion()); + Questionnaire updated = dao.update(q); + + eventHandler.handleEvent(eventGenerator.newResourceUpdatedEvent(updated)); + } + } + } + + private void setRequired(List<QuestionnaireItemComponent> items) + { + items.stream().filter(QuestionnaireItemComponent::hasLinkId).filter(QuestionnaireItemComponent::hasType) + .filter(i -> !QuestionnaireItemType.DISPLAY.equals(i.getType())).forEach(i -> + { + switch (i.getLinkId()) + { + case "business-key", "user-task-id" -> i.setRequired(true); + default -> i.setRequired(false); + } + + if (i.hasItem()) + setRequired(i.getItem()); + }); + } + + private void updateProfile(Questionnaire q, String oldProfile) + { + List<String> oldProfiles = q.getMeta().getProfile().stream().filter(CanonicalType::hasValue) + .map(CanonicalType::getValue).toList(); + + List<CanonicalType> newProfiles = Stream + .concat(oldProfiles.stream().filter(p -> !oldProfile.equals(p)), Stream.of(P_QUESTIONNAIRE)).distinct() + .map(CanonicalType::new).toList(); + + q.getMeta().setProfile(newProfiles); + } +} diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/migration/StructureDefinitionTaskProfileMigrationJob.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/migration/StructureDefinitionTaskProfileMigrationJob.java new file mode 100644 index 000000000..f050144ba --- /dev/null +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/migration/StructureDefinitionTaskProfileMigrationJob.java @@ -0,0 +1,144 @@ +package dev.dsf.fhir.service.migration; + +import java.sql.Connection; +import java.util.List; +import java.util.Objects; +import java.util.stream.Stream; + +import org.hl7.fhir.r4.model.CanonicalType; +import org.hl7.fhir.r4.model.ElementDefinition; +import org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionBindingComponent; +import org.hl7.fhir.r4.model.StructureDefinition; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.InitializingBean; + +import dev.dsf.fhir.dao.StructureDefinitionDao; +import dev.dsf.fhir.event.EventGenerator; +import dev.dsf.fhir.event.EventHandler; +import dev.dsf.fhir.help.ExceptionHandler; +import dev.dsf.fhir.validation.SnapshotGenerator; +import dev.dsf.fhir.validation.SnapshotGenerator.SnapshotWithValidationMessages; + +public class StructureDefinitionTaskProfileMigrationJob implements MigrationJob, InitializingBean +{ + private static final Logger logger = LoggerFactory.getLogger(StructureDefinitionTaskProfileMigrationJob.class); + + private static final String P_STRUCTURE_DEFINITION = "http://dsf.dev/fhir/StructureDefinition/structure-definition"; + + private static final String BD_TASK = "http://dsf.dev/fhir/StructureDefinition/task"; + private static final String BD_TASK_BASE = "http://dsf.dev/fhir/StructureDefinition/task-base"; + + private final StructureDefinitionDao dao; + private final StructureDefinitionDao snapshotDao; + private final SnapshotGenerator snapshotGenerator; + private final ExceptionHandler exceptionHandler; + private final EventHandler eventHandler; + private final EventGenerator eventGenerator; + + /** + * @param dao + * not <code>null</code> + * @param snapshotDao + * not <code>null</code> + * @param snapshotGenerator + * not <code>null</code> + * @param exceptionHandler + * not <code>null</code> + * @param eventHandler + * not <code>null</code> + * @param eventGenerator + * not <code>null</code> + */ + public StructureDefinitionTaskProfileMigrationJob(StructureDefinitionDao dao, StructureDefinitionDao snapshotDao, + SnapshotGenerator snapshotGenerator, ExceptionHandler exceptionHandler, EventHandler eventHandler, + EventGenerator eventGenerator) + { + this.dao = dao; + this.snapshotDao = snapshotDao; + this.snapshotGenerator = snapshotGenerator; + this.exceptionHandler = exceptionHandler; + this.eventHandler = eventHandler; + this.eventGenerator = eventGenerator; + } + + @Override + public void afterPropertiesSet() throws Exception + { + Objects.requireNonNull(dao, "dao"); + Objects.requireNonNull(snapshotDao, "snapshotDao"); + Objects.requireNonNull(snapshotGenerator, "snapshotGenerator"); + Objects.requireNonNull(exceptionHandler, "exceptionHandler"); + Objects.requireNonNull(eventHandler, "eventHandler"); + Objects.requireNonNull(eventGenerator, "eventGenerator"); + } + + @Override + public void execute() throws Exception + { + try (Connection connection = dao.newReadWriteTransaction()) + { + List<StructureDefinition> sds = dao.readAllByBaseDefinitionWithTransaction(connection, BD_TASK_BASE); + + for (StructureDefinition sd : sds) + { + logger.info("Updating StructureDefinition {}|{}", sd.getUrl(), sd.getVersion()); + + sd.setBaseDefinition(BD_TASK); + + removeVersionsFromDsfValueSetBindings(sd); + + List<CanonicalType> oldProfiles = sd.getMeta().getProfile(); + List<CanonicalType> newProfiles = Stream + .concat(Stream.of(P_STRUCTURE_DEFINITION), + oldProfiles.stream().filter(CanonicalType::hasValue).map(CanonicalType::getValue)) + .distinct().map(CanonicalType::new).toList(); + + sd.getMeta().setProfile(newProfiles); + + StructureDefinition updated = dao.update(sd); + + try + { + logger.info("Generating new snapshot for StructureDefinition {}|{}", updated.getUrl(), + updated.getVersion()); + + SnapshotWithValidationMessages s = snapshotGenerator.generateSnapshot(updated); + if (s != null && s.getSnapshot() != null && s.getMessages().isEmpty()) + { + exceptionHandler.catchAndLogSqlAndResourceNotFoundException("StructureDefinition", + () -> snapshotDao.update(s.getSnapshot())); + } + + eventHandler.handleEvent(eventGenerator.newResourceUpdatedEvent(updated)); + } + catch (Exception e) + { + logger.debug("Error while generating snapshot for StructureDefinition with id {}", + updated.getIdElement().getIdPart(), e); + logger.warn("Error while generating snapshot for StructureDefinition with id {}: {} - {}", + updated.getIdElement().getIdPart(), e.getClass().getName(), e.getMessage()); + } + } + } + } + + private void removeVersionsFromDsfValueSetBindings(StructureDefinition sd) + { + sd.getDifferential().getElement().stream().filter(ElementDefinition::hasBinding) + .map(ElementDefinition::getBinding).filter(ElementDefinitionBindingComponent::hasValueSet).forEach(b -> + { + String newValueSet = switch (b.getValueSet()) + { + case "http://dsf.dev/fhir/CodeSystem/bpmn-message|1.0.0", "http://dsf.dev/fhir/CodeSystem/bpmn-message|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/bpmn-message"; + case "http://dsf.dev/fhir/CodeSystem/organization-role|1.0.0", "http://dsf.dev/fhir/CodeSystem/organization-role|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/organization-role"; + case "http://dsf.dev/fhir/CodeSystem/practitioner-role|1.0.0", "http://dsf.dev/fhir/CodeSystem/practitioner-role|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/practitioner-role"; + case "http://dsf.dev/fhir/CodeSystem/process-authorization|1.0.0", "http://dsf.dev/fhir/CodeSystem/process-authorization|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/process-authorization"; + case "http://dsf.dev/fhir/CodeSystem/read-access-tag|1.0.0", "http://dsf.dev/fhir/CodeSystem/read-access-tag|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/read-access-tag"; + default -> b.getValueSet(); + }; + + b.setValueSet(newValueSet); + }); + } +} diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/InitialDataMigratorConfig.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/InitialDataMigratorConfig.java index fbe425abb..4446901c7 100644 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/InitialDataMigratorConfig.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/InitialDataMigratorConfig.java @@ -14,19 +14,33 @@ import dev.dsf.fhir.service.InitialDataMigrator; import dev.dsf.fhir.service.InitialDataMigratorImpl; import dev.dsf.fhir.service.migration.MigrationJob; +import dev.dsf.fhir.service.migration.QuestionnairesMigrationJob; +import dev.dsf.fhir.service.migration.StructureDefinitionTaskProfileMigrationJob; @Configuration public class InitialDataMigratorConfig { @Autowired - public DaoConfig daoConfig; + private DaoConfig daoConfig; + + @Autowired + private SnapshotConfig snapshotConfig; + + @Autowired + private HelperConfig helperConfig; + + @Autowired + private EventConfig eventConfig; @Bean public List<MigrationJob> migrationJobs() { - // currently no migration jobs - // add future migration jobs here - return List.of(); + return List.of( + new StructureDefinitionTaskProfileMigrationJob(daoConfig.structureDefinitionDao(), + daoConfig.structureDefinitionSnapshotDao(), snapshotConfig.snapshotGenerator(), + helperConfig.exceptionHandler(), eventConfig.eventManager(), eventConfig.eventGenerator()), + new QuestionnairesMigrationJob(daoConfig.questionnaireDao(), eventConfig.eventManager(), + eventConfig.eventGenerator())); } @Bean From c68845bfd78c3fd196888a4567b56ed73f271667 Mon Sep 17 00:00:00 2001 From: Hauke Hund <hauke.hund@hs-heilbronn.de> Date: Wed, 29 Oct 2025 04:33:09 +0100 Subject: [PATCH 06/16] fixed integration tests for new 2.0.0 profiles - removed Questionnaire 1.0.0 profile related tests --- .../AbstractQuestionnaireIntegrationTest.java | 58 ++------- .../integration/BundleIntegrationTest.java | 2 +- .../QuestionnaireIntegrationTest.java | 10 +- .../QuestionnaireResponseIntegrationTest.java | 119 +++++++++--------- ...sQuestionnaireResponseIntegrationTest.java | 111 ++++------------ .../dsf-task-test-snapshot.xml | 2 +- .../structuredefinition/dsf-task-test.xml | 2 +- .../task/dsf-test-task-profile-1.0.xml | 2 +- .../dsf-test-task-profile-binary-ref-1.7.xml | 2 +- 9 files changed, 104 insertions(+), 204 deletions(-) diff --git a/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/AbstractQuestionnaireIntegrationTest.java b/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/AbstractQuestionnaireIntegrationTest.java index 19aba4d03..033af8954 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/AbstractQuestionnaireIntegrationTest.java +++ b/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/AbstractQuestionnaireIntegrationTest.java @@ -7,12 +7,9 @@ import java.util.Collections; import java.util.Date; import java.util.List; -import java.util.Optional; import java.util.UUID; -import org.hl7.fhir.r4.model.CanonicalType; import org.hl7.fhir.r4.model.Enumerations; -import org.hl7.fhir.r4.model.Meta; import org.hl7.fhir.r4.model.Questionnaire; import org.hl7.fhir.r4.model.QuestionnaireResponse; import org.hl7.fhir.r4.model.QuestionnaireResponse.QuestionnaireResponseStatus; @@ -25,7 +22,7 @@ public class AbstractQuestionnaireIntegrationTest extends AbstractIntegrationTest { protected static final String QUESTIONNAIRE_URL = "http://dsf.dev/fhir/Questionnaire/userTask/foo"; - protected static final String QUESTIONNAIRE_VERSION = "1.0.0"; + protected static final String QUESTIONNAIRE_VERSION = "2.0"; protected static final String QUESTIONNAIRE_URL_VERSION = QUESTIONNAIRE_URL + "|" + QUESTIONNAIRE_VERSION; protected static final String TEST_IDENTIFIER_SYSTEM = "http://dsf.dev/fhir/CodeSystem/test"; protected static final String TEST_IDENTIFIER_VALUE = "foo"; @@ -40,10 +37,10 @@ public class AbstractQuestionnaireIntegrationTest extends AbstractIntegrationTes protected static final Date QUESTIONNAIRE_RESPONSE_DATE = Date .from(LocalDateTime.parse("2022-01-02T00:00:00").toInstant(ZoneOffset.UTC)); - protected Questionnaire createQuestionnaireProfileVersion100() + protected Questionnaire createQuestionnaire() { Questionnaire questionnaire = new Questionnaire(); - questionnaire.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/questionnaire|1.0.0"); + questionnaire.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/questionnaire"); questionnaire.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); questionnaire.setUrl(QUESTIONNAIRE_URL); @@ -55,47 +52,16 @@ protected Questionnaire createQuestionnaireProfileVersion100() questionnaire.setDate(QUESTIONNAIRE_DATE); questionnaire.addItem().setLinkId(QUESTIONNAIRE_ITEM_USER_TASK_ID_LINK) - .setText(QUESTIONNAIRE_ITEM_USER_TASK_ID_TEXT).setType(Questionnaire.QuestionnaireItemType.STRING); + .setText(QUESTIONNAIRE_ITEM_USER_TASK_ID_TEXT).setType(Questionnaire.QuestionnaireItemType.STRING) + .setRequired(true); questionnaire.addItem().setLinkId(QUESTIONNAIRE_ITEM_BUSINESS_KEY_LINK) - .setText(QUESTIONNAIRE_ITEM_BUSINESS_KEY_TEXT).setType(Questionnaire.QuestionnaireItemType.STRING); + .setText(QUESTIONNAIRE_ITEM_BUSINESS_KEY_TEXT).setType(Questionnaire.QuestionnaireItemType.STRING) + .setRequired(true); return questionnaire; } - protected Questionnaire createQuestionnaireProfileVersion100(String questionnaireVersion) - { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); - return questionnaire.setVersion(questionnaireVersion); - } - - protected Questionnaire createQuestionnaireProfileVersion150() - { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); - Meta meta = questionnaire.getMeta(); - - String profile = meta.getProfile().get(0).getValue().replace("1.0.0", "1.5.0"); - meta.setProfile(List.of(new CanonicalType(profile))); - - questionnaire.getItem().forEach(i -> i.setRequired(true)); - - return questionnaire; - } - - protected Questionnaire createQuestionnaireProfileVersion150(String questionnaireVersion) - { - Questionnaire questionnaire = createQuestionnaireProfileVersion150(); - return questionnaire.setVersion(questionnaireVersion); - } - - protected void addItem(Questionnaire questionnaire, String linkId, String text, - Questionnaire.QuestionnaireItemType type, Optional<Boolean> required) - { - Questionnaire.QuestionnaireItemComponent item = questionnaire.addItem().setLinkId(linkId).setText(text) - .setType(type); - required.ifPresent(item::setRequired); - } - - protected QuestionnaireResponse createInProgressQuestionnaireResponse() + protected QuestionnaireResponse createQuestionnaireResponse() { OrganizationProvider organizationProvider = getSpringWebApplicationContext() .getBean(OrganizationProvider.class); @@ -122,14 +88,6 @@ protected QuestionnaireResponse createInProgressQuestionnaireResponse() return questionnaireResponse; } - protected QuestionnaireResponse createQuestionnaireResponse(String questionnaireVersion) - { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); - String urlVersion = questionnaireResponse.getQuestionnaire().replace(QUESTIONNAIRE_VERSION, - questionnaireVersion); - return questionnaireResponse.setQuestionnaire(urlVersion); - } - protected void addItem(QuestionnaireResponse questionnaireResponse, String linkId, String text, Type answer) { List<QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent> answerComponent = Collections diff --git a/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/BundleIntegrationTest.java b/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/BundleIntegrationTest.java index 65e4e79cf..beda36b21 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/BundleIntegrationTest.java +++ b/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/BundleIntegrationTest.java @@ -110,7 +110,7 @@ public void testDeleteTaskProfileViaBundleTestSupportedProfilesInConformanceStat newS.setKind(StructureDefinitionKind.RESOURCE); newS.setAbstract(false); newS.setType("Task"); - newS.setBaseDefinition("http://dsf.dev/fhir/StructureDefinition/task-base"); + newS.setBaseDefinition("http://dsf.dev/fhir/StructureDefinition/task"); newS.setDerivation(TypeDerivationRule.CONSTRAINT); ElementDefinition diff = newS.getDifferential().addElement(); diff.setId("Task.instantiatesUri"); diff --git a/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/QuestionnaireIntegrationTest.java b/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/QuestionnaireIntegrationTest.java index e30528ca2..456851c82 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/QuestionnaireIntegrationTest.java +++ b/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/QuestionnaireIntegrationTest.java @@ -18,7 +18,7 @@ public class QuestionnaireIntegrationTest extends AbstractQuestionnaireIntegrati @Test public void testCreateValidByLocalUser() { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire = createQuestionnaire(); Questionnaire created = getWebserviceClient().create(questionnaire); assertNotNull(created); @@ -29,7 +29,7 @@ public void testCreateValidByLocalUser() @Test public void testSearchByDate() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire = createQuestionnaire(); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); @@ -50,7 +50,7 @@ public void testSearchByDate() throws Exception @Test public void testSearchByIdentifier() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire = createQuestionnaire(); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); @@ -72,7 +72,7 @@ public void testSearchByIdentifier() throws Exception @Test public void testSearchByStatus() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire = createQuestionnaire(); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); @@ -93,7 +93,7 @@ public void testSearchByStatus() throws Exception @Test public void testSearchByUrlAndVersion() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire = createQuestionnaire(); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); diff --git a/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/QuestionnaireResponseIntegrationTest.java b/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/QuestionnaireResponseIntegrationTest.java index b52ff9247..5e8e96963 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/QuestionnaireResponseIntegrationTest.java +++ b/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/QuestionnaireResponseIntegrationTest.java @@ -34,11 +34,11 @@ public class QuestionnaireResponseIntegrationTest extends AbstractQuestionnaireI @Test public void testCreateValidByLocalUser() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire = createQuestionnaire(); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponse created = getWebserviceClient().create(questionnaireResponse); assertNotNull(created); @@ -49,7 +49,7 @@ public void testCreateValidByLocalUser() throws Exception @Test public void testCreateNotAllowedByLocalUserStatusCompleted() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); questionnaireResponse.setStatus(QuestionnaireResponseStatus.COMPLETED); expectForbidden(() -> getWebserviceClient().create(questionnaireResponse)); @@ -58,7 +58,7 @@ public void testCreateNotAllowedByLocalUserStatusCompleted() throws Exception @Test public void testCreateNotAllowedByLocalUserQuestionnaireDoesNotExists() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); expectForbidden(() -> getWebserviceClient().create(questionnaireResponse)); } @@ -66,7 +66,7 @@ public void testCreateNotAllowedByLocalUserQuestionnaireDoesNotExists() throws E @Test public void testCreateNotAllowedByRemoteUser() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); expectForbidden(() -> getExternalWebserviceClient().create(questionnaireResponse)); } @@ -74,11 +74,11 @@ public void testCreateNotAllowedByRemoteUser() throws Exception @Test public void testUpdateAllowedByLocalUser() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire = createQuestionnaire(); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); QuestionnaireResponse created = questionnaireResponseDao.create(questionnaireResponse); @@ -96,7 +96,7 @@ public void testUpdateAllowedByLocalUser() throws Exception @Test public void testUpdateNotAllowedByLocalUser() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); QuestionnaireResponse created = questionnaireResponseDao.create(questionnaireResponse); @@ -107,7 +107,7 @@ public void testUpdateNotAllowedByLocalUser() throws Exception @Test public void testUpdateNotAllowedByLocalUserNoUserTaskId() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); QuestionnaireResponse created = questionnaireResponseDao.create(questionnaireResponse); @@ -121,7 +121,7 @@ public void testUpdateNotAllowedByLocalUserNoUserTaskId() throws Exception @Test public void testUpdateNotAllowedByLocalUserChangedUserTaskId() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); QuestionnaireResponse created = questionnaireResponseDao.create(questionnaireResponse); @@ -138,7 +138,7 @@ public void testUpdateNotAllowedByLocalUserChangedUserTaskId() throws Exception @Test public void testSecondUpdateNotAllowedByLocalUser() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); QuestionnaireResponse created = questionnaireResponseDao.create(questionnaireResponse); @@ -151,7 +151,7 @@ public void testSecondUpdateNotAllowedByLocalUser() throws Exception @Test public void testUpdateNotAllowedByRemoteUser() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); QuestionnaireResponse created = questionnaireResponseDao.create(questionnaireResponse); @@ -164,7 +164,7 @@ public void testUpdateNotAllowedByRemoteUser() throws Exception @Test public void testSearchByDate() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); questionnaireResponseDao.create(questionnaireResponse); @@ -187,7 +187,7 @@ public void testSearchByDate() throws Exception @Test public void testSearchByIdentifier() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); questionnaireResponseDao.create(questionnaireResponse); @@ -211,7 +211,7 @@ public void testSearchByIdentifier() throws Exception @Test public void testSearchByIdentifierRemoteUser() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); questionnaireResponseDao.create(questionnaireResponse); @@ -237,11 +237,11 @@ public void testSearchByQuestionnaireWithoutVersion() throws Exception private void testSearchByQuestionnaire(String questionnaireUrl) throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire = createQuestionnaire(); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); questionnaireResponseDao.create(questionnaireResponse); @@ -274,12 +274,11 @@ private void testSearchByQuestionnaire(String questionnaireUrl) throws Exception @Test public void testSearchByQuestionnaireNoVersion() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100().setVersion(null); + Questionnaire questionnaire = createQuestionnaire().setVersion(null); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse() - .setQuestionnaire(QUESTIONNAIRE_URL); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse().setQuestionnaire(QUESTIONNAIRE_URL); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); questionnaireResponseDao.create(questionnaireResponse); @@ -313,19 +312,19 @@ public void testSearchByQuestionnaireWithoutVersionButMultipleVersionExist() thr { QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); - Questionnaire questionnaire1 = createQuestionnaireProfileVersion100().setVersion("0.1.0"); + Questionnaire questionnaire1 = createQuestionnaire().setVersion("0.1.0"); questionnaireDao.create(questionnaire1); - Questionnaire questionnaire2 = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire2 = createQuestionnaire(); questionnaireDao.create(questionnaire2); - Questionnaire questionnaire3 = createQuestionnaireProfileVersion100().setVersion("0.2.0"); + Questionnaire questionnaire3 = createQuestionnaire().setVersion("0.2.0"); questionnaireDao.create(questionnaire3); - Questionnaire questionnaire4 = createQuestionnaireProfileVersion100().setVersion(null); + Questionnaire questionnaire4 = createQuestionnaire().setVersion(null); questionnaireDao.create(questionnaire4); - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); questionnaireResponseDao.create(questionnaireResponse); @@ -360,7 +359,7 @@ public void testSearchByQuestionnaireWithoutVersionButMultipleVersionExist() thr @Test public void testSearchByStatus() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); questionnaireResponseDao.create(questionnaireResponse); @@ -387,7 +386,7 @@ public void testSearchBySubjectReference() throws Exception .getBean(OrganizationProvider.class); Organization localOrganization = organizationProvider.getLocalOrganization().get(); - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); questionnaireResponse.getSubject().setType(ResourceType.Organization.name()) .setReferenceElement(localOrganization.getIdElement().toVersionless()).getIdentifier() .setSystem("http://dsf.dev/sid/organization-identifier").setValue("Test_Organization"); @@ -429,7 +428,7 @@ public void testSearchBySubjectReference() throws Exception @Test public void testDeleteAllowedByLocalUser() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); QuestionnaireResponse created = questionnaireResponseDao.create(questionnaireResponse); @@ -440,7 +439,7 @@ public void testDeleteAllowedByLocalUser() throws Exception @Test public void testDeleteNotAllowedByRemoteUser() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); QuestionnaireResponse created = questionnaireResponseDao.create(questionnaireResponse); @@ -452,7 +451,7 @@ public void testDeleteNotAllowedByRemoteUser() throws Exception @Test public void testReadAllowedByLocalUser() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); QuestionnaireResponse created = questionnaireResponseDao.create(questionnaireResponse); @@ -470,7 +469,7 @@ public void testReadAllowedByLocalUser() throws Exception @Test public void testReadNotAllowedByRemoteUser() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); QuestionnaireResponse created = questionnaireResponseDao.create(questionnaireResponse); @@ -482,7 +481,7 @@ public void testReadNotAllowedByRemoteUser() throws Exception @Test public void testReadNotAllowedByRemoteUserWithVersion() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); QuestionnaireResponse created = questionnaireResponseDao.create(questionnaireResponse); @@ -494,7 +493,7 @@ public void testReadNotAllowedByRemoteUserWithVersion() throws Exception @Test public void testNotModifiedCheckAllowedByLocalUser() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); QuestionnaireResponse created = questionnaireResponseDao.create(questionnaireResponse); @@ -507,7 +506,7 @@ public void testNotModifiedCheckAllowedByLocalUser() throws Exception @Test public void testNotModifiedCheckNotAllowedByRemoteUser() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); QuestionnaireResponse created = questionnaireResponseDao.create(questionnaireResponse); @@ -518,7 +517,7 @@ public void testNotModifiedCheckNotAllowedByRemoteUser() throws Exception @Test public void testNotModifiedCheckAllowedByLocalUserWithModification() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); QuestionnaireResponse created = questionnaireResponseDao.create(questionnaireResponse); @@ -535,7 +534,7 @@ public void testNotModifiedCheckAllowedByLocalUserWithModification() throws Exce @Test public void testNotModifiedCheckNotAllowedByRemoteUserWithModification() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); QuestionnaireResponse created = questionnaireResponseDao.create(questionnaireResponse); @@ -550,7 +549,7 @@ public void testHistory() throws Exception { QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); - QuestionnaireResponse created = questionnaireResponseDao.create(createInProgressQuestionnaireResponse()); + QuestionnaireResponse created = questionnaireResponseDao.create(createQuestionnaireResponse()); Bundle historyBundle = getWebserviceClient().history(QuestionnaireResponse.class, created.getIdElement().getIdPart()); @@ -586,7 +585,7 @@ public void testHistoryRemoteUser() throws Exception { QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); - QuestionnaireResponse created = questionnaireResponseDao.create(createInProgressQuestionnaireResponse()); + QuestionnaireResponse created = questionnaireResponseDao.create(createQuestionnaireResponse()); Bundle historyBundle = getExternalWebserviceClient().history(QuestionnaireResponse.class, created.getIdElement().getIdPart()); @@ -614,7 +613,7 @@ public void testHistoryRemoteUser() throws Exception @Test public void testDeletePermanentlyAllowedByLocalUser() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); QuestionnaireResponse created = questionnaireResponseDao.create(questionnaireResponse); @@ -626,7 +625,7 @@ public void testDeletePermanentlyAllowedByLocalUser() throws Exception @Test public void testDeletePermanentlyNotAllowedByRemoteUser() throws Exception { - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponseDao questionnaireResponseDao = getSpringWebApplicationContext() .getBean(QuestionnaireResponseDao.class); QuestionnaireResponse created = questionnaireResponseDao.create(questionnaireResponse); @@ -639,11 +638,11 @@ public void testDeletePermanentlyNotAllowedByRemoteUser() throws Exception @Test public void testUpdateAllowedByMinimalUserWithRole() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire = createQuestionnaire(); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); Extension authExtension = questionnaireResponse.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-questionnaire-authorization"); authExtension.addExtension().setUrl("practitioner-role") @@ -669,11 +668,11 @@ public void testUpdateAllowedByMinimalUserWithRole() throws Exception @Test public void testUpdateNotAllowedByMinimalUserWithoutRole() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire = createQuestionnaire(); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); Extension authExtension = questionnaireResponse.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-questionnaire-authorization"); authExtension.addExtension().setUrl("practitioner-role") @@ -694,11 +693,11 @@ public void testUpdateNotAllowedByMinimalUserWithoutRole() throws Exception @Test public void testReadNotAllowedByPractitionerUserWithoutRole() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire = createQuestionnaire(); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); Extension authExtension = questionnaireResponse.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-questionnaire-authorization"); authExtension.addExtension().setUrl("practitioner-role") @@ -754,11 +753,11 @@ public void testReadNotAllowedByPractitionerUserWithoutRole() throws Exception @Test public void testReadAllowedByPractitionerUserWithRole() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire = createQuestionnaire(); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); Extension authExtension = questionnaireResponse.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-questionnaire-authorization"); authExtension.addExtension().setUrl("practitioner-role") @@ -824,11 +823,11 @@ public void testReadAllowedByPractitionerUserWithRole() throws Exception @Test public void testReadNotAllowedByPractitionerUserWithoutIdentifier() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire = createQuestionnaire(); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); Extension authExtension = questionnaireResponse.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-questionnaire-authorization"); authExtension.addExtension().setUrl("practitioner") @@ -885,11 +884,11 @@ public void testReadNotAllowedByPractitionerUserWithoutIdentifier() throws Excep @Test public void testReadAllowedByPractitionerUserWithIdentifier() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire = createQuestionnaire(); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); Extension authExtension = questionnaireResponse.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-questionnaire-authorization"); authExtension.addExtension().setUrl("practitioner") @@ -956,11 +955,11 @@ public void testReadAllowedByPractitionerUserWithIdentifier() throws Exception @Test public void testUpdateCompletedAmendedAllowedOrganizationUser() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire = createQuestionnaire(); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - QuestionnaireResponse qr = createInProgressQuestionnaireResponse(); + QuestionnaireResponse qr = createQuestionnaireResponse(); qr.setStatus(QuestionnaireResponseStatus.COMPLETED); qr.setAuthored(new Date()); qr.setAuthor(null).getAuthor().setType(ResourceType.Practitioner.name()).getIdentifier() @@ -977,11 +976,11 @@ public void testUpdateCompletedAmendedAllowedOrganizationUser() throws Exception @Test public void testUpdateCompletedAmendedAllowedDsfAdmin() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire = createQuestionnaire(); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - QuestionnaireResponse qr = createInProgressQuestionnaireResponse(); + QuestionnaireResponse qr = createQuestionnaireResponse(); qr.setStatus(QuestionnaireResponseStatus.COMPLETED); qr.setAuthored(new Date()); qr.setAuthor(null).getAuthor().setType(ResourceType.Practitioner.name()).getIdentifier() @@ -998,11 +997,11 @@ public void testUpdateCompletedAmendedAllowedDsfAdmin() throws Exception @Test public void testUpdateCompletedAmendedNotAllowed() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire = createQuestionnaire(); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - QuestionnaireResponse qr = createInProgressQuestionnaireResponse(); + QuestionnaireResponse qr = createQuestionnaireResponse(); qr.setStatus(QuestionnaireResponseStatus.COMPLETED); qr.setAuthored(new Date()); qr.setAuthor(null).getAuthor().setType(ResourceType.Practitioner.name()).getIdentifier() @@ -1020,11 +1019,11 @@ public void testUpdateCompletedAmendedNotAllowed() throws Exception @Test public void testSearchAllowedByMinimalUserWithRole() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100(); + Questionnaire questionnaire = createQuestionnaire(); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - QuestionnaireResponse questionnaireResponse = createInProgressQuestionnaireResponse(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); Extension authExtension = questionnaireResponse.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-questionnaire-authorization"); authExtension.addExtension().setUrl("practitioner-role") diff --git a/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/QuestionnaireVsQuestionnaireResponseIntegrationTest.java b/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/QuestionnaireVsQuestionnaireResponseIntegrationTest.java index 1cd638fbb..c20ae8b6b 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/QuestionnaireVsQuestionnaireResponseIntegrationTest.java +++ b/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/QuestionnaireVsQuestionnaireResponseIntegrationTest.java @@ -4,11 +4,11 @@ import static org.junit.Assert.assertTrue; import java.util.Date; -import java.util.Optional; import java.util.UUID; import org.hl7.fhir.r4.model.Bundle; import org.hl7.fhir.r4.model.Questionnaire; +import org.hl7.fhir.r4.model.Questionnaire.QuestionnaireItemType; import org.hl7.fhir.r4.model.QuestionnaireResponse; import org.hl7.fhir.r4.model.ResourceType; import org.hl7.fhir.r4.model.StringType; @@ -21,88 +21,31 @@ public class QuestionnaireVsQuestionnaireResponseIntegrationTest extends Abstrac @Test public void testQuestionnaireResponseQuestionnaireCanonicalChanged() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion150("1.0.0"); - Questionnaire questionnaire2 = createQuestionnaireProfileVersion150("2.0.0"); + Questionnaire questionnaire = createQuestionnaire(); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - questionnaireDao.create(questionnaire2); - QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse("1.0.0"); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponse created = getWebserviceClient().create(questionnaireResponse); created.setStatus(QuestionnaireResponse.QuestionnaireResponseStatus.COMPLETED); - String newQuestionnaireUrlAndVersion = created.getQuestionnaire().replace("1.0.0", "2.0.0"); + String newQuestionnaireUrlAndVersion = created.getQuestionnaire().replace(QUESTIONNAIRE_VERSION, "2.1"); created.setQuestionnaire(newQuestionnaireUrlAndVersion); expectForbidden(() -> getWebserviceClient().update(created)); } @Test - public void testQuestionnaireResponseValidatesAgainstQuestionnaireProfilVersion100QuestionnaireNotFound() - throws Exception - { - Questionnaire questionnaire = createQuestionnaireProfileVersion150("1.0.1"); - QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); - questionnaireDao.create(questionnaire); - - QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse("2.0.1"); - expectForbidden(() -> getWebserviceClient().create(questionnaireResponse)); - } - - @Test - public void testQuestionnaireResponseValidatesAgainstQuestionnaireProfilVersion100ItemSet() throws Exception - { - Questionnaire questionnaire = createQuestionnaireProfileVersion150("1.0.2"); - addItem(questionnaire, "test", "test-item", Questionnaire.QuestionnaireItemType.STRING, Optional.empty()); - - QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); - questionnaireDao.create(questionnaire); - - QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse("1.0.2"); - QuestionnaireResponse createdQr = getWebserviceClient().create(questionnaireResponse); - - createdQr.setStatus(QuestionnaireResponse.QuestionnaireResponseStatus.COMPLETED); - addItem(createdQr, "test", "test-item", new StringType("answer")); - QuestionnaireResponse updatedQr = getWebserviceClient().update(createdQr); - - assertNotNull(updatedQr); - assertNotNull(updatedQr.getIdElement().getIdPart()); - assertNotNull(updatedQr.getIdElement().getVersionIdPart()); - } - - @Test - public void testQuestionnaireResponseValidatesAgainstQuestionnaireProfilVersion100ItemMissing() throws Exception - { - // expected to work without validation error, since not setting Questionnaire.item.required means the item is - // not required - Questionnaire questionnaire = createQuestionnaireProfileVersion150("1.0.3"); - addItem(questionnaire, "test", "test-item", Questionnaire.QuestionnaireItemType.STRING, Optional.empty()); - - QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); - questionnaireDao.create(questionnaire); - - QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse("1.0.3"); - QuestionnaireResponse createdQr = getWebserviceClient().create(questionnaireResponse); - - createdQr.setStatus(QuestionnaireResponse.QuestionnaireResponseStatus.COMPLETED); - QuestionnaireResponse updatedQr = getWebserviceClient().update(createdQr); - - assertNotNull(updatedQr); - assertNotNull(updatedQr.getIdElement().getIdPart()); - assertNotNull(updatedQr.getIdElement().getVersionIdPart()); - } - - @Test - public void testQuestionnaireResponseValidatesAgainstQuestionnaireProfileVersion150ItemRequiredAndSet() - throws Exception + public void testQuestionnaireResponseValidatesAgainstQuestionnaireItemRequiredAndSet() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion150("1.5.1"); - addItem(questionnaire, "test", "test-item", Questionnaire.QuestionnaireItemType.STRING, Optional.of(true)); + Questionnaire questionnaire = createQuestionnaire(); + questionnaire.addItem().setLinkId("test").setText("test-item").setType(QuestionnaireItemType.STRING) + .setRequired(true); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse("1.5.1"); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponse createdQr = getWebserviceClient().create(questionnaireResponse); createdQr.setStatus(QuestionnaireResponse.QuestionnaireResponseStatus.COMPLETED); @@ -115,16 +58,16 @@ public void testQuestionnaireResponseValidatesAgainstQuestionnaireProfileVersion } @Test - public void testQuestionnaireResponseValidatesAgainstQuestionnaireProfileVersion150ItemRequiredNotSet() - throws Exception + public void testQuestionnaireResponseValidatesAgainstQuestionnaireItemRequiredNotSet() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion150("1.5.2"); - addItem(questionnaire, "test", "test-item", Questionnaire.QuestionnaireItemType.STRING, Optional.of(true)); + Questionnaire questionnaire = createQuestionnaire(); + questionnaire.addItem().setLinkId("test").setText("test-item").setType(QuestionnaireItemType.STRING) + .setRequired(true); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse("1.5.2"); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponse createdQr = getWebserviceClient().create(questionnaireResponse); createdQr.setStatus(QuestionnaireResponse.QuestionnaireResponseStatus.COMPLETED); @@ -132,16 +75,16 @@ public void testQuestionnaireResponseValidatesAgainstQuestionnaireProfileVersion } @Test - public void testQuestionnaireResponseValidatesAgainstQuestionnaireProfileVersion150ItemOptionalNotSet() - throws Exception + public void testQuestionnaireResponseValidatesAgainstQuestionnaireItemOptionalNotSet() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion150("1.5.3"); - addItem(questionnaire, "test", "test-item", Questionnaire.QuestionnaireItemType.STRING, Optional.of(false)); + Questionnaire questionnaire = createQuestionnaire(); + questionnaire.addItem().setLinkId("test").setText("test-item").setType(QuestionnaireItemType.STRING) + .setRequired(false); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse("1.5.3"); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); QuestionnaireResponse createdQr = getWebserviceClient().create(questionnaireResponse); createdQr.setStatus(QuestionnaireResponse.QuestionnaireResponseStatus.COMPLETED); @@ -156,8 +99,8 @@ public void testQuestionnaireResponseValidatesAgainstQuestionnaireProfileVersion public void testPostQuestionnaireAndCorrespondingQuestionnaireResponseInTransactionBundleOrderQuestionnaireBeforeQuestionnaireResponse() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion150("1.5.3"); - QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse("1.5.3"); + Questionnaire questionnaire = createQuestionnaire(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); Bundle bundle = new Bundle(); bundle.setType(Bundle.BundleType.TRANSACTION); @@ -174,8 +117,8 @@ public void testPostQuestionnaireAndCorrespondingQuestionnaireResponseInTransact public void testPostQuestionnaireAndCorrespondingQuestionnaireResponseInTransactionBundleOrderQuestionnaireResponseBeforeQuestionnaire() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion150("1.5.3"); - QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse("1.5.3"); + Questionnaire questionnaire = createQuestionnaire(); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); Bundle bundle = new Bundle(); bundle.setType(Bundle.BundleType.TRANSACTION); @@ -191,7 +134,7 @@ public void testPostQuestionnaireAndCorrespondingQuestionnaireResponseInTransact @Test public void testPostQuestionnaireResponseInTransactionBundleQuestionnaireDoesNotExistForbidden() throws Exception { - QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse("1.5.3"); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); Bundle bundle = new Bundle(); bundle.setType(Bundle.BundleType.TRANSACTION); @@ -204,14 +147,14 @@ public void testPostQuestionnaireResponseInTransactionBundleQuestionnaireDoesNot @Test public void testQuestionnaireResponseQuestionnaireDisplayItemChangedWithMinimalUser() throws Exception { - Questionnaire questionnaire = createQuestionnaireProfileVersion100("1.0.0"); - questionnaire.addItem().setLinkId("display-id").setType(Questionnaire.QuestionnaireItemType.DISPLAY) + Questionnaire questionnaire = createQuestionnaire(); + questionnaire.addItem().setLinkId("display-id").setType(QuestionnaireItemType.DISPLAY) .setText("Default Text Value"); QuestionnaireDao questionnaireDao = getSpringWebApplicationContext().getBean(QuestionnaireDao.class); questionnaireDao.create(questionnaire); - QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse("1.0.0"); + QuestionnaireResponse questionnaireResponse = createQuestionnaireResponse(); questionnaireResponse.addItem().setLinkId("display-id").setText("Default Text Value"); expectForbidden(() -> getMinimalWebserviceClient().create(questionnaireResponse)); diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/structuredefinition/dsf-task-test-snapshot.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/structuredefinition/dsf-task-test-snapshot.xml index 2c875dbe8..32f652654 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/structuredefinition/dsf-task-test-snapshot.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/structuredefinition/dsf-task-test-snapshot.xml @@ -35,7 +35,7 @@ <kind value="resource" /> <abstract value="false" /> <type value="Task" /> - <baseDefinition value="http://dsf.dev/fhir/StructureDefinition/task-base" /> + <baseDefinition value="http://dsf.dev/fhir/StructureDefinition/task" /> <derivation value="constraint" /> <snapshot> <element id="Task"> diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/structuredefinition/dsf-task-test.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/structuredefinition/dsf-task-test.xml index 468b534ea..7b9c63da3 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/structuredefinition/dsf-task-test.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/structuredefinition/dsf-task-test.xml @@ -16,7 +16,7 @@ <kind value="resource" /> <abstract value="false" /> <type value="Task" /> - <baseDefinition value="http://dsf.dev/fhir/StructureDefinition/task-base" /> + <baseDefinition value="http://dsf.dev/fhir/StructureDefinition/task" /> <derivation value="constraint" /> <differential> <element id="Task.instantiatesUri"> diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-task-profile-1.0.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-task-profile-1.0.xml index 7bca78f7e..ebb5a699d 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-task-profile-1.0.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-task-profile-1.0.xml @@ -17,7 +17,7 @@ <kind value="resource" /> <abstract value="false" /> <type value="Task" /> - <baseDefinition value="http://dsf.dev/fhir/StructureDefinition/task-base" /> + <baseDefinition value="http://dsf.dev/fhir/StructureDefinition/task" /> <derivation value="constraint" /> <differential> <element id="Task.instantiatesCanonical"> diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-task-profile-binary-ref-1.7.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-task-profile-binary-ref-1.7.xml index 4c5e3ea2c..2c8199d95 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-task-profile-binary-ref-1.7.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-task-profile-binary-ref-1.7.xml @@ -15,7 +15,7 @@ <kind value="resource" /> <abstract value="false" /> <type value="Task" /> - <baseDefinition value="http://dsf.dev/fhir/StructureDefinition/task-base" /> + <baseDefinition value="http://dsf.dev/fhir/StructureDefinition/task" /> <derivation value="constraint" /> <differential> <element id="Task.instantiatesCanonical"> From 93689a067b91053e42db3b583c5529fcb103de08 Mon Sep 17 00:00:00 2001 From: Hauke Hund <hauke.hund@hs-heilbronn.de> Date: Wed, 29 Oct 2025 04:35:35 +0100 Subject: [PATCH 07/16] new profile related validation, runtime modifications for v1 plugins - FHIR resources from v1 plugins are rewritten during resource loading to comply with 2.0.0 profiles - FHIR resource from v2 plugins need to be compliant and are not rewritten --- .../dsf/bpe/v1/plugin/ProcessPluginImpl.java | 210 +++++++++++++++++- .../dsf/bpe/v2/plugin/ProcessPluginImpl.java | 80 ++++++- .../bpe/api/plugin/AbstractProcessPlugin.java | 192 ++++++++++------ .../api/plugin/ProcessPluginFhirConfig.java | 122 +++++++++- 4 files changed, 510 insertions(+), 94 deletions(-) diff --git a/dsf-bpe/dsf-bpe-process-api-v1-impl/src/main/java/dev/dsf/bpe/v1/plugin/ProcessPluginImpl.java b/dsf-bpe/dsf-bpe-process-api-v1-impl/src/main/java/dev/dsf/bpe/v1/plugin/ProcessPluginImpl.java index cba92a76a..32f9302ee 100644 --- a/dsf-bpe/dsf-bpe-process-api-v1-impl/src/main/java/dev/dsf/bpe/v1/plugin/ProcessPluginImpl.java +++ b/dsf-bpe/dsf-bpe-process-api-v1-impl/src/main/java/dev/dsf/bpe/v1/plugin/ProcessPluginImpl.java @@ -10,8 +10,10 @@ import java.util.Map; import java.util.Optional; import java.util.function.BiFunction; +import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; +import java.util.stream.Stream; import org.camunda.bpm.engine.delegate.ExecutionListener; import org.camunda.bpm.engine.delegate.JavaDelegate; @@ -22,13 +24,18 @@ import org.camunda.bpm.engine.variable.value.PrimitiveValue; import org.hl7.fhir.instance.model.api.IBaseResource; import org.hl7.fhir.r4.model.ActivityDefinition; +import org.hl7.fhir.r4.model.CanonicalType; import org.hl7.fhir.r4.model.CodeSystem; +import org.hl7.fhir.r4.model.ElementDefinition; +import org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionBindingComponent; import org.hl7.fhir.r4.model.Identifier; import org.hl7.fhir.r4.model.Library; import org.hl7.fhir.r4.model.Measure; import org.hl7.fhir.r4.model.MetadataResource; import org.hl7.fhir.r4.model.NamingSystem; import org.hl7.fhir.r4.model.Questionnaire; +import org.hl7.fhir.r4.model.Questionnaire.QuestionnaireItemComponent; +import org.hl7.fhir.r4.model.Questionnaire.QuestionnaireItemType; import org.hl7.fhir.r4.model.QuestionnaireResponse; import org.hl7.fhir.r4.model.Resource; import org.hl7.fhir.r4.model.StructureDefinition; @@ -92,7 +99,7 @@ public PluginMdc getPluginMdc() } @Override - protected ProcessPluginFhirConfig<ActivityDefinition, CodeSystem, Library, Measure, NamingSystem, Questionnaire, StructureDefinition, Task, ValueSet> createFhirConfig() + protected ProcessPluginFhirConfig<Resource, ActivityDefinition, CodeSystem, Library, Measure, NamingSystem, Questionnaire, StructureDefinition, Task, ValueSet> createFhirConfig() { BiFunction<String, String, Object> parseResource = (String filename, String content) -> { @@ -182,14 +189,199 @@ else if (filename.endsWith(XML_SUFFIX)) ? Optional.of(s.getBaseDefinitionElement().getValue()) : Optional.empty(); - return new ProcessPluginFhirConfig<>(ActivityDefinition.class, CodeSystem.class, Library.class, Measure.class, - NamingSystem.class, Questionnaire.class, StructureDefinition.class, Task.class, ValueSet.class, - OrganizationIdentifier.SID, TaskIdentifier.SID, TaskStatus.DRAFT.toCode(), BpmnMessage.URL, - BpmnMessage.Codes.MESSAGE_NAME, parseResource, encodeResource, getResourceName, hasMetadataResourceUrl, - hasMetadataResourceVersion, getMetadataResourceVersion, getActivityDefinitionUrl, NamingSystem::hasName, - getTaskInstantiatesCanonical, getTaskIdentifierValue, isTaskStatusDraft, getRequester, getRecipient, - Task::hasInput, hasTaskInputMessageName, Task::hasOutput, getStructureDefinitionBaseDefinition, - StructureDefinition::setBaseDefinition); + Function<Resource, List<String>> getProfiles = r -> r.hasMeta() && r.getMeta().hasProfile() ? r.getMeta() + .getProfile().stream().filter(CanonicalType::hasValue).map(CanonicalType::getValue).toList() + : List.of(); + + Consumer<ActivityDefinition> modifyActivityDefinition = a -> + { + List<CanonicalType> oldProfiles = a.getMeta().getProfile(); + List<CanonicalType> newProfiles = Stream + .concat(Stream.of("http://dsf.dev/fhir/StructureDefinition/activity-definition"), oldProfiles + .stream().filter(CanonicalType::hasValue).map(CanonicalType::getValue).map(p -> switch (p) + { + case "http://dsf.dev/fhir/StructureDefinition/activity-definition|1.0.0" -> "http://dsf.dev/fhir/StructureDefinition/activity-definition"; + default -> p; + })) + .distinct().map(CanonicalType::new).toList(); + + a.getMeta().setProfile(newProfiles); + }; + + Consumer<CodeSystem> modifyCodeSystem = c -> + { + List<CanonicalType> oldProfiles = c.getMeta().getProfile(); + List<CanonicalType> newProfiles = Stream + .concat(Stream.of("http://dsf.dev/fhir/StructureDefinition/code-system"), oldProfiles.stream() + .filter(CanonicalType::hasValue).map(CanonicalType::getValue).map(p -> switch (p) + { + case "http://dsf.dev/fhir/StructureDefinition/code-system|1.0.0" -> "http://dsf.dev/fhir/StructureDefinition/code-system"; + default -> p; + })) + .distinct().map(CanonicalType::new).toList(); + + c.getMeta().setProfile(newProfiles); + }; + + Consumer<Library> modifyLibrary = l -> + { + List<CanonicalType> oldProfiles = l.getMeta().getProfile(); + List<CanonicalType> newProfiles = Stream + .concat(Stream.of("http://dsf.dev/fhir/StructureDefinition/library"), + oldProfiles.stream().filter(CanonicalType::hasValue).map(CanonicalType::getValue)) + .distinct().map(CanonicalType::new).toList(); + + l.getMeta().setProfile(newProfiles); + }; + + Consumer<Measure> modifyMeasure = m -> + { + List<CanonicalType> oldProfiles = m.getMeta().getProfile(); + List<CanonicalType> newProfiles = Stream + .concat(Stream.of("http://dsf.dev/fhir/StructureDefinition/measure"), + oldProfiles.stream().filter(CanonicalType::hasValue).map(CanonicalType::getValue)) + .distinct().map(CanonicalType::new).toList(); + + m.getMeta().setProfile(newProfiles); + }; + + Consumer<NamingSystem> modifyNamingSystem = n -> + { + List<CanonicalType> oldProfiles = n.getMeta().getProfile(); + List<CanonicalType> newProfiles = Stream + .concat(Stream.of("http://dsf.dev/fhir/StructureDefinition/naming-system"), + oldProfiles.stream().filter(CanonicalType::hasValue).map(CanonicalType::getValue)) + .distinct().map(CanonicalType::new).toList(); + + n.getMeta().setProfile(newProfiles); + }; + + Consumer<Questionnaire> modifyQuestionnaire = q -> + { + List<CanonicalType> oldProfiles = q.getMeta().getProfile(); + List<CanonicalType> newProfiles = oldProfiles.stream().filter(CanonicalType::hasValue) + .map(CanonicalType::getValue).map(p -> switch (p) + { + case "http://dsf.dev/fhir/StructureDefinition/questionnaire|1.0.0", "http://dsf.dev/fhir/StructureDefinition/questionnaire|1.5.0" -> "http://dsf.dev/fhir/StructureDefinition/questionnaire"; + default -> p; + }).distinct().map(CanonicalType::new).toList(); + + q.getMeta().setProfile(newProfiles); + + setRequired(q.getItem()); + }; + + Consumer<StructureDefinition> modifyStructureDefinition = s -> + { + String oldBaseDefinition = s.getBaseDefinition(); + String newBaseDefinition = switch (oldBaseDefinition) + { + case "http://dsf.dev/fhir/StructureDefinition/task-base", "http://dsf.dev/fhir/StructureDefinition/task-base|1.0.0" -> "http://dsf.dev/fhir/StructureDefinition/task"; + default -> oldBaseDefinition; + }; + s.setBaseDefinition(newBaseDefinition); + + s.getDifferential().getElement().stream().filter(ElementDefinition::hasBinding) + .map(ElementDefinition::getBinding).filter(ElementDefinitionBindingComponent::hasValueSet) + .forEach(b -> + { + String newValueSet = switch (b.getValueSet()) + { + case "http://dsf.dev/fhir/CodeSystem/bpmn-message|1.0.0", "http://dsf.dev/fhir/CodeSystem/bpmn-message|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/bpmn-message"; + case "http://dsf.dev/fhir/CodeSystem/organization-role|1.0.0", "http://dsf.dev/fhir/CodeSystem/organization-role|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/organization-role"; + case "http://dsf.dev/fhir/CodeSystem/practitioner-role|1.0.0", "http://dsf.dev/fhir/CodeSystem/practitioner-role|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/practitioner-role"; + case "http://dsf.dev/fhir/CodeSystem/process-authorization|1.0.0", "http://dsf.dev/fhir/CodeSystem/process-authorization|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/process-authorization"; + case "http://dsf.dev/fhir/CodeSystem/read-access-tag|1.0.0", "http://dsf.dev/fhir/CodeSystem/read-access-tag|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/read-access-tag"; + default -> b.getValueSet(); + }; + + b.setValueSet(newValueSet); + }); + + List<CanonicalType> oldProfiles = s.getMeta().getProfile(); + List<CanonicalType> newProfiles = Stream + .concat(Stream.of("http://dsf.dev/fhir/StructureDefinition/structure-definition"), + oldProfiles.stream().filter(CanonicalType::hasValue).map(CanonicalType::getValue)) + .distinct().map(CanonicalType::new).toList(); + + s.getMeta().setProfile(newProfiles); + }; + + Consumer<ValueSet> modifyValueSet = v -> + { + List<CanonicalType> oldProfiles = v.getMeta().getProfile(); + List<CanonicalType> newProfiles = Stream + .concat(Stream.of("http://dsf.dev/fhir/StructureDefinition/value-set"), oldProfiles.stream() + .filter(CanonicalType::hasValue).map(CanonicalType::getValue).map(p -> switch (p) + { + case "http://dsf.dev/fhir/StructureDefinition/value-set|1.0.0" -> "http://dsf.dev/fhir/StructureDefinition/value-set"; + default -> p; + })) + .distinct().map(CanonicalType::new).toList(); + + v.getMeta().setProfile(newProfiles); + }; + + Predicate<Questionnaire> hasQuestionnaireItemsWithRequired = q -> !q.hasItem() || hasRequired(q.getItem()); + + Predicate<StructureDefinition> hasStructureDefinitionTaskDsfValueSetBindingsWithoutVersion = s -> s + .hasDifferential() + && s.getDifferential().getElement().stream().filter(ElementDefinition::hasBinding) + .map(ElementDefinition::getBinding).filter(ElementDefinitionBindingComponent::hasValueSet) + .allMatch(b -> + { + return switch (b.getValueSet()) + { + case "http://dsf.dev/fhir/CodeSystem/bpmn-message|1.0.0", "http://dsf.dev/fhir/CodeSystem/bpmn-message|2.0.0" -> false; + case "http://dsf.dev/fhir/CodeSystem/organization-role|1.0.0", "http://dsf.dev/fhir/CodeSystem/organization-role|2.0.0" -> false; + case "http://dsf.dev/fhir/CodeSystem/practitioner-role|1.0.0", "http://dsf.dev/fhir/CodeSystem/practitioner-role|2.0.0" -> false; + case "http://dsf.dev/fhir/CodeSystem/process-authorization|1.0.0", "http://dsf.dev/fhir/CodeSystem/process-authorization|2.0.0" -> false; + case "http://dsf.dev/fhir/CodeSystem/read-access-tag|1.0.0", "http://dsf.dev/fhir/CodeSystem/read-access-tag|2.0.0" -> false; + default -> true; + }; + }); + + return new ProcessPluginFhirConfig<>(Resource.class, ActivityDefinition.class, CodeSystem.class, Library.class, + Measure.class, NamingSystem.class, Questionnaire.class, StructureDefinition.class, Task.class, + ValueSet.class, OrganizationIdentifier.SID, TaskIdentifier.SID, TaskStatus.DRAFT.toCode(), + BpmnMessage.URL, BpmnMessage.Codes.MESSAGE_NAME, parseResource, encodeResource, getResourceName, + hasMetadataResourceUrl, hasMetadataResourceVersion, getMetadataResourceVersion, + getActivityDefinitionUrl, NamingSystem::hasName, getTaskInstantiatesCanonical, getTaskIdentifierValue, + isTaskStatusDraft, getRequester, getRecipient, Task::hasInput, hasTaskInputMessageName, Task::hasOutput, + getStructureDefinitionBaseDefinition, StructureDefinition::setBaseDefinition, getProfiles, + modifyActivityDefinition, modifyCodeSystem, modifyLibrary, modifyMeasure, modifyNamingSystem, + modifyQuestionnaire, modifyStructureDefinition, modifyValueSet, hasQuestionnaireItemsWithRequired, + hasStructureDefinitionTaskDsfValueSetBindingsWithoutVersion); + } + + private void setRequired(List<QuestionnaireItemComponent> items) + { + items.stream().filter(QuestionnaireItemComponent::hasLinkId).filter(QuestionnaireItemComponent::hasType) + .filter(i -> !QuestionnaireItemType.DISPLAY.equals(i.getType())).filter(i -> !i.hasRequired()) + .forEach(i -> + { + switch (i.getLinkId()) + { + case "business-key", "user-task-id" -> i.setRequired(true); + default -> i.setRequired(false); + } + + if (i.hasItem()) + setRequired(i.getItem()); + }); + } + + private boolean hasRequired(List<QuestionnaireItemComponent> items) + { + return items.stream().filter(QuestionnaireItemComponent::hasLinkId).filter(QuestionnaireItemComponent::hasType) + .filter(i -> !QuestionnaireItemType.DISPLAY.equals(i.getType())).allMatch(i -> + { + return switch (i.getLinkId()) + { + case "business-key", "user-task-id" -> i.hasRequired() && i.getRequired(); + default -> i.hasRequired(); + } && (!i.hasItem() || hasRequired(i.getItem())); + }); } private IParser newXmlParser() diff --git a/dsf-bpe/dsf-bpe-process-api-v2-impl/src/main/java/dev/dsf/bpe/v2/plugin/ProcessPluginImpl.java b/dsf-bpe/dsf-bpe-process-api-v2-impl/src/main/java/dev/dsf/bpe/v2/plugin/ProcessPluginImpl.java index 1dcc2c95f..6a3de9cd3 100644 --- a/dsf-bpe/dsf-bpe-process-api-v2-impl/src/main/java/dev/dsf/bpe/v2/plugin/ProcessPluginImpl.java +++ b/dsf-bpe/dsf-bpe-process-api-v2-impl/src/main/java/dev/dsf/bpe/v2/plugin/ProcessPluginImpl.java @@ -15,6 +15,7 @@ import java.util.Optional; import java.util.concurrent.atomic.AtomicReference; import java.util.function.BiFunction; +import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; @@ -29,13 +30,18 @@ import org.camunda.bpm.engine.variable.value.PrimitiveValue; import org.hl7.fhir.instance.model.api.IBaseResource; import org.hl7.fhir.r4.model.ActivityDefinition; +import org.hl7.fhir.r4.model.CanonicalType; import org.hl7.fhir.r4.model.CodeSystem; +import org.hl7.fhir.r4.model.ElementDefinition; +import org.hl7.fhir.r4.model.ElementDefinition.ElementDefinitionBindingComponent; import org.hl7.fhir.r4.model.Identifier; import org.hl7.fhir.r4.model.Library; import org.hl7.fhir.r4.model.Measure; import org.hl7.fhir.r4.model.MetadataResource; import org.hl7.fhir.r4.model.NamingSystem; import org.hl7.fhir.r4.model.Questionnaire; +import org.hl7.fhir.r4.model.Questionnaire.QuestionnaireItemComponent; +import org.hl7.fhir.r4.model.Questionnaire.QuestionnaireItemType; import org.hl7.fhir.r4.model.QuestionnaireResponse; import org.hl7.fhir.r4.model.Resource; import org.hl7.fhir.r4.model.StructureDefinition; @@ -169,7 +175,7 @@ public PluginMdc getPluginMdc() } @Override - protected ProcessPluginFhirConfig<ActivityDefinition, CodeSystem, Library, Measure, NamingSystem, Questionnaire, StructureDefinition, Task, ValueSet> createFhirConfig() + protected ProcessPluginFhirConfig<Resource, ActivityDefinition, CodeSystem, Library, Measure, NamingSystem, Questionnaire, StructureDefinition, Task, ValueSet> createFhirConfig() { BiFunction<String, String, Object> parseResource = (String filename, String content) -> { @@ -257,14 +263,70 @@ else if (filename.endsWith(XML_SUFFIX)) ? Optional.of(s.getBaseDefinitionElement().getValue()) : Optional.empty(); - return new ProcessPluginFhirConfig<>(ActivityDefinition.class, CodeSystem.class, Library.class, Measure.class, - NamingSystem.class, Questionnaire.class, StructureDefinition.class, Task.class, ValueSet.class, - OrganizationIdentifier.SID, TaskIdentifier.SID, TaskStatus.DRAFT.toCode(), BpmnMessage.SYSTEM, - BpmnMessage.Codes.MESSAGE_NAME, parseResource, encodeResource, getResourceName, hasMetadataResourceUrl, - hasMetadataResourceVersion, getMetadataResourceVersion, getActivityDefinitionUrl, NamingSystem::hasName, - getTaskInstantiatesCanonical, getTaskIdentifierValue, isTaskStatusDraft, getRequester, getRecipient, - Task::hasInput, hasTaskInputMessageName, Task::hasOutput, getStructureDefinitionBaseDefinition, - StructureDefinition::setBaseDefinition); + Function<Resource, List<String>> getProfiles = r -> r.hasMeta() && r.getMeta().hasProfile() ? r.getMeta() + .getProfile().stream().filter(CanonicalType::hasValue).map(CanonicalType::getValue).toList() + : List.of(); + + Consumer<ActivityDefinition> modifyActivityDefinition = _ -> + {}; + Consumer<CodeSystem> modifyCodeSystem = _ -> + {}; + Consumer<Library> modifyLibrary = _ -> + {}; + Consumer<Measure> modifyMeasure = _ -> + {}; + Consumer<NamingSystem> modifyNamingSystem = _ -> + {}; + Consumer<Questionnaire> modifyQuestionnaire = _ -> + {}; + Consumer<StructureDefinition> modifyStructureDefinition = _ -> + {}; + Consumer<ValueSet> modifyValueSet = _ -> + {}; + + Predicate<Questionnaire> hasQuestionnaireItemsWithRequired = q -> !q.hasItem() || hasRequired(q.getItem()); + + Predicate<StructureDefinition> hasStructureDefinitionTaskDsfValueSetBindingsWithoutVersion = s -> s + .hasDifferential() + && s.getDifferential().getElement().stream().filter(ElementDefinition::hasBinding) + .map(ElementDefinition::getBinding).filter(ElementDefinitionBindingComponent::hasValueSet) + .allMatch(b -> + { + return switch (b.getValueSet()) + { + case "http://dsf.dev/fhir/CodeSystem/bpmn-message|1.0.0", "http://dsf.dev/fhir/CodeSystem/bpmn-message|2.0.0" -> false; + case "http://dsf.dev/fhir/CodeSystem/organization-role|1.0.0", "http://dsf.dev/fhir/CodeSystem/organization-role|2.0.0" -> false; + case "http://dsf.dev/fhir/CodeSystem/practitioner-role|1.0.0", "http://dsf.dev/fhir/CodeSystem/practitioner-role|2.0.0" -> false; + case "http://dsf.dev/fhir/CodeSystem/process-authorization|1.0.0", "http://dsf.dev/fhir/CodeSystem/process-authorization|2.0.0" -> false; + case "http://dsf.dev/fhir/CodeSystem/read-access-tag|1.0.0", "http://dsf.dev/fhir/CodeSystem/read-access-tag|2.0.0" -> false; + default -> true; + }; + }); + + return new ProcessPluginFhirConfig<>(Resource.class, ActivityDefinition.class, CodeSystem.class, Library.class, + Measure.class, NamingSystem.class, Questionnaire.class, StructureDefinition.class, Task.class, + ValueSet.class, OrganizationIdentifier.SID, TaskIdentifier.SID, TaskStatus.DRAFT.toCode(), + BpmnMessage.SYSTEM, BpmnMessage.Codes.MESSAGE_NAME, parseResource, encodeResource, getResourceName, + hasMetadataResourceUrl, hasMetadataResourceVersion, getMetadataResourceVersion, + getActivityDefinitionUrl, NamingSystem::hasName, getTaskInstantiatesCanonical, getTaskIdentifierValue, + isTaskStatusDraft, getRequester, getRecipient, Task::hasInput, hasTaskInputMessageName, Task::hasOutput, + getStructureDefinitionBaseDefinition, StructureDefinition::setBaseDefinition, getProfiles, + modifyActivityDefinition, modifyCodeSystem, modifyLibrary, modifyMeasure, modifyNamingSystem, + modifyQuestionnaire, modifyStructureDefinition, modifyValueSet, hasQuestionnaireItemsWithRequired, + hasStructureDefinitionTaskDsfValueSetBindingsWithoutVersion); + } + + private boolean hasRequired(List<QuestionnaireItemComponent> items) + { + return items.stream().filter(QuestionnaireItemComponent::hasLinkId).filter(QuestionnaireItemComponent::hasType) + .filter(i -> !QuestionnaireItemType.DISPLAY.equals(i.getType())).allMatch(i -> + { + return switch (i.getLinkId()) + { + case "business-key", "user-task-id" -> i.hasRequired() && i.getRequired(); + default -> i.hasRequired(); + } && (!i.hasItem() || hasRequired(i.getItem())); + }); } private IParser newXmlParser() diff --git a/dsf-bpe/dsf-bpe-process-api/src/main/java/dev/dsf/bpe/api/plugin/AbstractProcessPlugin.java b/dsf-bpe/dsf-bpe-process-api/src/main/java/dev/dsf/bpe/api/plugin/AbstractProcessPlugin.java index c2723497b..fe561c171 100644 --- a/dsf-bpe/dsf-bpe-process-api/src/main/java/dev/dsf/bpe/api/plugin/AbstractProcessPlugin.java +++ b/dsf-bpe/dsf-bpe-process-api/src/main/java/dev/dsf/bpe/api/plugin/AbstractProcessPlugin.java @@ -116,8 +116,17 @@ static FileAndResource of(String file, Object resource) private static final String ORGANIZATION_RESOURCE_TYPE_NAME = "Organization"; - private static final String STRUCTURE_DEFINITION_BASE_TASK_URL = "http://dsf.dev/fhir/StructureDefinition/task-base"; - private static final String STRUCTURE_DEFINITION_BASE_TASK_URL_V1 = "http://dsf.dev/fhir/StructureDefinition/task-base|1.0.0"; + private static final String P_ACTIVITY_DEFINITION = "http://dsf.dev/fhir/StructureDefinition/activity-definition"; + private static final String P_CODE_SYSTEM = "http://dsf.dev/fhir/StructureDefinition/code-system"; + private static final String P_LIBRARY = "http://dsf.dev/fhir/StructureDefinition/library"; + private static final String P_MEASURE = "http://dsf.dev/fhir/StructureDefinition/measure"; + private static final String P_NAMING_SYSTEM = "http://dsf.dev/fhir/StructureDefinition/naming-system"; + private static final String P_QUESTIONNAIRE = "http://dsf.dev/fhir/StructureDefinition/questionnaire"; + private static final String P_STRUCTURE_DEFINITION = "http://dsf.dev/fhir/StructureDefinition/structure-definition"; + private static final String P_VALUE_SET = "http://dsf.dev/fhir/StructureDefinition/value-set"; + + private static final String BD_TASK_BASE = "http://dsf.dev/fhir/StructureDefinition/task-base"; + private static final String BD_TASK_BASE_1_0_0 = "http://dsf.dev/fhir/StructureDefinition/task-base|1.0.0"; private final String processPluginDefinitionTypeName; private final int processPluginApiVersion; @@ -136,7 +145,7 @@ static FileAndResource of(String file, Object resource) private final Class<?> messageEndEventInterface; private final Class<?> defaultUserTaskListenerClass; - private final ProcessPluginFhirConfig<?, ?, ?, ?, ?, ?, ?, ?, ?> fhirConfig; + private final ProcessPluginFhirConfig<?, ?, ?, ?, ?, ?, ?, ?, ?, ?> fhirConfig; private AnnotationConfigApplicationContext applicationContext; private List<BpmnFileAndModel> processModels; @@ -185,7 +194,7 @@ public AbstractProcessPlugin(Class<?> processPluginDefinitionType, int processPl this.fhirConfig = createFhirConfig(); } - protected abstract ProcessPluginFhirConfig<?, ?, ?, ?, ?, ?, ?, ?, ?> createFhirConfig(); + protected abstract ProcessPluginFhirConfig<?, ?, ?, ?, ?, ?, ?, ?, ?, ?> createFhirConfig(); protected abstract List<Class<?>> getDefinitionSpringConfigurations(); @@ -596,7 +605,7 @@ private Function<String, BpmnFileAndModel> loadBpmnModelOrNull(String localOrgan { if (!file.endsWith(BPMN_SUFFIX)) { - logger.warn("Ignoring BPMN model {} from process plugin {}-{}: Filename not ending in '{}'", file, + logger.warn("Ignoring BPMN model {} of process plugin {}-{}: Filename not ending in '{}'", file, getDefinitionName(), getDefinitionVersion(), BPMN_SUFFIX); return null; @@ -604,7 +613,7 @@ private Function<String, BpmnFileAndModel> loadBpmnModelOrNull(String localOrgan String resourceDateValue = getDefinitionResourceReleaseDate().format(DATE_FORMAT); logger.debug( - "Reading BPMN model {} from process plugin {}-{} and replacing all occurrences of {} with {}, {} with {} and {} with {}", + "Reading BPMN model {} of process plugin {}-{} and replacing all occurrences of {} with {}, {} with {} and {} with {}", file, getDefinitionName(), getDefinitionVersion(), VERSION_PLACEHOLDER_PATTERN_STRING, getDefinitionResourceVersion(), DATE_PLACEHOLDER_PATTERN_STRING, resourceDateValue, ORGANIZATION_PLACEHOLDER_PATTERN_STRING, localOrganizationIdentifierValue); @@ -614,7 +623,7 @@ file, getDefinitionName(), getDefinitionVersion(), VERSION_PLACEHOLDER_PATTERN_S if (in == null) { logger.warn( - "Ignoring BPMN model {} from process plugin {}-{}: File not readable, process plugin class loader getResourceAsStream returned null", + "Ignoring BPMN model {} of process plugin {}-{}: File not readable, process plugin class loader getResourceAsStream returned null", file, getDefinitionName(), getDefinitionVersion()); return null; @@ -684,9 +693,9 @@ file, getDefinitionName(), getDefinitionVersion(), VERSION_PLACEHOLDER_PATTERN_S } catch (IOException e) { - logger.debug("Ignoring BPMN model {} from process plugin {}-{}", file, getDefinitionName(), + logger.debug("Ignoring BPMN model {} of process plugin {}-{}", file, getDefinitionName(), getDefinitionVersion(), e); - logger.warn("Ignoring BPMN model {} from process plugin {}-{}: {} - {}", file, getDefinitionName(), + logger.warn("Ignoring BPMN model {} of process plugin {}-{}: {} - {}", file, getDefinitionName(), getDefinitionVersion(), e.getClass().getName(), e.getMessage()); return null; @@ -968,7 +977,7 @@ private Function<String, FileAndResource> loadFhirResourceOrNull(String localOrg { if (!file.endsWith(JSON_SUFFIX) && !file.endsWith(XML_SUFFIX)) { - logger.warn("Ignoring FHIR resource {} from process plugin {}-{}: Filename not ending in '{}' or '{}'", + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: Filename not ending in '{}' or '{}'", file, getDefinitionName(), getDefinitionVersion(), JSON_SUFFIX, XML_SUFFIX); return null; @@ -977,7 +986,7 @@ private Function<String, FileAndResource> loadFhirResourceOrNull(String localOrg String resourceDateValue = getDefinitionResourceReleaseDate().format(DATE_FORMAT); logger.debug( - "Reading FHIR resource {} from process plugin {}-{} and replacing all occurrences of {} with {}, {} with {} and {} with {}", + "Reading FHIR resource {} of process plugin {}-{} and replacing all occurrences of {} with {}, {} with {} and {} with {}", file, getDefinitionName(), getDefinitionVersion(), VERSION_PLACEHOLDER_PATTERN_STRING, getDefinitionResourceVersion(), DATE_PLACEHOLDER_PATTERN_STRING, resourceDateValue, ORGANIZATION_PLACEHOLDER_PATTERN_STRING, localOrganizationIdentifierValue); @@ -987,7 +996,7 @@ file, getDefinitionName(), getDefinitionVersion(), VERSION_PLACEHOLDER_PATTERN_S if (in == null) { logger.warn( - "Ignoring FHIR resource {} from process plugin {}-{}: Not readable, process plugin class loader getResourceAsStream returned null", + "Ignoring FHIR resource {} of process plugin {}-{}: Not readable, process plugin class loader getResourceAsStream returned null", file, getDefinitionName(), getDefinitionVersion()); return null; } @@ -1008,62 +1017,70 @@ file, getDefinitionName(), getDefinitionVersion(), VERSION_PLACEHOLDER_PATTERN_S if (fhirConfig.isActivityDefinition(resource)) { resource = fhirResourceModifier.modifyActivityDefinition(file, resource); + fhirConfig.modifyActivityDefinition(resource); if (isValidActivityDefinition(file, resource)) return FileAndResource.of(file, resource); } else if (fhirConfig.isCodeSystem(resource)) { resource = fhirResourceModifier.modifyCodeSystem(file, resource); + fhirConfig.modifyCodeSystem(resource); if (isValidCodeSystem(file, resource)) return FileAndResource.of(file, resource); } else if (fhirConfig.isLibrary(resource)) { resource = fhirResourceModifier.modifyLibrary(file, resource); + fhirConfig.modifyLibrary(resource); if (isValidLibrary(file, resource)) return FileAndResource.of(file, resource); } else if (fhirConfig.isMeasure(resource)) { resource = fhirResourceModifier.modifyMeasure(file, resource); + fhirConfig.modifyMeasure(resource); if (isValidMeasure(file, resource)) return FileAndResource.of(file, resource); } else if (fhirConfig.isNamingSystem(resource)) { resource = fhirResourceModifier.modifyNamingSystem(file, resource); + fhirConfig.modifyNamingSystem(resource); if (isValidNamingSystem(file, resource)) return FileAndResource.of(file, resource); } else if (fhirConfig.isQuestionnaire(resource)) { resource = fhirResourceModifier.modifyQuestionnaire(file, resource); + fhirConfig.modifyQuestionnaire(resource); if (isValidQuestionnaire(file, resource)) return FileAndResource.of(file, resource); } else if (fhirConfig.isStructureDefinition(resource)) { - resource = modifyBaseDefinitionIfTaskProfile(resource, file); resource = fhirResourceModifier.modifyStructureDefinition(file, resource); + fhirConfig.modifyStructureDefinition(resource); if (isValidStructureDefinition(file, resource)) return FileAndResource.of(file, resource); } else if (fhirConfig.isTask(resource)) { resource = fhirResourceModifier.modifyTask(file, resource); + // no modification if (isValidTask(file, resource, localOrganizationIdentifierValue)) return FileAndResource.of(file, resource); } else if (fhirConfig.isValueSet(resource)) { resource = fhirResourceModifier.modifyValueSet(file, resource); + fhirConfig.modifyValueSet(resource); if (isValidValueSet(file, resource)) return FileAndResource.of(file, resource); } else { logger.warn( - "Ignoring FHIR resource {} from process plugin {}-{}: Not a ActivityDefinition, CodeSystem, Library, Measure, NamingSystem, Questionnaire, StructureDefinition, Task or ValueSet", + "Ignoring FHIR resource {} of process plugin {}-{}: Not a ActivityDefinition, CodeSystem, Library, Measure, NamingSystem, Questionnaire, StructureDefinition, Task or ValueSet", file, getDefinitionName(), getDefinitionVersion()); } @@ -1071,9 +1088,9 @@ else if (fhirConfig.isValueSet(resource)) } catch (IOException e) { - logger.debug("Ignoring FHIR resource {} from process plugin {}-{}", file, getDefinitionName(), + logger.debug("Ignoring FHIR resource {} of process plugin {}-{}", file, getDefinitionName(), getDefinitionVersion(), e); - logger.warn("Ignoring FHIR resource {} from process plugin {}-{}: {} - {}", file, getDefinitionName(), + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: {} - {}", file, getDefinitionName(), getDefinitionVersion(), e.getClass().getName(), e.getMessage()); return null; @@ -1090,18 +1107,18 @@ private boolean isValidMetadataResouce(Object resource, String file) if (!urlOk) { - logger.warn("Ignoring FHIR resource {} from process plugin {}-{}: {}.url empty", file, getDefinitionName(), + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: {}.url empty", file, getDefinitionName(), getDefinitionVersion(), fhirConfig.getResourceName(resource).orElse("")); } if (!versionDefined) { - logger.warn("Ignoring FHIR resource {} from process plugin {}-{}: {}.version empty", file, + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: {}.version empty", file, getDefinitionName(), getDefinitionVersion(), fhirConfig.getResourceName(resource).orElse("")); } else if (!versionOk) { - logger.warn("Ignoring FHIR resource {} from process plugin {}-{}: {}.version not equal to {} but {}", file, + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: {}.version not equal to {} but {}", file, getDefinitionName(), getDefinitionVersion(), fhirConfig.getResourceName(resource).orElse(""), getDefinitionResourceVersion(), fhirConfig.getMetadataResourceVersion(resource).orElse("")); } @@ -1109,87 +1126,120 @@ else if (!versionOk) return urlOk && versionOk; } + private boolean hasProfile(String file, Object resource, String profile) + { + List<String> profiles = fhirConfig.getProfiles(resource); + boolean profileOk = profiles.contains(profile); + + if (!profileOk) + { + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: {} not declared as profile", file, + getDefinitionName(), getDefinitionVersion(), profile); + } + + return profileOk; + } + private boolean isValidActivityDefinition(String file, Object resource) { + boolean hasProfile = hasProfile(file, resource, P_ACTIVITY_DEFINITION); boolean metadataResourceOk = isValidMetadataResouce(resource, file); boolean urlOk = fhirConfig.getActivityDefinitionUrl(resource) .map(u -> ACTIVITY_DEFINITION_URL_PATTERN.matcher(u).matches()).orElse(false); if (!urlOk) { - logger.warn("Ignoring FHIR resource {} from process plugin {}-{}: ActivityDefinition.url not matching {}", + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: ActivityDefinition.url not matching {}", file, getDefinitionName(), getDefinitionVersion(), ACTIVITY_DEFINITION_URL_PATTERN_STRING); } - return metadataResourceOk && urlOk; + return hasProfile && metadataResourceOk && urlOk; } private boolean isValidCodeSystem(String file, Object resource) { - // TODO add additional validation steps - return isValidMetadataResouce(resource, file); + return hasProfile(file, resource, P_CODE_SYSTEM) && isValidMetadataResouce(resource, file); } private boolean isValidLibrary(String file, Object resource) { - // TODO add additional validation steps - return isValidMetadataResouce(resource, file); + return hasProfile(file, resource, P_LIBRARY) && isValidMetadataResouce(resource, file); } private boolean isValidMeasure(String file, Object resource) { - // TODO add additional validation steps - return isValidMetadataResouce(resource, file); + return hasProfile(file, resource, P_MEASURE) && isValidMetadataResouce(resource, file); } private boolean isValidNamingSystem(String file, Object resource) { + boolean hasProfile = hasProfile(file, resource, P_NAMING_SYSTEM); boolean nameOk = fhirConfig.hasNamingSystemName(resource); if (!nameOk) { - logger.warn("Ignoring FHIR resource {} from process plugin {}-{}: NamingSystem.name empty", file, + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: NamingSystem.name empty", file, getDefinitionName(), getDefinitionVersion()); } - return nameOk; + return hasProfile && nameOk; } private boolean isValidQuestionnaire(String file, Object resource) { - // TODO add additional validation steps - return isValidMetadataResouce(resource, file); - } - - private Object modifyBaseDefinitionIfTaskProfile(Object resource, String file) - { - Optional<String> baseDefinition = fhirConfig.getStructureDefinitionBaseDefinition(resource); - baseDefinition.filter(d -> STRUCTURE_DEFINITION_BASE_TASK_URL_V1.equals(d)).ifPresent(_ -> + boolean hasProfile = hasProfile(file, resource, P_QUESTIONNAIRE); + boolean hasQuestionnaireItemsWithRequired = fhirConfig.hasQuestionnaireItemsWithRequired(resource); + if (!hasQuestionnaireItemsWithRequired) { - logger.info( - "Setting StructureDefinition.baseDefinition to {} for FHIR resource {} from process plugin {}-{}", - STRUCTURE_DEFINITION_BASE_TASK_URL, file, getDefinitionName(), getDefinitionVersion()); - - fhirConfig.setStructureDefinitionBaseDefinition(resource, STRUCTURE_DEFINITION_BASE_TASK_URL); - }); + logger.warn( + "Ignoring FHIR resource {} of process plugin {}-{}: Questionnaire has Items without required property", + file, getDefinitionName(), getDefinitionVersion()); + } - return resource; + return hasProfile && hasQuestionnaireItemsWithRequired && isValidMetadataResouce(resource, file); } private boolean isValidStructureDefinition(String file, Object resource) { - // TODO add additional validation steps - return isValidMetadataResouce(resource, file); + boolean hasProfile = hasProfile(file, resource, P_STRUCTURE_DEFINITION); + boolean hasStructureDefinitionTaskDsfValueSetBindingsWithoutVersion = fhirConfig + .hasStructureDefinitionTaskDsfValueSetBindingsWithoutVersion(resource); + if (!hasStructureDefinitionTaskDsfValueSetBindingsWithoutVersion) + { + logger.warn( + "Ignoring FHIR resource {} of process plugin {}-{}: StructureDefinition has DSF ValueSet bindings with version", + file, getDefinitionName(), getDefinitionVersion()); + } + + Optional<String> baseDefinition = fhirConfig.getStructureDefinitionBaseDefinition(resource); + boolean baseDefinitionOk = baseDefinition.isEmpty() + || !baseDefinition.map(d -> BD_TASK_BASE.equals(d) || BD_TASK_BASE_1_0_0.equals(d)).get(); + if (!baseDefinitionOk) + { + logger.warn( + "Ignoring FHIR resource {} of process plugin {}-{}: StructureDefinition.baseDefinition {} not allowed", + file, getDefinitionName(), getDefinitionVersion(), baseDefinition.get()); + } + + return hasProfile && hasStructureDefinitionTaskDsfValueSetBindingsWithoutVersion && baseDefinitionOk + && isValidMetadataResouce(resource, file); } private boolean isValidTask(String file, Object resource, String localOrganizationIdentifierValue) { + boolean profileOk = !fhirConfig.getProfiles(resource).isEmpty(); + if (!profileOk) + { + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: No profile specified", file, + getDefinitionName(), getDefinitionVersion()); + } + Optional<ProcessPluginFhirConfig.Identifier> identifier = fhirConfig.getTaskIdentifier(resource); boolean identifierOk = false; if (identifier.isEmpty()) { - logger.warn("Ignoring FHIR resource {} from process plugin {}-{}: No Task.identifier with system '{}'", - file, getDefinitionName(), getDefinitionVersion(), fhirConfig.getTaskIdentifierSid()); + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: No Task.identifier with system '{}'", file, + getDefinitionName(), getDefinitionVersion(), fhirConfig.getTaskIdentifierSid()); } else { @@ -1199,7 +1249,7 @@ private boolean isValidTask(String file, Object resource, String localOrganizati if (!identifierOk) logger.warn( - "Ignoring FHIR resource {} from process plugin {}-{}: No Task.identifier with system '{}' and value, or value contains | character", + "Ignoring FHIR resource {} of process plugin {}-{}: No Task.identifier with system '{}' and value, or value contains | character", file, getDefinitionName(), getDefinitionVersion(), fhirConfig.getTaskIdentifierSid()); // Additional checks see instantiatesCanonicalMatchesProcessIdAndIdentifierValid(...) } @@ -1207,14 +1257,14 @@ private boolean isValidTask(String file, Object resource, String localOrganizati boolean statusOk = fhirConfig.isTaskStatusDraft(resource); if (!statusOk) { - logger.warn("Ignoring FHIR resource {} from process plugin {}-{}: Task.status not '{}'", file, + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: Task.status not '{}'", file, getDefinitionName(), getDefinitionVersion(), fhirConfig.getTaskStatusDraftCode()); } boolean requesterOk = false; if (fhirConfig.getTaskRequester(resource).isEmpty()) { - logger.warn("Ignoring FHIR resource {} from process plugin {}-{}: Task.requester not defined", file, + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: Task.requester not defined", file, getDefinitionName(), getDefinitionVersion()); } else @@ -1226,7 +1276,7 @@ private boolean isValidTask(String file, Object resource, String localOrganizati boolean recipientOk = false; if (fhirConfig.getTaskRecipient(resource).isEmpty()) { - logger.warn("Ignoring FHIR resource {} from process plugin {}-{}: Task.restriction.recipient not defined", + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: Task.restriction.recipient not defined", file, getDefinitionName(), getDefinitionVersion()); } else @@ -1239,8 +1289,7 @@ private boolean isValidTask(String file, Object resource, String localOrganizati .map(ic -> INSTANTIATES_CANONICAL_PATTERN.matcher(ic).matches()).orElse(false); if (!instantiatesCanonicalOk) { - logger.warn( - "Ignoring FHIR resource {} from process plugin {}-{}: Task.instantiatesCanonical not matching {}", + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: Task.instantiatesCanonical not matching {}", file, getDefinitionName(), getDefinitionVersion(), INSTANTIATES_CANONICAL_PATTERN_STRING); // Additional checks see instantiatesCanonicalMatchesProcessIdAndIdentifierValid(...) } @@ -1249,7 +1298,7 @@ private boolean isValidTask(String file, Object resource, String localOrganizati if (!fhirConfig.hasTaskInput(resource)) { logger.warn( - "Ignoring FHIR resource {} from process plugin {}-{}: Task.input empty, input parameter with {}|{} expected", + "Ignoring FHIR resource {} of process plugin {}-{}: Task.input empty, input parameter with {}|{} expected", file, getDefinitionName(), getDefinitionVersion(), fhirConfig.getTaskInputParameterMessageNameSystem(), fhirConfig.getTaskInputParameterMessageNameCode()); @@ -1259,7 +1308,7 @@ file, getDefinitionName(), getDefinitionVersion(), inputOk = fhirConfig.hasTaskInputMessageName(resource); if (!inputOk) logger.warn( - "Ignoring FHIR resource {} from process plugin {}-{}: One input parameter with {}|{} expected", + "Ignoring FHIR resource {} of process plugin {}-{}: One input parameter with {}|{} expected", file, getDefinitionName(), getDefinitionVersion(), fhirConfig.getTaskInputParameterMessageNameSystem(), fhirConfig.getTaskInputParameterMessageNameCode()); @@ -1268,12 +1317,12 @@ file, getDefinitionName(), getDefinitionVersion(), boolean outputOk = !fhirConfig.hasTaskOutput(resource); if (!outputOk) { - logger.warn("Ignoring FHIR resource {} from process plugin {}-{}: Task.output not empty", file, + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: Task.output not empty", file, getDefinitionName(), getDefinitionVersion()); } - // TODO add additional validation steps - return identifierOk && statusOk && requesterOk && recipientOk && instantiatesCanonicalOk && inputOk && outputOk; + return profileOk && identifierOk && statusOk && requesterOk && recipientOk && instantiatesCanonicalOk && inputOk + && outputOk; } private boolean isLocalOrganization(Reference reference, String refLocation, String file, @@ -1281,7 +1330,7 @@ private boolean isLocalOrganization(Reference reference, String refLocation, Str { if (localOrganizationIdentifierValue == null) { - logger.warn("Ignoring FHIR resource {} from process plugin {}-{}: Local organization identifier unknown", + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: Local organization identifier unknown", file, getDefinitionName(), getDefinitionVersion()); return false; } @@ -1294,18 +1343,18 @@ private boolean isLocalOrganization(Reference reference, String refLocation, Str if (!typeOk) { - logger.warn("Ignoring FHIR resource {} from process plugin {}-{}: Task.{}.type not '{}'", file, + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: Task.{}.type not '{}'", file, getDefinitionName(), getDefinitionVersion(), refLocation, ORGANIZATION_RESOURCE_TYPE_NAME); } if (!identifierSystemOk) { - logger.warn("Ignoring FHIR resource {} from process plugin {}-{}: Task.{}.identifier.system not '{}'", file, + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: Task.{}.identifier.system not '{}'", file, getDefinitionName(), getDefinitionVersion(), refLocation, fhirConfig.getOrganizationIdentifierSid()); } if (!identifierValueOk) { - logger.warn("Ignoring FHIR resource {} from process plugin {}-{}: Task.{}.identifier.value not '{}'", file, + logger.warn("Ignoring FHIR resource {} of process plugin {}-{}: Task.{}.identifier.value not '{}'", file, getDefinitionName(), getDefinitionVersion(), refLocation, localOrganizationIdentifierValue); } @@ -1314,8 +1363,7 @@ private boolean isLocalOrganization(Reference reference, String refLocation, Str private boolean isValidValueSet(String file, Object resource) { - // TODO add additional validation steps - return isValidMetadataResouce(resource, file); + return hasProfile(file, resource, P_VALUE_SET) && isValidMetadataResouce(resource, file); } private List<BpmnFileAndModel> filterBpmnModelsWithoutMatchingActivityDefinitions( @@ -1335,7 +1383,7 @@ private Predicate<BpmnFileAndModel> hasMatchingActivityDefinition( if (resources.isEmpty()) { logger.warn( - "Ignoring BPMN model {} from process plugin {}-{}: No FHIR metadata resources found for process-id '{}'", + "Ignoring BPMN model {} of process plugin {}-{}: No FHIR metadata resources found for process-id '{}'", model.file(), getDefinitionName(), getDefinitionVersion(), model.toProcessIdAndVersion().getId()); @@ -1348,7 +1396,7 @@ private Predicate<BpmnFileAndModel> hasMatchingActivityDefinition( if (definitions.size() != 1) { logger.warn( - "Ignoring BPMN model {} from process plugin {}-{}: No ActivityDefinition found for process-id '{}'", + "Ignoring BPMN model {} of process plugin {}-{}: No ActivityDefinition found for process-id '{}'", model.file(), getDefinitionName(), getDefinitionVersion(), model.toProcessIdAndVersion().getId()); @@ -1360,7 +1408,7 @@ private Predicate<BpmnFileAndModel> hasMatchingActivityDefinition( Matcher urlMatcher = ACTIVITY_DEFINITION_URL_PATTERN.matcher(url); if (!urlMatcher.matches()) throw new IllegalStateException("ActivityDefinition " + definitions.get(0).file() - + " from process plugin " + getDefinitionName() + "-" + getDefinitionVersion() + + " of process plugin " + getDefinitionName() + "-" + getDefinitionVersion() + " has url not matching " + ACTIVITY_DEFINITION_URL_PATTERN_STRING); String processDomain = urlMatcher.group("domain").replace(".", ""); @@ -1370,7 +1418,7 @@ private Predicate<BpmnFileAndModel> hasMatchingActivityDefinition( if (!processId.equals(processIdAndVersion.getId())) { logger.warn( - "Ignoring BPMN model {} from process plugin {}-{}: Found ActivityDefinition.url does not match process id (url: '{}' vs. process-id '{}')", + "Ignoring BPMN model {} of process plugin {}-{}: Found ActivityDefinition.url does not match process id (url: '{}' vs. process-id '{}')", model.file(), getDefinitionName(), getDefinitionVersion(), url, model.toProcessIdAndVersion().getId()); @@ -1423,7 +1471,7 @@ private boolean instantiatesCanonicalMatchesProcessIdAndIdentifierValid( if (!processIdOk) { logger.warn( - "Ignoring FHIR resource {} from process plugin {}-{} for process {}: Task.instantiatesCanonical does not match process id (instantiatesCanonical: '{}' vs. process-id '{}')", + "Ignoring FHIR resource {} of process plugin {}-{} for process {}: Task.instantiatesCanonical does not match process id (instantiatesCanonical: '{}' vs. process-id '{}')", fileAndResource.file(), getDefinitionName(), getDefinitionVersion(), expectedProcessIdAndVersion.getId(), instantiatesCanonical, expectedProcessIdAndVersion.getId()); @@ -1433,7 +1481,7 @@ private boolean instantiatesCanonicalMatchesProcessIdAndIdentifierValid( if (!processVersionOk) { logger.warn( - "Ignoring FHIR resource {} from process plugin {}-{} for process {}: Task.instantiatesCanonical|version does not match declared resource version (instantiatesCanonical: '{}' vs. resource-version '{}')", + "Ignoring FHIR resource {} of process plugin {}-{} for process {}: Task.instantiatesCanonical|version does not match declared resource version (instantiatesCanonical: '{}' vs. resource-version '{}')", fileAndResource.file(), getDefinitionName(), getDefinitionVersion(), expectedProcessIdAndVersion.getId(), instantiatesCanonical, expectedProcessIdAndVersion.getVersion()); @@ -1444,7 +1492,7 @@ private boolean instantiatesCanonicalMatchesProcessIdAndIdentifierValid( if (!identifierValueOk) { logger.warn( - "Ignoring FHIR resource {} from process plugin {}-{} for process {}: Task.identifier.value is invalid (identifier.value: '{}' not starting with '{}')", + "Ignoring FHIR resource {} of process plugin {}-{} for process {}: Task.identifier.value is invalid (identifier.value: '{}' not starting with '{}')", fileAndResource.file(), getDefinitionName(), getDefinitionVersion(), expectedProcessIdAndVersion.getId(), identifierValue, expectedIdentifierValueStart); } diff --git a/dsf-bpe/dsf-bpe-process-api/src/main/java/dev/dsf/bpe/api/plugin/ProcessPluginFhirConfig.java b/dsf-bpe/dsf-bpe-process-api/src/main/java/dev/dsf/bpe/api/plugin/ProcessPluginFhirConfig.java index 8cf90b059..4a2161777 100644 --- a/dsf-bpe/dsf-bpe-process-api/src/main/java/dev/dsf/bpe/api/plugin/ProcessPluginFhirConfig.java +++ b/dsf-bpe/dsf-bpe-process-api/src/main/java/dev/dsf/bpe/api/plugin/ProcessPluginFhirConfig.java @@ -1,12 +1,14 @@ package dev.dsf.bpe.api.plugin; +import java.util.List; import java.util.Optional; import java.util.function.BiConsumer; import java.util.function.BiFunction; +import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; -public final class ProcessPluginFhirConfig<A, C, L, M, N, Q, S, T, V> +public final class ProcessPluginFhirConfig<R, A, C, L, M, N, Q, S, T, V> { public static final record Identifier(Optional<String> system, Optional<String> value) { @@ -16,6 +18,7 @@ public static final record Reference(Optional<String> system, Optional<String> v { } + private final Class<R> resourceClass; private final Class<A> activityDefinitionClass; private final Class<C> codeSystemClass; private final Class<L> libraryClass; @@ -54,8 +57,22 @@ public static final record Reference(Optional<String> system, Optional<String> v private final Function<S, Optional<String>> getStructureDefinitionBaseDefinition; private final BiConsumer<S, String> setStructureDefinitionBaseDefinition; - public ProcessPluginFhirConfig(Class<A> activityDefinitionClass, Class<C> codeSystemClass, Class<L> libraryClass, - Class<M> measureClass, Class<N> namingSystemClass, Class<Q> questionnaireClass, + private final Function<R, List<String>> getProfiles; + + private final Consumer<A> modifyActivityDefinition; + private final Consumer<C> modifyCodeSystem; + private final Consumer<L> modifyLibrary; + private final Consumer<M> modifyMeasure; + private final Consumer<N> modifyNamingSystem; + private final Consumer<Q> modifyQuestionnaire; + private final Consumer<S> modifyStructureDefinition; + private final Consumer<V> modifyValueSet; + + private final Predicate<Q> hasQuestionnaireItemsWithRequired; + private final Predicate<S> hasStructureDefinitionTaskDsfValueSetBindingsWithoutVersion; + + public ProcessPluginFhirConfig(Class<R> resourceClass, Class<A> activityDefinitionClass, Class<C> codeSystemClass, + Class<L> libraryClass, Class<M> measureClass, Class<N> namingSystemClass, Class<Q> questionnaireClass, Class<S> structureDefinitionClass, Class<T> taskClass, Class<V> valueSetClass, String organizationIdentifierSid, String taskIdentifierSid, String taskStatusDraftCode, @@ -72,8 +89,18 @@ public ProcessPluginFhirConfig(Class<A> activityDefinitionClass, Class<C> codeSy Predicate<T> hasTaskInput, Predicate<T> hasTaskInputMessageName, Predicate<T> hasTaskOutput, Function<S, Optional<String>> getStructureDefinitionBaseDefinition, - BiConsumer<S, String> setStructureDefinitionBaseDefinition) + BiConsumer<S, String> setStructureDefinitionBaseDefinition, + + Function<R, List<String>> getProfiles, + + Consumer<A> modifyActivityDefinition, Consumer<C> modifyCodeSystem, Consumer<L> modifyLibrary, + Consumer<M> modifyMeasure, Consumer<N> modifyNamingSystem, Consumer<Q> modifyQuestionnaire, + Consumer<S> modifyStructureDefinition, Consumer<V> modifyValueSet, + + Predicate<Q> hasQuestionnaireItemsWithRequired, + Predicate<S> hasStructureDefinitionTaskDsfValueSetBindingsWithoutVersion) { + this.resourceClass = resourceClass; this.activityDefinitionClass = activityDefinitionClass; this.codeSystemClass = codeSystemClass; this.libraryClass = libraryClass; @@ -111,6 +138,20 @@ public ProcessPluginFhirConfig(Class<A> activityDefinitionClass, Class<C> codeSy this.getStructureDefinitionBaseDefinition = getStructureDefinitionBaseDefinition; this.setStructureDefinitionBaseDefinition = setStructureDefinitionBaseDefinition; + + this.getProfiles = getProfiles; + + this.modifyActivityDefinition = modifyActivityDefinition; + this.modifyCodeSystem = modifyCodeSystem; + this.modifyLibrary = modifyLibrary; + this.modifyMeasure = modifyMeasure; + this.modifyNamingSystem = modifyNamingSystem; + this.modifyQuestionnaire = modifyQuestionnaire; + this.modifyStructureDefinition = modifyStructureDefinition; + this.modifyValueSet = modifyValueSet; + + this.hasQuestionnaireItemsWithRequired = hasQuestionnaireItemsWithRequired; + this.hasStructureDefinitionTaskDsfValueSetBindingsWithoutVersion = hasStructureDefinitionTaskDsfValueSetBindingsWithoutVersion; } public String getOrganizationIdentifierSid() @@ -296,4 +337,77 @@ public void setStructureDefinitionBaseDefinition(Object resource, String value) if (isStructureDefinition(resource)) setStructureDefinitionBaseDefinition.accept(structureDefinitionClass.cast(resource), value); } + + public List<String> getProfiles(Object resource) + { + if (isResource(resource)) + return getProfiles.apply(resourceClass.cast(resource)); + else + return List.of(); + } + + public void modifyActivityDefinition(Object resource) + { + if (isActivityDefinition(resource)) + modifyActivityDefinition.accept(activityDefinitionClass.cast(resource)); + } + + public void modifyCodeSystem(Object resource) + { + if (isCodeSystem(resource)) + modifyCodeSystem.accept(codeSystemClass.cast(resource)); + } + + public void modifyLibrary(Object resource) + { + if (isLibrary(resource)) + modifyLibrary.accept(libraryClass.cast(resource)); + } + + public void modifyMeasure(Object resource) + { + if (isMeasure(resource)) + modifyMeasure.accept(measureClass.cast(resource)); + } + + public void modifyNamingSystem(Object resource) + { + if (isNamingSystem(resource)) + modifyNamingSystem.accept(namingSystemClass.cast(resource)); + } + + public void modifyQuestionnaire(Object resource) + { + if (isQuestionnaire(resource)) + modifyQuestionnaire.accept(questionnaireClass.cast(resource)); + } + + public void modifyStructureDefinition(Object resource) + { + if (isStructureDefinition(resource)) + modifyStructureDefinition.accept(structureDefinitionClass.cast(resource)); + } + + public void modifyValueSet(Object resource) + { + if (isValueSet(resource)) + modifyValueSet.accept(valueSetClass.cast(resource)); + } + + public boolean hasQuestionnaireItemsWithRequired(Object resource) + { + if (isQuestionnaire(resource)) + return hasQuestionnaireItemsWithRequired.test(questionnaireClass.cast(resource)); + else + return true; + } + + public boolean hasStructureDefinitionTaskDsfValueSetBindingsWithoutVersion(Object resource) + { + if (isStructureDefinition(resource)) + return hasStructureDefinitionTaskDsfValueSetBindingsWithoutVersion + .test(structureDefinitionClass.cast(resource)); + else + return true; + } } \ No newline at end of file From bdca3d8d835d6f910949b928cde2a14473efd7b7 Mon Sep 17 00:00:00 2001 From: Hauke Hund <hauke.hund@hs-heilbronn.de> Date: Wed, 29 Oct 2025 04:38:08 +0100 Subject: [PATCH 08/16] modification to be compliant with 2.0.0 profiles --- .../src/main/resources/fhir/ActivityDefinition/dsf-test.xml | 1 + .../src/main/resources/fhir/CodeSystem/dsf-test.xml | 1 + .../src/main/resources/fhir/Questionnaire/test.xml | 2 +- .../fhir/StructureDefinition/dsf-task-continue-send-test.xml | 3 ++- .../main/resources/fhir/StructureDefinition/dsf-task-test.xml | 3 ++- .../src/main/resources/fhir/ValueSet/dsf-test.xml | 1 + 6 files changed, 8 insertions(+), 3 deletions(-) diff --git a/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/ActivityDefinition/dsf-test.xml b/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/ActivityDefinition/dsf-test.xml index 714a864c9..27bd2470e 100644 --- a/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/ActivityDefinition/dsf-test.xml +++ b/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/ActivityDefinition/dsf-test.xml @@ -1,5 +1,6 @@ <ActivityDefinition xmlns="http://hl7.org/fhir"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/activity-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag"/> <code value="ALL"/> diff --git a/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/CodeSystem/dsf-test.xml b/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/CodeSystem/dsf-test.xml index ed9153da3..2dd60106b 100644 --- a/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/CodeSystem/dsf-test.xml +++ b/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/CodeSystem/dsf-test.xml @@ -1,5 +1,6 @@ <CodeSystem xmlns="http://hl7.org/fhir"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/code-system" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> diff --git a/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/Questionnaire/test.xml b/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/Questionnaire/test.xml index 9468b101d..073c694af 100644 --- a/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/Questionnaire/test.xml +++ b/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/Questionnaire/test.xml @@ -1,6 +1,6 @@ <Questionnaire xmlns="http://hl7.org/fhir"> <meta> - <profile value="http://dsf.dev/fhir/StructureDefinition/questionnaire|1.5.0" /> + <profile value="http://dsf.dev/fhir/StructureDefinition/questionnaire" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> diff --git a/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/StructureDefinition/dsf-task-continue-send-test.xml b/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/StructureDefinition/dsf-task-continue-send-test.xml index 2e5d28e67..43be6b1ca 100644 --- a/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/StructureDefinition/dsf-task-continue-send-test.xml +++ b/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/StructureDefinition/dsf-task-continue-send-test.xml @@ -1,5 +1,6 @@ <StructureDefinition xmlns="http://hl7.org/fhir"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -18,7 +19,7 @@ <kind value="resource" /> <abstract value="false" /> <type value="Task" /> - <baseDefinition value="http://dsf.dev/fhir/StructureDefinition/task-base" /> + <baseDefinition value="http://dsf.dev/fhir/StructureDefinition/task" /> <derivation value="constraint" /> <differential> <element id="Task.instantiatesUri"> diff --git a/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/StructureDefinition/dsf-task-test.xml b/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/StructureDefinition/dsf-task-test.xml index 3856429b5..20488b173 100644 --- a/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/StructureDefinition/dsf-task-test.xml +++ b/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/StructureDefinition/dsf-task-test.xml @@ -1,5 +1,6 @@ <StructureDefinition xmlns="http://hl7.org/fhir"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/structure-definition" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> @@ -18,7 +19,7 @@ <kind value="resource" /> <abstract value="false" /> <type value="Task" /> - <baseDefinition value="http://dsf.dev/fhir/StructureDefinition/task-base" /> + <baseDefinition value="http://dsf.dev/fhir/StructureDefinition/task" /> <derivation value="constraint" /> <differential> <element id="Task.instantiatesUri"> diff --git a/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/ValueSet/dsf-test.xml b/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/ValueSet/dsf-test.xml index fa9d0bba0..21cae7e59 100644 --- a/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/ValueSet/dsf-test.xml +++ b/dsf-bpe/dsf-bpe-test-plugin-v2/src/main/resources/fhir/ValueSet/dsf-test.xml @@ -1,5 +1,6 @@ <ValueSet xmlns="http://hl7.org/fhir"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/value-set" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> From 754e8889d6e7b53f9b72f854f9db3ff68e1d0d7a Mon Sep 17 00:00:00 2001 From: Hauke Hund <hauke.hund@hs-heilbronn.de> Date: Wed, 29 Oct 2025 04:38:43 +0100 Subject: [PATCH 09/16] modification to check rewrite of old 1.0.0 profiles --- .../src/main/resources/fhir/ActivityDefinition/dsf-test.xml | 1 + .../src/main/resources/fhir/CodeSystem/dsf-test.xml | 1 + .../src/main/resources/fhir/ValueSet/dsf-test.xml | 1 + 3 files changed, 3 insertions(+) diff --git a/dsf-bpe/dsf-bpe-test-plugin-v1/src/main/resources/fhir/ActivityDefinition/dsf-test.xml b/dsf-bpe/dsf-bpe-test-plugin-v1/src/main/resources/fhir/ActivityDefinition/dsf-test.xml index 98139eeb8..c0ae1841c 100644 --- a/dsf-bpe/dsf-bpe-test-plugin-v1/src/main/resources/fhir/ActivityDefinition/dsf-test.xml +++ b/dsf-bpe/dsf-bpe-test-plugin-v1/src/main/resources/fhir/ActivityDefinition/dsf-test.xml @@ -1,5 +1,6 @@ <ActivityDefinition xmlns="http://hl7.org/fhir"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/activity-definition|1.0.0" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> diff --git a/dsf-bpe/dsf-bpe-test-plugin-v1/src/main/resources/fhir/CodeSystem/dsf-test.xml b/dsf-bpe/dsf-bpe-test-plugin-v1/src/main/resources/fhir/CodeSystem/dsf-test.xml index ed9153da3..13c999643 100644 --- a/dsf-bpe/dsf-bpe-test-plugin-v1/src/main/resources/fhir/CodeSystem/dsf-test.xml +++ b/dsf-bpe/dsf-bpe-test-plugin-v1/src/main/resources/fhir/CodeSystem/dsf-test.xml @@ -1,5 +1,6 @@ <CodeSystem xmlns="http://hl7.org/fhir"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/code-system|1.0.0" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> diff --git a/dsf-bpe/dsf-bpe-test-plugin-v1/src/main/resources/fhir/ValueSet/dsf-test.xml b/dsf-bpe/dsf-bpe-test-plugin-v1/src/main/resources/fhir/ValueSet/dsf-test.xml index fa9d0bba0..a3a84f406 100644 --- a/dsf-bpe/dsf-bpe-test-plugin-v1/src/main/resources/fhir/ValueSet/dsf-test.xml +++ b/dsf-bpe/dsf-bpe-test-plugin-v1/src/main/resources/fhir/ValueSet/dsf-test.xml @@ -1,5 +1,6 @@ <ValueSet xmlns="http://hl7.org/fhir"> <meta> + <profile value="http://dsf.dev/fhir/StructureDefinition/value-set|1.0.0" /> <tag> <system value="http://dsf.dev/fhir/CodeSystem/read-access-tag" /> <code value="ALL" /> From 3aead3eed00b6cfe247d5f2dbe3d30c5e512379d Mon Sep 17 00:00:00 2001 From: Hauke Hund <hauke.hund@hs-heilbronn.de> Date: Wed, 29 Oct 2025 21:27:32 +0100 Subject: [PATCH 10/16] enforced default profiles, fixed tests, improved ConformanceService - Default profiles are now enforce during create and update operations (single resources and via transaction/batch bundle). - DefaultProfileProvider is used to add a default DSF profile to a new or to be updated resource if the resource does not already declare a profile supported as on of the default profiles. Some exceptions: Since we do not have a default (non abstract) profile for Task resources, no profile is added. But Task resource will need to have a specialized profile declared to make it past the authorization rule. For Organization resources, the member organization profile is considered the default, parent organizations are allowed if the .../organization-parent profile is self declared. The parent profile is considered a "secondary" default profile. Not added by default, but no other will be enforced if self declared. - Fixed integration tests, where non valid resources where used. - Improved ConformanceService: The CapabilityStatement resource now declared DSF profiles as the rest.resource.profile property the the exception of Task, still declaring the FHIR base profile. The parent organization profile is declared as a rest.resource.supportedProfile same is true for Task profiles from process plugins. --- .../dsf/fhir/dao/command/CommandFactory.java | 5 +- .../fhir/dao/command/CommandFactoryImpl.java | 54 +++++---- .../dsf/fhir/dao/command/CreateCommand.java | 7 +- .../CreateStructureDefinitionCommand.java | 6 +- .../dsf/fhir/dao/command/UpdateCommand.java | 8 +- .../UpdateStructureDefinitionCommand.java | 6 +- .../fhir/service/DefaultProfileProvider.java | 44 ++++++++ .../service/DefaultProfileProviderImpl.java | 104 ++++++++++++++++++ .../dsf/fhir/service/InitialDataLoader.java | 2 +- .../fhir/service/InitialDataLoaderImpl.java | 4 +- .../config/InitialDataLoaderConfig.java | 5 +- .../fhir/spring/config/ValidationConfig.java | 8 ++ .../fhir/spring/config/WebserviceConfig.java | 57 +++++----- .../impl/ConformanceServiceImpl.java | 29 ++++- .../fhir/webservice/impl/RootServiceImpl.java | 12 +- .../secure/AbstractResourceServiceSecure.java | 9 +- .../ActivityDefinitionServiceSecure.java | 5 +- .../secure/BinaryServiceSecure.java | 6 +- .../secure/BundleServiceSecure.java | 6 +- .../secure/CodeSystemServiceSecure.java | 6 +- .../DocumentReferenceServiceSecure.java | 5 +- .../secure/EndpointServiceSecure.java | 5 +- .../webservice/secure/GroupServiceSecure.java | 5 +- .../HealthcareServiceServiceSecure.java | 5 +- .../secure/LibraryServiceSecure.java | 5 +- .../secure/LocationServiceSecure.java | 5 +- .../secure/MeasureReportServiceSecure.java | 5 +- .../secure/MeasureServiceSecure.java | 5 +- .../secure/NamingSystemServiceSecure.java | 5 +- .../OrganizationAffiliationServiceSecure.java | 5 +- .../secure/OrganizationServiceSecure.java | 5 +- .../secure/PatientServiceSecure.java | 5 +- .../secure/PractitionerRoleServiceSecure.java | 5 +- .../secure/PractitionerServiceSecure.java | 5 +- .../secure/ProvenanceServiceSecure.java | 5 +- .../QuestionnaireResponseServiceSecure.java | 5 +- .../secure/QuestionnaireServiceSecure.java | 6 +- .../secure/ResearchStudyServiceSecure.java | 6 +- .../StructureDefinitionServiceSecure.java | 5 +- .../secure/SubscriptionServiceSecure.java | 5 +- .../webservice/secure/TaskServiceSecure.java | 5 +- .../secure/ValueSetServiceSecure.java | 5 +- .../integration/BundleIntegrationTest.java | 2 + .../integration/EndpointIntegrationTest.java | 21 ++-- .../ParallelCreateIntegrationTest.java | 20 +++- 45 files changed, 399 insertions(+), 139 deletions(-) create mode 100644 dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/DefaultProfileProvider.java create mode 100644 dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/DefaultProfileProviderImpl.java diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactory.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactory.java index a19492eb6..0cb4d8994 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactory.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactory.java @@ -6,6 +6,7 @@ import dev.dsf.fhir.dao.exception.BadBundleException; import dev.dsf.fhir.prefer.PreferHandlingType; import dev.dsf.fhir.prefer.PreferReturnType; +import dev.dsf.fhir.service.DefaultProfileProvider; public interface CommandFactory { @@ -18,11 +19,13 @@ public interface CommandFactory * not <code>null</code> * @param handlingType * not <code>null</code> + * @param defaultProfileProvider + * not <code>null</code> * * @return {@link CommandList} with individual commands from each entry contained in the bundle * @throws BadBundleException * if the bundle could not be processed because of wrong bundle type or other errors */ CommandList createCommands(Bundle bundle, Identity identity, PreferReturnType returnType, - PreferHandlingType handlingType) throws BadBundleException; + PreferHandlingType handlingType, DefaultProfileProvider defaultProfileProvider) throws BadBundleException; } \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactoryImpl.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactoryImpl.java index 5fe44b4b9..ba936b34c 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactoryImpl.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactoryImpl.java @@ -30,6 +30,7 @@ import dev.dsf.fhir.help.ResponseGenerator; import dev.dsf.fhir.prefer.PreferHandlingType; import dev.dsf.fhir.prefer.PreferReturnType; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -131,7 +132,7 @@ private Command get(int index, Identity identity, PreferReturnType returnType, B // create, conditional create private <R extends Resource> Command post(int index, Identity identity, PreferReturnType returnType, Bundle bundle, - BundleEntryComponent entry, R resource) + BundleEntryComponent entry, R resource, DefaultProfileProvider defaultProfileProvider) { if (resource.getResourceType().name().equals(entry.getRequest().getUrl())) { @@ -143,11 +144,13 @@ private <R extends Resource> Command post(int index, Identity identity, PreferRe return new CreateStructureDefinitionCommand(index, identity, returnType, bundle, entry, serverBase, authorizationHelper, s, (StructureDefinitionDao) dao.get(), exceptionHandler, parameterConverter, responseGenerator, referenceExtractor, referenceResolver, referenceCleaner, - eventGenerator, daoProvider.getStructureDefinitionSnapshotDao()); + eventGenerator, defaultProfileProvider, daoProvider.getStructureDefinitionSnapshotDao()); else - return dao.map(d -> new CreateCommand<>(index, identity, returnType, bundle, entry, serverBase, - authorizationHelper, resource, d, exceptionHandler, parameterConverter, responseGenerator, - referenceExtractor, referenceResolver, referenceCleaner, eventGenerator)) + return dao + .map(d -> new CreateCommand<>(index, identity, returnType, bundle, entry, serverBase, + authorizationHelper, resource, d, exceptionHandler, parameterConverter, + responseGenerator, referenceExtractor, referenceResolver, referenceCleaner, + eventGenerator, defaultProfileProvider)) .orElseThrow(() -> new IllegalStateException( "Resource of type " + resource.getClass().getName() + " not supported")); } @@ -158,7 +161,7 @@ private <R extends Resource> Command post(int index, Identity identity, PreferRe // update, conditional update private <R extends Resource> Command put(int index, Identity identity, PreferReturnType returnType, Bundle bundle, - BundleEntryComponent entry, R resource) + BundleEntryComponent entry, R resource, DefaultProfileProvider defaultProfileProvider) { if (entry.getRequest().getUrl() != null && !entry.getRequest().getUrl().isBlank() && entry.getRequest().getUrl().startsWith(resource.getResourceType().name())) @@ -171,11 +174,13 @@ private <R extends Resource> Command put(int index, Identity identity, PreferRet return new UpdateStructureDefinitionCommand(index, identity, returnType, bundle, entry, serverBase, authorizationHelper, s, (StructureDefinitionDao) dao.get(), exceptionHandler, parameterConverter, responseGenerator, referenceExtractor, referenceResolver, referenceCleaner, - eventGenerator, daoProvider.getStructureDefinitionSnapshotDao()); + eventGenerator, defaultProfileProvider, daoProvider.getStructureDefinitionSnapshotDao()); else - return dao.map(d -> new UpdateCommand<>(index, identity, returnType, bundle, entry, serverBase, - authorizationHelper, resource, d, exceptionHandler, parameterConverter, responseGenerator, - referenceExtractor, referenceResolver, referenceCleaner, eventGenerator)) + return dao + .map(d -> new UpdateCommand<>(index, identity, returnType, bundle, entry, serverBase, + authorizationHelper, resource, d, exceptionHandler, parameterConverter, + responseGenerator, referenceExtractor, referenceResolver, referenceCleaner, + eventGenerator, defaultProfileProvider)) .orElseThrow(() -> new IllegalStateException( "Resource of type " + resource.getClass().getName() + " not supported")); } @@ -205,25 +210,26 @@ private Command delete(int index, Identity identity, PreferReturnType returnType @Override public CommandList createCommands(Bundle bundle, Identity identity, PreferReturnType returnType, - PreferHandlingType handlingType) throws BadBundleException + PreferHandlingType handlingType, DefaultProfileProvider defaultProfileProvider) throws BadBundleException { Objects.requireNonNull(bundle, "bundle"); Objects.requireNonNull(identity, "identity"); Objects.requireNonNull(returnType, "returnType"); Objects.requireNonNull(handlingType, "handlingType"); + Objects.requireNonNull(defaultProfileProvider, "defaultProfileProvider"); if (bundle.getType() != null) { - List<Command> commands = IntStream - .range(0, bundle.getEntry().size()).mapToObj(index -> createCommand(index, identity, returnType, - handlingType, bundle, bundle.getEntry().get(index))) + List<Command> commands = IntStream.range(0, bundle.getEntry().size()) + .mapToObj(index -> createCommand(index, identity, returnType, handlingType, bundle, + bundle.getEntry().get(index), defaultProfileProvider)) .flatMap(Function.identity()).collect(Collectors.toList()); return switch (bundle.getType()) { - case BATCH -> - new BatchCommandList(dataSource, permanentDeleteDataSource, dbUsersGroup, exceptionHandler, - commands, validationHelper, snapshotGenerator, eventHandler, responseGenerator); + case BATCH -> new BatchCommandList(dataSource, permanentDeleteDataSource, dbUsersGroup, + exceptionHandler, commands, validationHelper, snapshotGenerator, eventHandler, + responseGenerator); case TRANSACTION -> new TransactionCommandList(dataSource, permanentDeleteDataSource, dbUsersGroup, exceptionHandler, commands, transactionResourcesFactory, responseGenerator); @@ -236,7 +242,8 @@ public CommandList createCommands(Bundle bundle, Identity identity, PreferReturn } protected Stream<Command> createCommand(int index, Identity identity, PreferReturnType returnType, - PreferHandlingType handlingType, Bundle bundle, BundleEntryComponent entry) + PreferHandlingType handlingType, Bundle bundle, BundleEntryComponent entry, + DefaultProfileProvider defaultProfileProvider) { if (entry.hasRequest() && entry.getRequest().hasMethod()) { @@ -256,11 +263,14 @@ protected Stream<Command> createCommand(int index, Identity identity, PreferRetu { return switch (entry.getRequest().getMethod()) { - case POST -> - resolveReferences(post(index, identity, returnType, bundle, entry, entry.getResource()), index, - identity, returnType, bundle, entry, entry.getResource(), HTTPVerb.POST); + case POST -> resolveReferences( + post(index, identity, returnType, bundle, entry, entry.getResource(), + defaultProfileProvider), + index, identity, returnType, bundle, entry, entry.getResource(), HTTPVerb.POST); - case PUT -> resolveReferences(put(index, identity, returnType, bundle, entry, entry.getResource()), + case PUT -> resolveReferences( + put(index, identity, returnType, bundle, entry, entry.getResource(), + defaultProfileProvider), index, identity, returnType, bundle, entry, entry.getResource(), HTTPVerb.PUT); default -> throw new BadBundleException("Request method " + entry.getRequest().getMethod() diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CreateCommand.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CreateCommand.java index dad71d308..16376d1ea 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CreateCommand.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CreateCommand.java @@ -39,6 +39,7 @@ import dev.dsf.fhir.search.PartialResult; import dev.dsf.fhir.search.SearchQuery; import dev.dsf.fhir.search.SearchQueryParameterError; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -57,6 +58,7 @@ public class CreateCommand<R extends Resource, D extends ResourceDao<R>> extends protected final ResponseGenerator responseGenerator; protected final ReferenceCleaner referenceCleaner; protected final EventGenerator eventGenerator; + protected final DefaultProfileProvider defaultProfileProvider; protected R createdResource; protected Response responseResult; @@ -66,7 +68,8 @@ public CreateCommand(int index, Identity identity, PreferReturnType returnType, BundleEntryComponent entry, String serverBase, AuthorizationHelper authorizationHelper, R resource, D dao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, ResponseGenerator responseGenerator, ReferenceExtractor referenceExtractor, - ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, EventGenerator eventGenerator) + ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, EventGenerator eventGenerator, + DefaultProfileProvider defaultProfileProvider) { super(2, index, identity, returnType, bundle, entry, serverBase, authorizationHelper, resource, dao, exceptionHandler, parameterConverter, responseGenerator, referenceExtractor, referenceResolver); @@ -75,6 +78,7 @@ public CreateCommand(int index, Identity identity, PreferReturnType returnType, this.referenceCleaner = referenceCleaner; this.eventGenerator = eventGenerator; + this.defaultProfileProvider = defaultProfileProvider; } @Override @@ -149,6 +153,7 @@ public void execute(Map<String, IdType> idTranslationTable, LargeObjectManager l { responseResult = null; + defaultProfileProvider.setDefaultProfile(resource); validationResult = validationHelper.checkResourceValidForCreate(identity, resource); referencesHelper.resolveLogicalReferences(connection); diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CreateStructureDefinitionCommand.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CreateStructureDefinitionCommand.java index 6ba789a71..69bc14ba3 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CreateStructureDefinitionCommand.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CreateStructureDefinitionCommand.java @@ -22,6 +22,7 @@ import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; import dev.dsf.fhir.prefer.PreferReturnType; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -44,11 +45,12 @@ public CreateStructureDefinitionCommand(int index, Identity identity, PreferRetu StructureDefinition resource, StructureDefinitionDao dao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, ResponseGenerator responseGenerator, ReferenceExtractor referenceExtractor, ReferenceResolver referenceResolver, - ReferenceCleaner referenceCleaner, EventGenerator eventGenerator, StructureDefinitionDao snapshotDao) + ReferenceCleaner referenceCleaner, EventGenerator eventGenerator, + DefaultProfileProvider defaultProfileProvider, StructureDefinitionDao snapshotDao) { super(index, identity, returnType, bundle, entry, serverBase, authorizationHelper, resource, dao, exceptionHandler, parameterConverter, responseGenerator, referenceExtractor, referenceResolver, - referenceCleaner, eventGenerator); + referenceCleaner, eventGenerator, defaultProfileProvider); this.snapshotDao = snapshotDao; } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/UpdateCommand.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/UpdateCommand.java index b10b220fd..a8659e833 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/UpdateCommand.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/UpdateCommand.java @@ -41,6 +41,7 @@ import dev.dsf.fhir.search.PartialResult; import dev.dsf.fhir.search.SearchQuery; import dev.dsf.fhir.search.SearchQueryParameterError; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -60,15 +61,18 @@ public class UpdateCommand<R extends Resource, D extends ResourceDao<R>> extends protected final ResponseGenerator responseGenerator; protected final ReferenceCleaner referenceCleaner; protected final EventGenerator eventGenerator; + protected final DefaultProfileProvider defaultProfileProvider; protected R updatedResource; protected ValidationResult validationResult; + public UpdateCommand(int index, Identity identity, PreferReturnType returnType, Bundle bundle, BundleEntryComponent entry, String serverBase, AuthorizationHelper authorizationHelper, R resource, D dao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, ResponseGenerator responseGenerator, ReferenceExtractor referenceExtractor, - ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, EventGenerator eventGenerator) + ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, EventGenerator eventGenerator, + DefaultProfileProvider defaultProfileProvider) { super(3, index, identity, returnType, bundle, entry, serverBase, authorizationHelper, resource, dao, exceptionHandler, parameterConverter, responseGenerator, referenceExtractor, referenceResolver); @@ -77,6 +81,7 @@ public UpdateCommand(int index, Identity identity, PreferReturnType returnType, this.referenceCleaner = referenceCleaner; this.eventGenerator = eventGenerator; + this.defaultProfileProvider = defaultProfileProvider; } @Override @@ -344,6 +349,7 @@ private void checkUpdateAllowed(Map<String, IdType> idTranslationTable, Connecti referencesHelper.resolveTemporaryAndConditionalReferencesOrLiteralInternalRelatedArtifactOrAttachmentUrls( idTranslationTable, connection); + defaultProfileProvider.setDefaultProfile(newResource); validationResult = validationHelper.checkResourceValidForUpdate(identity, resource); referencesHelper.resolveLogicalReferences(connection); diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/UpdateStructureDefinitionCommand.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/UpdateStructureDefinitionCommand.java index ceb6fcbf0..333811aef 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/UpdateStructureDefinitionCommand.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/UpdateStructureDefinitionCommand.java @@ -25,6 +25,7 @@ import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; import dev.dsf.fhir.prefer.PreferReturnType; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -48,11 +49,12 @@ public UpdateStructureDefinitionCommand(int index, Identity identity, PreferRetu StructureDefinition resource, StructureDefinitionDao dao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, ResponseGenerator responseGenerator, ReferenceExtractor referenceExtractor, ReferenceResolver referenceResolver, - ReferenceCleaner referenceCleaner, EventGenerator eventGenerator, StructureDefinitionDao snapshotDao) + ReferenceCleaner referenceCleaner, EventGenerator eventGenerator, + DefaultProfileProvider defaultProfileProvider, StructureDefinitionDao snapshotDao) { super(index, identity, returnType, bundle, entry, serverBase, authorizationHelper, resource, dao, exceptionHandler, parameterConverter, responseGenerator, referenceExtractor, referenceResolver, - referenceCleaner, eventGenerator); + referenceCleaner, eventGenerator, defaultProfileProvider); this.snapshotDao = snapshotDao; } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/DefaultProfileProvider.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/DefaultProfileProvider.java new file mode 100644 index 000000000..228a90c4f --- /dev/null +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/DefaultProfileProvider.java @@ -0,0 +1,44 @@ +package dev.dsf.fhir.service; + +import java.util.List; +import java.util.Optional; + +import org.hl7.fhir.r4.model.Resource; +import org.hl7.fhir.r4.model.ResourceType; + +public interface DefaultProfileProvider +{ + /** + * Set the default profile if non of the {@link #getSupportedDefaultProfiles(ResourceType)} are already set.<br> + * <br> + * Does nothing if the given resource is <code>null</code> + * + * @param resource + * may be <code>null</code> + */ + void setDefaultProfile(Resource resource); + + /** + * @param resourceType + * may be <code>null</code> + * @return {@link Optional#empty()} if no default profile for the given <b>resourceTyp</b> or <b>resourceTyp</b> + * <code>null</code> + */ + Optional<String> getDefaultProfile(ResourceType resourceType); + + /** + * @param resourceType + * may be <code>null</code> + * @return all supported default profiles, only the default profile or default profile and secondary default + * profiles, empty if <b>resourceType</b> is <code>null</code> + */ + List<String> getSupportedDefaultProfiles(ResourceType resourceType); + + /** + * @param resourceType + * may be <code>null</code> + * @return all supported default profiles except the default profile, empty if <b>resourceType</b> is + * <code>null</code> + */ + List<String> getSecondaryDefaultProfiles(ResourceType resourceType); +} diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/DefaultProfileProviderImpl.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/DefaultProfileProviderImpl.java new file mode 100644 index 000000000..caca25726 --- /dev/null +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/DefaultProfileProviderImpl.java @@ -0,0 +1,104 @@ +package dev.dsf.fhir.service; + +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.stream.Stream; + +import org.hl7.fhir.r4.model.CanonicalType; +import org.hl7.fhir.r4.model.Resource; +import org.hl7.fhir.r4.model.ResourceType; + +public enum DefaultProfileProviderImpl implements DefaultProfileProvider +{ + ENABLED + { + @Override + public void setDefaultProfile(Resource resource) + { + if (resource != null) + { + ResourceType resourceType = resource.getResourceType(); + + List<String> oldProfiles = resource.getMeta().getProfile().stream().filter(CanonicalType::hasValue) + .map(CanonicalType::getValue).toList(); + + List<String> supportedDefaultProfiles = getSupportedDefaultProfiles(resourceType); + + if (Collections.disjoint(oldProfiles, supportedDefaultProfiles)) + { + List<CanonicalType> newProfiles = Stream + .concat(getDefaultProfile(resourceType).stream(), oldProfiles.stream()) + .filter(Objects::nonNull).distinct().map(CanonicalType::new).toList(); + + resource.getMeta().setProfile(newProfiles); + } + } + } + }, + DISABLED + { + @Override + public void setDefaultProfile(Resource resource) + { + } + }; + + @Override + public Optional<String> getDefaultProfile(ResourceType resourceType) + { + String name = switch (resourceType) + { + case ActivityDefinition -> "activity-definition"; + case Binary -> "binary"; + case Bundle -> "bundle"; + case CodeSystem -> "code-system"; + case DocumentReference -> "document-reference"; + case Endpoint -> "endpoint"; + case Group -> "group"; + case HealthcareService -> "healthcare-service"; + case Library -> "library"; + case Location -> "location"; + case Measure -> "measure"; + case MeasureReport -> "measure-report"; + case NamingSystem -> "naming-system"; + case OrganizationAffiliation -> "organization-affiliation"; + case Organization -> "organization"; + case Patient -> "patient"; + case Practitioner -> "practitioner"; + case PractitionerRole -> "practitioner-role"; + case Provenance -> "provenance"; + case Questionnaire -> "questionnaire"; + case QuestionnaireResponse -> "questionnaire-response"; + case ResearchStudy -> "research-study"; + case StructureDefinition -> "structure-definition"; + case Subscription -> "subscription"; + case Task -> null; + case ValueSet -> "value-set"; + + default -> null; + }; + + return Optional.ofNullable(name).map("http://dsf.dev/fhir/StructureDefinition/"::concat); + } + + @Override + public List<String> getSupportedDefaultProfiles(ResourceType resourceType) + { + return Stream + .concat(getDefaultProfile(resourceType).stream(), getSecondaryDefaultProfiles(resourceType).stream()) + .toList(); + } + + @Override + public List<String> getSecondaryDefaultProfiles(ResourceType resourceType) + { + return switch (resourceType) + { + case Organization -> List.of("http://dsf.dev/fhir/StructureDefinition/organization-parent"); + + default -> List.of(); + }; + } +} diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/InitialDataLoader.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/InitialDataLoader.java index 931fc0d9f..8c396aa89 100644 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/InitialDataLoader.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/InitialDataLoader.java @@ -4,5 +4,5 @@ public interface InitialDataLoader { - void load(Bundle bundle); + void load(Bundle bundle, DefaultProfileProvider defaultProfileProvider); } \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/InitialDataLoaderImpl.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/InitialDataLoaderImpl.java index c092dc5b0..4a058e07a 100644 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/InitialDataLoaderImpl.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/InitialDataLoaderImpl.java @@ -50,7 +50,7 @@ public void afterPropertiesSet() throws Exception } @Override - public void load(Bundle bundle) + public void load(Bundle bundle, DefaultProfileProvider defaultProfileProvider) { if (bundle == null) { @@ -59,7 +59,7 @@ public void load(Bundle bundle) } CommandList commands = commandFactory.createCommands(bundle, INITIAL_DATA_LOADER, PreferReturnType.MINIMAL, - PreferHandlingType.STRICT); + PreferHandlingType.STRICT, defaultProfileProvider); logger.debug("Executing command list for bundle with {} entries", bundle.getEntry().size()); Bundle result = commands.execute(); result.getEntry().forEach(this::logResult); diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/InitialDataLoaderConfig.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/InitialDataLoaderConfig.java index f84649820..8d8e35375 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/InitialDataLoaderConfig.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/InitialDataLoaderConfig.java @@ -22,6 +22,7 @@ import org.springframework.core.annotation.Order; import ca.uhn.fhir.parser.IParser; +import dev.dsf.fhir.service.DefaultProfileProviderImpl; import dev.dsf.fhir.service.InitialDataLoader; import dev.dsf.fhir.service.InitialDataLoaderImpl; @@ -56,7 +57,7 @@ public void onContextRefreshedEvent(ContextRefreshedEvent event) throws IOExcept { logger.info("Loading data from JAR bundle ..."); Bundle bundle = parseXmlBundle(p -> p.parseResource(Bundle.class, fileIn)); - initialDataLoader().load(bundle); + initialDataLoader().load(bundle, DefaultProfileProviderImpl.DISABLED); } catch (Exception e) { @@ -75,7 +76,7 @@ public void onContextRefreshedEvent(ContextRefreshedEvent event) throws IOExcept logger.info("Loading data from external bundle ..."); Bundle bundle = parseXmlBundle(p -> p.parseResource(Bundle.class, resolved)); - initialDataLoader().load(bundle); + initialDataLoader().load(bundle, DefaultProfileProviderImpl.ENABLED); } catch (Exception e) { diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/ValidationConfig.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/ValidationConfig.java index f6d31540b..b227ab38f 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/ValidationConfig.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/ValidationConfig.java @@ -14,6 +14,8 @@ import ca.uhn.fhir.context.support.IValidationSupport; import dev.dsf.fhir.dao.command.ValidationHelper; import dev.dsf.fhir.dao.command.ValidationHelperImpl; +import dev.dsf.fhir.service.DefaultProfileProvider; +import dev.dsf.fhir.service.DefaultProfileProviderImpl; import dev.dsf.fhir.service.ValidationSupportWithCacheAndEventHandler; import dev.dsf.fhir.service.ValidationSupportWithFetchFromDb; import dev.dsf.fhir.service.ValidationSupportWithFetchFromDbWithTransaction; @@ -88,4 +90,10 @@ public IValidationSupport validationSupportWithTransaction(Connection connection return validationSupport.populateCache(validationSupport().fetchAllConformanceResources()); } + + @Bean + public DefaultProfileProvider defaultProfileProvider() + { + return DefaultProfileProviderImpl.ENABLED; + } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/WebserviceConfig.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/WebserviceConfig.java index 92cd3ef9d..a08ee9d69 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/WebserviceConfig.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/WebserviceConfig.java @@ -187,7 +187,7 @@ private ActivityDefinitionServiceSecure activityDefinitionServiceSecure() referenceConfig.referenceExtractor(), daoConfig.activityDefinitionDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.activityDefinitionAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private ActivityDefinitionServiceImpl activityDefinitionServiceImpl() @@ -216,7 +216,7 @@ private BinaryServiceSecure binaryServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.binaryDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.binaryAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private BinaryService binaryServiceImpl() @@ -243,7 +243,7 @@ private BundleServiceSecure bundleServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.bundleDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.bundleAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private BundleService bundleServiceImpl() @@ -270,7 +270,7 @@ private CodeSystemServiceSecure codeSystemServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.codeSystemDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.codeSystemAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private CodeSystemServiceImpl codeSystemServiceImpl() @@ -297,7 +297,8 @@ private DocumentReferenceServiceSecure documentReferenceServiceSecure() referenceConfig.referenceResolver(), referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.documentReferenceDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.documentReferenceAuthorizationRule(), - validationConfig.resourceValidator(), validationConfig.validationRules()); + validationConfig.resourceValidator(), validationConfig.validationRules(), + validationConfig.defaultProfileProvider()); } private DocumentReferenceServiceImpl documentReferenceServiceImpl() @@ -325,7 +326,7 @@ private EndpointServiceSecure endpointServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.endpointDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.endpointAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private EndpointServiceImpl endpointServiceImpl() @@ -352,7 +353,7 @@ private GroupServiceSecure groupServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.groupDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.groupAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private GroupServiceImpl groupServiceImpl() @@ -379,7 +380,8 @@ private HealthcareServiceServiceSecure healthcareServiceServiceSecure() referenceConfig.referenceResolver(), referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.healthcareServiceDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.healthcareServiceAuthorizationRule(), - validationConfig.resourceValidator(), validationConfig.validationRules()); + validationConfig.resourceValidator(), validationConfig.validationRules(), + validationConfig.defaultProfileProvider()); } private HealthcareServiceServiceImpl healthcareServiceServiceImpl() @@ -407,7 +409,7 @@ private LibraryServiceSecure libraryServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.libraryDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.libraryAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private LibraryServiceImpl libraryServiceImpl() @@ -434,7 +436,7 @@ private LocationServiceSecure locationServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.locationDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.locationAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private LocationServiceImpl locationServiceImpl() @@ -467,7 +469,7 @@ private MeasureServiceSecure measureServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.measureDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.measureAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private MeasureServiceImpl measureServiceImpl() @@ -494,7 +496,7 @@ private MeasureReportServiceSecure measureReportServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.measureReportDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.measureReportAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private MeasureReportServiceImpl measureReportServiceImpl() @@ -521,7 +523,7 @@ private NamingSystemServiceSecure namingSystemServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.namingSystemDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.namingSystemAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private NamingSystemService namingSystemServiceImpl() @@ -548,7 +550,7 @@ private OrganizationServiceSecure organizationServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.organizationDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.organizationAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private OrganizationServiceImpl organizationServiceImpl() @@ -576,7 +578,7 @@ private OrganizationAffiliationServiceSecure organizationAffiliationServiceSecur referenceConfig.referenceExtractor(), daoConfig.organizationAffiliationDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.organizationAffiliationAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private OrganizationAffiliationServiceImpl organizationAffiliationServiceImpl() @@ -604,7 +606,7 @@ private PatientServiceSecure patientServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.patientDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.patientAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private PatientServiceImpl patientServiceImpl() @@ -631,7 +633,7 @@ private PractitionerRoleServiceSecure practitionerRoleServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.practitionerRoleDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.practitionerRoleAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private PractitionerRoleServiceImpl practitionerRoleServiceImpl() @@ -659,7 +661,7 @@ private PractitionerServiceSecure practitionerServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.practitionerDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.practitionerAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private PractitionerServiceImpl practitionerServiceImpl() @@ -686,7 +688,7 @@ private ProvenanceServiceSecure provenanceServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.provenanceDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.provenanceAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private ProvenanceServiceImpl provenanceServiceImpl() @@ -713,7 +715,7 @@ private QuestionnaireServiceSecure questionnaireServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.questionnaireDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.questionnaireAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private QuestionnaireServiceImpl questionnaireServiceImpl() @@ -741,7 +743,7 @@ private QuestionnaireResponseServiceSecure questionnaireResponseServiceSecure() referenceConfig.referenceExtractor(), daoConfig.questionnaireResponseDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.questionnaireResponseAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private QuestionnaireResponseServiceImpl questionnaireResponseServiceImpl() @@ -769,7 +771,7 @@ private ResearchStudyServiceSecure researchStudyServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.researchStudyDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.researchStudyAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private ResearchStudyServiceImpl researchStudyServiceImpl() @@ -797,7 +799,7 @@ private StructureDefinitionServiceSecure structureDefinitionServiceSecure() referenceConfig.referenceExtractor(), daoConfig.structureDefinitionDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.structureDefinitionAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private StructureDefinitionServiceImpl structureDefinitionServiceImpl() @@ -825,7 +827,7 @@ private SubscriptionServiceSecure subscriptionServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.subscriptionDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.subscriptionAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private SubscriptionServiceImpl subscriptionServiceImpl() @@ -852,7 +854,7 @@ private TaskServiceSecure taskServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.taskDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.taskAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private TaskServiceImpl taskServiceImpl() @@ -879,7 +881,7 @@ private ValueSetServiceSecure valueSetServiceSecure() referenceConfig.referenceCleaner(), referenceConfig.referenceExtractor(), daoConfig.valueSetDao(), helperConfig.exceptionHandler(), helperConfig.parameterConverter(), authorizationConfig.valueSetAuthorizationRule(), validationConfig.resourceValidator(), - validationConfig.validationRules()); + validationConfig.validationRules(), validationConfig.defaultProfileProvider()); } private ValueSetServiceImpl valueSetServiceImpl() @@ -910,7 +912,7 @@ private RootServiceImpl rootServiceImpl() { return new RootServiceImpl(commandConfig.commandFactory(), helperConfig.responseGenerator(), helperConfig.parameterConverter(), helperConfig.exceptionHandler(), referenceConfig.referenceCleaner(), - historyConfig.historyService()); + historyConfig.historyService(), validationConfig.defaultProfileProvider()); } @Bean @@ -930,6 +932,7 @@ private ConformanceServiceImpl conformanceServiceImpl() return new ConformanceServiceImpl(propertiesConfig.getDsfServerBaseUrl(), propertiesConfig.getDefaultPageCount(), buildInfoReaderConfig.buildInfoReader(), helperConfig.parameterConverter(), validationConfig.validationSupport(), + validationConfig.defaultProfileProvider(), propertiesConfig.getOidcAuthorizationCodeFlowEnabled() || propertiesConfig.getOidcBearerTokenEnabled()); } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/impl/ConformanceServiceImpl.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/impl/ConformanceServiceImpl.java index 28694c3c2..342161538 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/impl/ConformanceServiceImpl.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/impl/ConformanceServiceImpl.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Optional; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -57,6 +58,7 @@ import org.hl7.fhir.r4.model.QuestionnaireResponse; import org.hl7.fhir.r4.model.ResearchStudy; import org.hl7.fhir.r4.model.Resource; +import org.hl7.fhir.r4.model.ResourceType; import org.hl7.fhir.r4.model.StringType; import org.hl7.fhir.r4.model.StructureDefinition; import org.hl7.fhir.r4.model.StructureDefinition.StructureDefinitionKind; @@ -83,6 +85,7 @@ import dev.dsf.fhir.search.parameters.rev.include.OrganizationAffiliationPrimaryOrganizationRevInclude; import dev.dsf.fhir.search.parameters.rev.include.OrganizationEndpointRevInclude; import dev.dsf.fhir.search.parameters.rev.include.ResearchStudyEnrollmentRevInclude; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.webservice.base.AbstractBasicService; import dev.dsf.fhir.webservice.specification.ConformanceService; import dev.dsf.fhir.websocket.ServerEndpoint; @@ -144,17 +147,20 @@ public int compareTo(StructureDefinitionDistinctByUrl o) private final BuildInfoReader buildInfoReader; private final ParameterConverter parameterConverter; private final IValidationSupport validationSupport; + private final DefaultProfileProvider defaultProfileProvider; private final List<CodeableConcept> securityServices; public ConformanceServiceImpl(String serverBase, int defaultPageCount, BuildInfoReader buildInfoReader, - ParameterConverter parameterConverter, IValidationSupport validationSupport, boolean oAuthEnabled) + ParameterConverter parameterConverter, IValidationSupport validationSupport, + DefaultProfileProvider defaultProfileProvider, boolean oAuthEnabled) { this.serverBase = serverBase; this.defaultPageCount = defaultPageCount; this.buildInfoReader = buildInfoReader; this.parameterConverter = parameterConverter; this.validationSupport = validationSupport; + this.defaultProfileProvider = defaultProfileProvider; this.securityServices = oAuthEnabled ? List.of(CERTIFICATES, OAUTH) : List.of(CERTIFICATES); } @@ -165,6 +171,7 @@ public void afterPropertiesSet() throws Exception Objects.requireNonNull(buildInfoReader, "buildInfoReader"); Objects.requireNonNull(parameterConverter, "parameterConverter"); Objects.requireNonNull(validationSupport, "validationSupport"); + Objects.requireNonNull(defaultProfileProvider, "defaultProfileProvider"); } @Override @@ -319,6 +326,9 @@ private CapabilityStatement createCapabilityStatement() for (Class<? extends Resource> resource : resources) { + ResourceDef resourceDefAnnotation = resource.getAnnotation(ResourceDef.class); + ResourceType resourceType = ResourceType.valueOf(resourceDefAnnotation.name()); + CapabilityStatementRestResourceComponent r = rest.addResource(); r.setVersioning(ResourceVersionPolicy.VERSIONED); r.setReadHistory(true); @@ -330,9 +340,11 @@ private CapabilityStatement createCapabilityStatement() r.addReferencePolicy(ReferenceHandlingPolicy.LITERAL); r.addReferencePolicy(ReferenceHandlingPolicy.LOGICAL); - ResourceDef resourceDefAnnotation = resource.getAnnotation(ResourceDef.class); + Optional<String> defaultProfile = defaultProfileProvider.getDefaultProfile(resourceType); + r.setType(resourceDefAnnotation.name()); - r.setProfile(resourceDefAnnotation.profile()); + r.setProfile(defaultProfile.orElse(resourceDefAnnotation.profile())); + r.addInteraction().setCode(TypeRestfulInteraction.CREATE); r.addInteraction().setCode(TypeRestfulInteraction.READ); r.addInteraction().setCode(TypeRestfulInteraction.VREAD); @@ -384,7 +396,16 @@ private CapabilityStatement createCapabilityStatement() operations.getOrDefault(resource, List.of()).forEach(r::addOperation); - r.setSupportedProfile(profileUrlsByResource.getOrDefault(resourceDefAnnotation.name(), List.of())); + List<CanonicalType> supportedProfiles = profileUrlsByResource.getOrDefault(resourceDefAnnotation.name(), + List.of()); + + Stream<String> fromDb = supportedProfiles.stream().filter(CanonicalType::hasValue) + .map(CanonicalType::getValue); + Stream<String> fromProvider = defaultProfileProvider.getSecondaryDefaultProfiles(resourceType).stream(); + + r.setSupportedProfile( + Stream.concat(fromDb, fromProvider).filter(p -> defaultProfile.map(d -> !d.equals(p)).orElse(true)) + .distinct().sorted().map(CanonicalType::new).toList()); } return statement; diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/impl/RootServiceImpl.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/impl/RootServiceImpl.java index 77fa6aecf..0560bae48 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/impl/RootServiceImpl.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/impl/RootServiceImpl.java @@ -14,6 +14,7 @@ import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; import dev.dsf.fhir.history.HistoryService; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.webservice.base.AbstractBasicService; import dev.dsf.fhir.webservice.specification.RootService; @@ -31,10 +32,11 @@ public class RootServiceImpl extends AbstractBasicService implements RootService private final ExceptionHandler exceptionHandler; private final ReferenceCleaner referenceCleaner; private final HistoryService historyService; + private final DefaultProfileProvider defaultProfileProvider; public RootServiceImpl(CommandFactory commandFactory, ResponseGenerator responseGenerator, ParameterConverter parameterConverter, ExceptionHandler exceptionHandler, ReferenceCleaner referenceCleaner, - HistoryService historyService) + HistoryService historyService, DefaultProfileProvider defaultProfileProvider) { this.commandFactory = commandFactory; this.responseGenerator = responseGenerator; @@ -42,6 +44,7 @@ public RootServiceImpl(CommandFactory commandFactory, ResponseGenerator response this.exceptionHandler = exceptionHandler; this.referenceCleaner = referenceCleaner; this.historyService = historyService; + this.defaultProfileProvider = defaultProfileProvider; } @Override @@ -53,6 +56,7 @@ public void afterPropertiesSet() throws Exception Objects.requireNonNull(exceptionHandler, "exceptionHandler"); Objects.requireNonNull(referenceCleaner, "referenceCleaner"); Objects.requireNonNull(historyService, "historyService"); + Objects.requireNonNull(defaultProfileProvider, "defaultProfileProvider"); } @Override @@ -69,9 +73,9 @@ public Response root(UriInfo uri, HttpHeaders headers) @Override public Response handleBundle(Bundle bundle, UriInfo uri, HttpHeaders headers) { - CommandList commands = exceptionHandler - .handleBadBundleException(() -> commandFactory.createCommands(bundle, getCurrentIdentity(), - parameterConverter.getPreferReturn(headers), parameterConverter.getPreferHandling(headers))); + CommandList commands = exceptionHandler.handleBadBundleException(() -> commandFactory.createCommands(bundle, + getCurrentIdentity(), parameterConverter.getPreferReturn(headers), + parameterConverter.getPreferHandling(headers), defaultProfileProvider)); Bundle result = commands.execute(); // throws WebApplicationException diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/AbstractResourceServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/AbstractResourceServiceSecure.java index b30184a27..937b936c5 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/AbstractResourceServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/AbstractResourceServiceSecure.java @@ -33,6 +33,7 @@ import dev.dsf.fhir.search.PartialResult; import dev.dsf.fhir.search.SearchQuery; import dev.dsf.fhir.search.SearchQueryParameterError; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -64,18 +65,21 @@ public abstract class AbstractResourceServiceSecure<D extends ResourceDao<R>, R protected final AuthorizationRule<R> authorizationRule; protected final ResourceValidator resourceValidator; protected final ValidationRules validationRules; + protected final DefaultProfileProvider defaultProfileProvider; public AbstractResourceServiceSecure(S delegate, String serverBase, ResponseGenerator responseGenerator, ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, Class<R> resourceType, D dao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<R> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver); this.referenceCleaner = referenceCleaner; this.referenceExtractor = referenceExtractor; this.resourceType = resourceType; + this.defaultProfileProvider = defaultProfileProvider; this.resourceTypeName = resourceType.getAnnotation(ResourceDef.class).name(); this.dao = dao; this.exceptionHandler = exceptionHandler; @@ -100,6 +104,7 @@ public void afterPropertiesSet() throws Exception Objects.requireNonNull(authorizationRule, "authorizationRule"); Objects.requireNonNull(resourceValidator, "resourceValidator"); Objects.requireNonNull(validationRules, "validationRules"); + Objects.requireNonNull(defaultProfileProvider, "defaultProfileProvider"); } private String toValidationLogMessage(ValidationResult validationResult) @@ -113,6 +118,8 @@ private String toValidationLogMessage(ValidationResult validationResult) private Response withResourceValidation(R resource, Predicate<R> failValidationOnErrorOrFatal, UriInfo uri, HttpHeaders headers, String method, Supplier<Response> delegate) { + defaultProfileProvider.setDefaultProfile(resource); + ValidationResult validationResult = resourceValidator.validate(resource); if (failValidationOnErrorOrFatal.test(resource) && validationResult.getMessages().stream() diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ActivityDefinitionServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ActivityDefinitionServiceSecure.java index ec980d638..53a9c9a8b 100644 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ActivityDefinitionServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ActivityDefinitionServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -23,10 +24,10 @@ public ActivityDefinitionServiceSecure(ActivityDefinitionService delegate, Strin ReferenceExtractor referenceExtractor, ActivityDefinitionDao activityDefinitionDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<ActivityDefinition> authorizationRule, ResourceValidator resourceValidator, - ValidationRules validationRules) + ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, ActivityDefinition.class, activityDefinitionDao, exceptionHandler, parameterConverter, - authorizationRule, resourceValidator, validationRules); + authorizationRule, resourceValidator, validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/BinaryServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/BinaryServiceSecure.java index f87890fce..ca29f0f74 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/BinaryServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/BinaryServiceSecure.java @@ -9,6 +9,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -26,11 +27,12 @@ public BinaryServiceSecure(BinaryService delegate, String serverBase, ResponseGe ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, BinaryDao binaryDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Binary> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Binary.class, binaryDao, exceptionHandler, parameterConverter, authorizationRule, resourceValidator, - validationRules); + validationRules, defaultProfileProvider); } @Override diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/BundleServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/BundleServiceSecure.java index dad9e2007..d2cbd8ec5 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/BundleServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/BundleServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -21,10 +22,11 @@ public BundleServiceSecure(BundleService delegate, String serverBase, ResponseGe ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, BundleDao bundleDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Bundle> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Bundle.class, bundleDao, exceptionHandler, parameterConverter, authorizationRule, resourceValidator, - validationRules); + validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/CodeSystemServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/CodeSystemServiceSecure.java index e7ef9f3bb..8a3272b3f 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/CodeSystemServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/CodeSystemServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -21,10 +22,11 @@ public CodeSystemServiceSecure(CodeSystemService delegate, String serverBase, Re ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, CodeSystemDao codeSystemDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<CodeSystem> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, CodeSystem.class, codeSystemDao, exceptionHandler, parameterConverter, authorizationRule, - resourceValidator, validationRules); + resourceValidator, validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/DocumentReferenceServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/DocumentReferenceServiceSecure.java index bb8222792..0b925c490 100644 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/DocumentReferenceServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/DocumentReferenceServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -23,10 +24,10 @@ public DocumentReferenceServiceSecure(DocumentReferenceService delegate, String ReferenceExtractor referenceExtractor, DocumentReferenceDao documentReferenceDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<DocumentReference> authorizationRule, ResourceValidator resourceValidator, - ValidationRules validationRules) + ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, DocumentReference.class, documentReferenceDao, exceptionHandler, parameterConverter, authorizationRule, - resourceValidator, validationRules); + resourceValidator, validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/EndpointServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/EndpointServiceSecure.java index f6d1797ea..7d5cdbe05 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/EndpointServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/EndpointServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -21,10 +22,10 @@ public EndpointServiceSecure(EndpointService delegate, String serverBase, Respon ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, EndpointDao endpointDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Endpoint> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Endpoint.class, endpointDao, exceptionHandler, parameterConverter, authorizationRule, resourceValidator, - validationRules); + validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/GroupServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/GroupServiceSecure.java index 03f51cfa6..280134f81 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/GroupServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/GroupServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -21,10 +22,10 @@ public GroupServiceSecure(GroupService delegate, String serverBase, ResponseGene ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, GroupDao groupDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Group> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Group.class, groupDao, exceptionHandler, parameterConverter, authorizationRule, resourceValidator, - validationRules); + validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/HealthcareServiceServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/HealthcareServiceServiceSecure.java index bcf60f31a..c39f9a8a3 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/HealthcareServiceServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/HealthcareServiceServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -23,10 +24,10 @@ public HealthcareServiceServiceSecure(HealthcareServiceService delegate, String ReferenceExtractor referenceExtractor, HealthcareServiceDao healthcareServiceDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<HealthcareService> authorizationRule, ResourceValidator resourceValidator, - ValidationRules validationRules) + ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, HealthcareService.class, healthcareServiceDao, exceptionHandler, parameterConverter, authorizationRule, - resourceValidator, validationRules); + resourceValidator, validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/LibraryServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/LibraryServiceSecure.java index 4e67c4d87..fe976ceec 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/LibraryServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/LibraryServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -21,10 +22,10 @@ public LibraryServiceSecure(LibraryService delegate, String serverBase, Response ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, LibraryDao libraryDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Library> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Library.class, libraryDao, exceptionHandler, parameterConverter, authorizationRule, resourceValidator, - validationRules); + validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/LocationServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/LocationServiceSecure.java index f14793eaa..bd5287901 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/LocationServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/LocationServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -21,10 +22,10 @@ public LocationServiceSecure(LocationService delegate, String serverBase, Respon ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, LocationDao locationDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Location> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Location.class, locationDao, exceptionHandler, parameterConverter, authorizationRule, resourceValidator, - validationRules); + validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/MeasureReportServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/MeasureReportServiceSecure.java index 2e7aa8e77..eb97b5bdc 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/MeasureReportServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/MeasureReportServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -22,10 +23,10 @@ public MeasureReportServiceSecure(MeasureReportService delegate, String serverBa ResponseGenerator responseGenerator, ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, MeasureReportDao measureReportDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<MeasureReport> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, MeasureReport.class, measureReportDao, exceptionHandler, parameterConverter, authorizationRule, - resourceValidator, validationRules); + resourceValidator, validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/MeasureServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/MeasureServiceSecure.java index 80e4ac526..7df1ffc26 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/MeasureServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/MeasureServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -21,10 +22,10 @@ public MeasureServiceSecure(MeasureService delegate, String serverBase, Response ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, MeasureDao measureDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Measure> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Measure.class, measureDao, exceptionHandler, parameterConverter, authorizationRule, resourceValidator, - validationRules); + validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/NamingSystemServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/NamingSystemServiceSecure.java index 304672419..a7a96cb67 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/NamingSystemServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/NamingSystemServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -21,10 +22,10 @@ public NamingSystemServiceSecure(NamingSystemService delegate, String serverBase ResponseGenerator responseGenerator, ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, NamingSystemDao naminngSystemDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<NamingSystem> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, NamingSystem.class, naminngSystemDao, exceptionHandler, parameterConverter, authorizationRule, - resourceValidator, validationRules); + resourceValidator, validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/OrganizationAffiliationServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/OrganizationAffiliationServiceSecure.java index 9d6a8ba29..eff1e642a 100644 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/OrganizationAffiliationServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/OrganizationAffiliationServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -23,10 +24,10 @@ public OrganizationAffiliationServiceSecure(OrganizationAffiliationService deleg ReferenceExtractor referenceExtractor, OrganizationAffiliationDao organizationDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<OrganizationAffiliation> authorizationRule, ResourceValidator resourceValidator, - ValidationRules validationRules) + ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, OrganizationAffiliation.class, organizationDao, exceptionHandler, parameterConverter, authorizationRule, - resourceValidator, validationRules); + resourceValidator, validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/OrganizationServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/OrganizationServiceSecure.java index 4aeaa8a5a..6eecb9590 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/OrganizationServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/OrganizationServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -21,10 +22,10 @@ public OrganizationServiceSecure(OrganizationService delegate, String serverBase ResponseGenerator responseGenerator, ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, OrganizationDao organizationDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Organization> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Organization.class, organizationDao, exceptionHandler, parameterConverter, authorizationRule, - resourceValidator, validationRules); + resourceValidator, validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PatientServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PatientServiceSecure.java index 3013ab827..0ab947d30 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PatientServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PatientServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -21,10 +22,10 @@ public PatientServiceSecure(PatientService delegate, String serverBase, Response ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, PatientDao patientDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Patient> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Patient.class, patientDao, exceptionHandler, parameterConverter, authorizationRule, resourceValidator, - validationRules); + validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PractitionerRoleServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PractitionerRoleServiceSecure.java index 9cd5ff313..23ec080ad 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PractitionerRoleServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PractitionerRoleServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -23,10 +24,10 @@ public PractitionerRoleServiceSecure(PractitionerRoleService delegate, String se ReferenceExtractor referenceExtractor, PractitionerRoleDao practitionerRoleDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<PractitionerRole> authorizationRule, ResourceValidator resourceValidator, - ValidationRules validationRules) + ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, PractitionerRole.class, practitionerRoleDao, exceptionHandler, parameterConverter, authorizationRule, - resourceValidator, validationRules); + resourceValidator, validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PractitionerServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PractitionerServiceSecure.java index 49b9e84bb..b970e0548 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PractitionerServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PractitionerServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -21,10 +22,10 @@ public PractitionerServiceSecure(PractitionerService delegate, String serverBase ResponseGenerator responseGenerator, ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, PractitionerDao practitionerDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Practitioner> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Practitioner.class, practitionerDao, exceptionHandler, parameterConverter, authorizationRule, - resourceValidator, validationRules); + resourceValidator, validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ProvenanceServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ProvenanceServiceSecure.java index 52a612767..6760c35cc 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ProvenanceServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ProvenanceServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -21,10 +22,10 @@ public ProvenanceServiceSecure(ProvenanceService delegate, String serverBase, Re ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, ProvenanceDao provenanceDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Provenance> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Provenance.class, provenanceDao, exceptionHandler, parameterConverter, authorizationRule, - resourceValidator, validationRules); + resourceValidator, validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/QuestionnaireResponseServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/QuestionnaireResponseServiceSecure.java index 9616c374d..498da7e8c 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/QuestionnaireResponseServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/QuestionnaireResponseServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -23,10 +24,10 @@ public QuestionnaireResponseServiceSecure(QuestionnaireResponseService delegate, ReferenceExtractor referenceExtractor, QuestionnaireResponseDao QuestionnaireResponseDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<QuestionnaireResponse> authorizationRule, ResourceValidator resourceValidator, - ValidationRules validationRules) + ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, QuestionnaireResponse.class, QuestionnaireResponseDao, exceptionHandler, parameterConverter, - authorizationRule, resourceValidator, validationRules); + authorizationRule, resourceValidator, validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/QuestionnaireServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/QuestionnaireServiceSecure.java index 409575c10..b8c25e600 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/QuestionnaireServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/QuestionnaireServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -22,10 +23,11 @@ public QuestionnaireServiceSecure(QuestionnaireService delegate, String serverBa ResponseGenerator responseGenerator, ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, QuestionnaireDao questionnaireDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Questionnaire> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Questionnaire.class, questionnaireDao, exceptionHandler, parameterConverter, authorizationRule, - resourceValidator, validationRules); + resourceValidator, validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ResearchStudyServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ResearchStudyServiceSecure.java index feda4f98b..2b96d6c40 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ResearchStudyServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ResearchStudyServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -22,10 +23,11 @@ public ResearchStudyServiceSecure(ResearchStudyService delegate, String serverBa ResponseGenerator responseGenerator, ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, ResearchStudyDao researchStudyDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<ResearchStudy> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, ResearchStudy.class, researchStudyDao, exceptionHandler, parameterConverter, authorizationRule, - resourceValidator, validationRules); + resourceValidator, validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/StructureDefinitionServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/StructureDefinitionServiceSecure.java index 3d5428a58..71160ed59 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/StructureDefinitionServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/StructureDefinitionServiceSecure.java @@ -8,6 +8,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -27,11 +28,11 @@ public StructureDefinitionServiceSecure(StructureDefinitionService delegate, Str ReferenceExtractor referenceExtractor, StructureDefinitionDao structureDefinitionDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<StructureDefinition> authorizationRule, ResourceValidator resourceValidator, - ValidationRules validationRules) + ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, StructureDefinition.class, structureDefinitionDao, exceptionHandler, parameterConverter, - authorizationRule, resourceValidator, validationRules); + authorizationRule, resourceValidator, validationRules, defaultProfileProvider); } @Override diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/SubscriptionServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/SubscriptionServiceSecure.java index 50cefbbe6..df3c32648 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/SubscriptionServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/SubscriptionServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -21,10 +22,10 @@ public SubscriptionServiceSecure(SubscriptionService delegate, String serverBase ResponseGenerator responseGenerator, ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, SubscriptionDao subscriptionDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Subscription> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Subscription.class, subscriptionDao, exceptionHandler, parameterConverter, authorizationRule, - resourceValidator, validationRules); + resourceValidator, validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/TaskServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/TaskServiceSecure.java index f4801cb2d..b3a7152fc 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/TaskServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/TaskServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -20,10 +21,10 @@ public TaskServiceSecure(TaskService delegate, String serverBase, ResponseGenera ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, TaskDao taskDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Task> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Task.class, taskDao, exceptionHandler, parameterConverter, authorizationRule, resourceValidator, - validationRules); + validationRules, defaultProfileProvider); } } \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ValueSetServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ValueSetServiceSecure.java index e3834ba7f..3ee561e15 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ValueSetServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ValueSetServiceSecure.java @@ -7,6 +7,7 @@ import dev.dsf.fhir.help.ExceptionHandler; import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; +import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.service.ReferenceExtractor; import dev.dsf.fhir.service.ReferenceResolver; @@ -21,10 +22,10 @@ public ValueSetServiceSecure(ValueSetService delegate, String serverBase, Respon ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, ValueSetDao valueSetDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<ValueSet> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules) + ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, ValueSet.class, valueSetDao, exceptionHandler, parameterConverter, authorizationRule, resourceValidator, - validationRules); + validationRules, defaultProfileProvider); } } diff --git a/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/BundleIntegrationTest.java b/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/BundleIntegrationTest.java index beda36b21..99e2903f2 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/BundleIntegrationTest.java +++ b/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/BundleIntegrationTest.java @@ -12,6 +12,7 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.Objects; @@ -112,6 +113,7 @@ public void testDeleteTaskProfileViaBundleTestSupportedProfilesInConformanceStat newS.setType("Task"); newS.setBaseDefinition("http://dsf.dev/fhir/StructureDefinition/task"); newS.setDerivation(TypeDerivationRule.CONSTRAINT); + newS.setDate(new Date()); ElementDefinition diff = newS.getDifferential().addElement(); diff.setId("Task.instantiatesUri"); diff.setPath("Task.instantiatesUri"); diff --git a/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/EndpointIntegrationTest.java b/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/EndpointIntegrationTest.java index 4444aa565..b003cce57 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/EndpointIntegrationTest.java +++ b/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/EndpointIntegrationTest.java @@ -26,6 +26,7 @@ import org.slf4j.LoggerFactory; import ca.uhn.fhir.context.FhirContext; +import dev.dsf.fhir.authentication.OrganizationProvider; import dev.dsf.fhir.dao.EndpointDao; import dev.dsf.fhir.dao.OrganizationDao; import dev.dsf.fhir.search.PageAndCount; @@ -38,6 +39,10 @@ public class EndpointIntegrationTest extends AbstractIntegrationTest private Endpoint createEndpoint() { + OrganizationProvider organizationProvider = getSpringWebApplicationContext() + .getBean(OrganizationProvider.class); + Organization localOrganization = organizationProvider.getLocalOrganization().get(); + Endpoint endpoint = new Endpoint(); endpoint.addIdentifier().setSystem("http://dsf.dev/sid/endpoint-identifier") .setValue("foo-bar-baz.test.bla-bla.de"); @@ -50,6 +55,8 @@ private Endpoint createEndpoint() endpoint.addPayloadMimeType("application/fhir+json"); endpoint.addPayloadMimeType("application/fhir+xml"); endpoint.setAddress("https://foo-bar-baz.test.bla-bla.de/fhir"); + endpoint.getManagingOrganization() + .setReferenceElement(localOrganization.getIdElement().toUnqualifiedVersionless()); return endpoint; } @@ -194,21 +201,10 @@ public void testCreateReadWithLogicalReference() throws Exception { FhirContext context = FhirContext.forR4(); - Organization organization = new Organization(); - getReadAccessHelper().addAll(organization); - organization.addIdentifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("bla-bla.de"); - organization.addExtension("http://dsf.dev/fhir/StructureDefinition/extension-certificate-thumbprint", - new StringType( - "6b83a92506d67265697c74f50a9cac0ec7182adcc5302e5ed487ae1a782fe278f5ca79808c971e061fadded2c303a2223140ef3450d1d27717dd704a823f95e9")); - - Organization createdOrg = getWebserviceClient().create(organization); - logger.debug("Organization: {}", - context.newXmlParser().setPrettyPrint(true).encodeResourceToString(createdOrg)); - Endpoint endpoint = createEndpoint(); getReadAccessHelper().addAll(endpoint); endpoint.getManagingOrganization().setType("Organization").getIdentifier() - .setSystem("http://dsf.dev/sid/organization-identifier").setValue("bla-bla.de"); + .setSystem("http://dsf.dev/sid/organization-identifier").setValue("Test_Organization"); logger.debug("endpoint: {}", context.newXmlParser().setPrettyPrint(true).encodeResourceToString(endpoint)); @@ -266,6 +262,7 @@ public void testCreateReadWithLogicalReferenceViaBundle() throws Exception new StringType( "6b83a92506d67265697c74f50a9cac0ec7182adcc5302e5ed487ae1a782fe278f5ca79808c971e061fadded2c303a2223140ef3450d1d27717dd704a823f95e9")); organization.addEndpoint().setReference(endTempId); + organization.setActive(true); Endpoint endpoint = createEndpoint(); getReadAccessHelper().addAll(endpoint); diff --git a/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/ParallelCreateIntegrationTest.java b/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/ParallelCreateIntegrationTest.java index fd1e6cf99..67c559dfe 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/ParallelCreateIntegrationTest.java +++ b/dsf-fhir/dsf-fhir-server/src/test/java/dev/dsf/fhir/integration/ParallelCreateIntegrationTest.java @@ -17,6 +17,7 @@ import java.util.function.Predicate; import org.hl7.fhir.r4.model.ActivityDefinition; +import org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind; import org.hl7.fhir.r4.model.Bundle; import org.hl7.fhir.r4.model.Bundle.BundleEntryComponent; import org.hl7.fhir.r4.model.Bundle.BundleEntryRequestComponent; @@ -31,6 +32,7 @@ import org.hl7.fhir.r4.model.Endpoint.EndpointStatus; import org.hl7.fhir.r4.model.Enumerations.PublicationStatus; import org.hl7.fhir.r4.model.Extension; +import org.hl7.fhir.r4.model.IdType; import org.hl7.fhir.r4.model.Identifier; import org.hl7.fhir.r4.model.NamingSystem; import org.hl7.fhir.r4.model.NamingSystem.NamingSystemIdentifierType; @@ -56,6 +58,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import dev.dsf.fhir.authentication.OrganizationProvider; import dev.dsf.fhir.authorization.process.Recipient; import dev.dsf.fhir.authorization.process.Requester; import dev.dsf.fhir.dao.ActivityDefinitionDao; @@ -1534,7 +1537,7 @@ private ActivityDefinition createActivityDefinition() { ActivityDefinition aD = new ActivityDefinition().setUrl(ACTIVITY_DEFINITION_URL) .setVersion(ACTIVITY_DEFINITION_VERSION).setStatus(PublicationStatus.ACTIVE) - .setName("TestActivityDefinition"); + .setName("TestActivityDefinition").setDate(new Date()).setKind(ActivityDefinitionKind.TASK); getProcessAuthorizationHelper().add(aD, "test-message", "http://test.com/fhir/StructureDefinition/task-profile", Requester.remoteAll(), Recipient.localAll()); @@ -1548,7 +1551,7 @@ private CodeSystem createCodeSystem() { CodeSystem cS = new CodeSystem().setUrl(CODE_SYSTEM_URL).setVersion(CODE_SYSTEM_VERSION) .setStatus(PublicationStatus.ACTIVE).setStatus(PublicationStatus.ACTIVE).setName("TestCodeSystem") - .setContent(CodeSystemContentMode.COMPLETE); + .setContent(CodeSystemContentMode.COMPLETE).setDate(new Date()); getReadAccessHelper().addAll(cS); @@ -1562,16 +1565,22 @@ private Endpoint createEndpoint() private Endpoint createEndpoint(String identifierValue, String address) { + OrganizationProvider organizationProvider = getSpringWebApplicationContext() + .getBean(OrganizationProvider.class); + IdType orgId = organizationProvider.getLocalOrganization().map(Organization::getIdElement) + .map(IdType::toUnqualifiedVersionless).get(); + Endpoint e = new Endpoint() .addIdentifier( new Identifier().setSystem("http://dsf.dev/sid/endpoint-identifier").setValue(identifierValue)) .setAddress(address) .addPayloadType(new CodeableConcept() .addCoding(new Coding().setSystem("http://hl7.org/fhir/resource-types").setCode("Task"))) + .addPayloadMimeType("application/fhir+xml").addPayloadMimeType("application/fhir+json") .setConnectionType( new Coding().setSystem("http://terminology.hl7.org/CodeSystem/endpoint-connection-type") .setCode("hl7-fhir-rest")) - .setStatus(EndpointStatus.ACTIVE); + .setStatus(EndpointStatus.ACTIVE).setManagingOrganization(new Reference().setReferenceElement(orgId)); getReadAccessHelper().addAll(e); @@ -1643,7 +1652,7 @@ private StructureDefinition createStructureDefinition() .setName("TestStructureDefinition").setStatus(PublicationStatus.ACTIVE) .setBaseDefinition("http://hl7.org/fhir/StructureDefinition/Patient") .setKind(StructureDefinitionKind.RESOURCE).setAbstract(false).setType("Patient") - .setDerivation(TypeDerivationRule.CONSTRAINT); + .setDerivation(TypeDerivationRule.CONSTRAINT).setDate(new Date()); ElementDefinition e = sD.getDifferential().addElement(); e.setId("Patient.active"); @@ -1690,7 +1699,8 @@ private Task createTask() private ValueSet createValueSet() { ValueSet vS = new ValueSet().setUrl(VALUE_SET_URL).setVersion(VALUE_SET_VERSION) - .setStatus(PublicationStatus.ACTIVE).setStatus(PublicationStatus.ACTIVE).setName("TestValueSet"); + .setStatus(PublicationStatus.ACTIVE).setStatus(PublicationStatus.ACTIVE).setName("TestValueSet") + .setDate(new Date()); getReadAccessHelper().addAll(vS); From 3a8eabe02fe5c2fd25df38f2c27cfb6207c07033 Mon Sep 17 00:00:00 2001 From: Hauke Hund <hauke.hund@hs-heilbronn.de> Date: Wed, 29 Oct 2025 23:02:45 +0100 Subject: [PATCH 11/16] disabled resource validation for initial data loaded internal bundle - New option in CommandFactory to disable FHIR resource validation during transaction/batch Bundle execution. - FHIR resource validation disabled for the execution of the internal bundle for the initial data loader on startup. - Modified dsf maven plugin Bundle generator to reinclude self declared profiles. - Refactored DefaultProfileProviderImpl from enum to class, since we do not need the DISABLED, ENABLED variants anymore. - Added default validation code to UpdateCommand for "update as create" path. --- .../dsf/fhir/dao/command/CommandFactory.java | 26 ++++++++++-- .../fhir/dao/command/CommandFactoryImpl.java | 38 +++++++++++------- .../dsf/fhir/dao/command/CreateCommand.java | 19 +++++++-- .../CreateStructureDefinitionCommand.java | 4 +- .../dsf/fhir/dao/command/UpdateCommand.java | 26 +++++++++--- .../UpdateStructureDefinitionCommand.java | 4 +- .../service/DefaultProfileProviderImpl.java | 40 +++++++------------ .../dsf/fhir/service/InitialDataLoader.java | 2 +- .../fhir/service/InitialDataLoaderImpl.java | 4 +- .../dsf/fhir/spring/config/CommandConfig.java | 2 +- .../config/InitialDataLoaderConfig.java | 6 +-- .../fhir/spring/config/ValidationConfig.java | 2 +- .../fhir/spring/config/WebserviceConfig.java | 2 +- .../fhir/webservice/impl/RootServiceImpl.java | 12 ++---- .../dev/dsf/maven/bundle/BundleGenerator.java | 3 -- 15 files changed, 113 insertions(+), 77 deletions(-) diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactory.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactory.java index 0cb4d8994..f0d9388f5 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactory.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactory.java @@ -6,7 +6,6 @@ import dev.dsf.fhir.dao.exception.BadBundleException; import dev.dsf.fhir.prefer.PreferHandlingType; import dev.dsf.fhir.prefer.PreferReturnType; -import dev.dsf.fhir.service.DefaultProfileProvider; public interface CommandFactory { @@ -19,13 +18,34 @@ public interface CommandFactory * not <code>null</code> * @param handlingType * not <code>null</code> - * @param defaultProfileProvider + * + * @return {@link CommandList} with individual commands from each entry contained in the bundle + * @throws BadBundleException + * if the bundle could not be processed because of wrong bundle type or other errors + */ + default CommandList createCommands(Bundle bundle, Identity identity, PreferReturnType returnType, + PreferHandlingType handlingType) throws BadBundleException + { + return createCommands(bundle, identity, returnType, handlingType, true); + } + + /** + * @param bundle + * not <code>null</code> + * @param identity + * not <code>null</code> + * @param returnType + * not <code>null</code> + * @param handlingType * not <code>null</code> + * @param enableValidation, + * set to <code>false</code> to disable FHIR resource validation, useful for initial data loader with + * internal bundle * * @return {@link CommandList} with individual commands from each entry contained in the bundle * @throws BadBundleException * if the bundle could not be processed because of wrong bundle type or other errors */ CommandList createCommands(Bundle bundle, Identity identity, PreferReturnType returnType, - PreferHandlingType handlingType, DefaultProfileProvider defaultProfileProvider) throws BadBundleException; + PreferHandlingType handlingType, boolean enableValidation); } \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactoryImpl.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactoryImpl.java index ba936b34c..95b447c85 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactoryImpl.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactoryImpl.java @@ -16,6 +16,8 @@ import org.hl7.fhir.r4.model.Bundle.HTTPVerb; import org.hl7.fhir.r4.model.Resource; import org.hl7.fhir.r4.model.StructureDefinition; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; import dev.dsf.common.auth.conf.Identity; @@ -39,6 +41,8 @@ public class CommandFactoryImpl implements InitializingBean, CommandFactory { + private static final Logger logger = LoggerFactory.getLogger(CommandFactoryImpl.class); + private final String serverBase; private final int defaultPageCount; private final DataSource dataSource; @@ -57,6 +61,7 @@ public class CommandFactoryImpl implements InitializingBean, CommandFactory private final ValidationHelper validationHelper; private final SnapshotGenerator snapshotGenerator; private final ValidationRules validationRules; + private final DefaultProfileProvider defaultProfileProvider; private final Function<Connection, TransactionResources> transactionResourcesFactory; public CommandFactoryImpl(String serverBase, int defaultPageCount, DataSource dataSource, @@ -66,6 +71,7 @@ public CommandFactoryImpl(String serverBase, int defaultPageCount, DataSource da ParameterConverter parameterConverter, EventHandler eventHandler, EventGenerator eventGenerator, AuthorizationHelper authorizationHelper, ValidationHelper validationHelper, SnapshotGenerator snapshotGenerator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider, Function<Connection, TransactionResources> transactionResourcesFactory) { this.serverBase = serverBase; @@ -86,6 +92,7 @@ public CommandFactoryImpl(String serverBase, int defaultPageCount, DataSource da this.validationHelper = validationHelper; this.snapshotGenerator = snapshotGenerator; this.validationRules = validationRules; + this.defaultProfileProvider = defaultProfileProvider; this.transactionResourcesFactory = transactionResourcesFactory; } @@ -132,7 +139,7 @@ private Command get(int index, Identity identity, PreferReturnType returnType, B // create, conditional create private <R extends Resource> Command post(int index, Identity identity, PreferReturnType returnType, Bundle bundle, - BundleEntryComponent entry, R resource, DefaultProfileProvider defaultProfileProvider) + BundleEntryComponent entry, R resource, boolean enableValidation) { if (resource.getResourceType().name().equals(entry.getRequest().getUrl())) { @@ -144,13 +151,14 @@ private <R extends Resource> Command post(int index, Identity identity, PreferRe return new CreateStructureDefinitionCommand(index, identity, returnType, bundle, entry, serverBase, authorizationHelper, s, (StructureDefinitionDao) dao.get(), exceptionHandler, parameterConverter, responseGenerator, referenceExtractor, referenceResolver, referenceCleaner, - eventGenerator, defaultProfileProvider, daoProvider.getStructureDefinitionSnapshotDao()); + eventGenerator, defaultProfileProvider, enableValidation, + daoProvider.getStructureDefinitionSnapshotDao()); else return dao .map(d -> new CreateCommand<>(index, identity, returnType, bundle, entry, serverBase, authorizationHelper, resource, d, exceptionHandler, parameterConverter, responseGenerator, referenceExtractor, referenceResolver, referenceCleaner, - eventGenerator, defaultProfileProvider)) + eventGenerator, defaultProfileProvider, enableValidation)) .orElseThrow(() -> new IllegalStateException( "Resource of type " + resource.getClass().getName() + " not supported")); } @@ -161,7 +169,7 @@ private <R extends Resource> Command post(int index, Identity identity, PreferRe // update, conditional update private <R extends Resource> Command put(int index, Identity identity, PreferReturnType returnType, Bundle bundle, - BundleEntryComponent entry, R resource, DefaultProfileProvider defaultProfileProvider) + BundleEntryComponent entry, R resource, boolean enableValidation) { if (entry.getRequest().getUrl() != null && !entry.getRequest().getUrl().isBlank() && entry.getRequest().getUrl().startsWith(resource.getResourceType().name())) @@ -174,13 +182,14 @@ private <R extends Resource> Command put(int index, Identity identity, PreferRet return new UpdateStructureDefinitionCommand(index, identity, returnType, bundle, entry, serverBase, authorizationHelper, s, (StructureDefinitionDao) dao.get(), exceptionHandler, parameterConverter, responseGenerator, referenceExtractor, referenceResolver, referenceCleaner, - eventGenerator, defaultProfileProvider, daoProvider.getStructureDefinitionSnapshotDao()); + eventGenerator, defaultProfileProvider, enableValidation, + daoProvider.getStructureDefinitionSnapshotDao()); else return dao .map(d -> new UpdateCommand<>(index, identity, returnType, bundle, entry, serverBase, authorizationHelper, resource, d, exceptionHandler, parameterConverter, responseGenerator, referenceExtractor, referenceResolver, referenceCleaner, - eventGenerator, defaultProfileProvider)) + eventGenerator, defaultProfileProvider, enableValidation)) .orElseThrow(() -> new IllegalStateException( "Resource of type " + resource.getClass().getName() + " not supported")); } @@ -210,19 +219,21 @@ private Command delete(int index, Identity identity, PreferReturnType returnType @Override public CommandList createCommands(Bundle bundle, Identity identity, PreferReturnType returnType, - PreferHandlingType handlingType, DefaultProfileProvider defaultProfileProvider) throws BadBundleException + PreferHandlingType handlingType, boolean enableValidation) { Objects.requireNonNull(bundle, "bundle"); Objects.requireNonNull(identity, "identity"); Objects.requireNonNull(returnType, "returnType"); Objects.requireNonNull(handlingType, "handlingType"); - Objects.requireNonNull(defaultProfileProvider, "defaultProfileProvider"); + + if (!enableValidation) + logger.debug("FHIR resource validation disabled"); if (bundle.getType() != null) { List<Command> commands = IntStream.range(0, bundle.getEntry().size()) .mapToObj(index -> createCommand(index, identity, returnType, handlingType, bundle, - bundle.getEntry().get(index), defaultProfileProvider)) + bundle.getEntry().get(index), enableValidation)) .flatMap(Function.identity()).collect(Collectors.toList()); return switch (bundle.getType()) @@ -242,8 +253,7 @@ public CommandList createCommands(Bundle bundle, Identity identity, PreferReturn } protected Stream<Command> createCommand(int index, Identity identity, PreferReturnType returnType, - PreferHandlingType handlingType, Bundle bundle, BundleEntryComponent entry, - DefaultProfileProvider defaultProfileProvider) + PreferHandlingType handlingType, Bundle bundle, BundleEntryComponent entry, boolean enableValidation) { if (entry.hasRequest() && entry.getRequest().hasMethod()) { @@ -264,13 +274,11 @@ protected Stream<Command> createCommand(int index, Identity identity, PreferRetu return switch (entry.getRequest().getMethod()) { case POST -> resolveReferences( - post(index, identity, returnType, bundle, entry, entry.getResource(), - defaultProfileProvider), + post(index, identity, returnType, bundle, entry, entry.getResource(), enableValidation), index, identity, returnType, bundle, entry, entry.getResource(), HTTPVerb.POST); case PUT -> resolveReferences( - put(index, identity, returnType, bundle, entry, entry.getResource(), - defaultProfileProvider), + put(index, identity, returnType, bundle, entry, entry.getResource(), enableValidation), index, identity, returnType, bundle, entry, entry.getResource(), HTTPVerb.PUT); default -> throw new BadBundleException("Request method " + entry.getRequest().getMethod() diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CreateCommand.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CreateCommand.java index 16376d1ea..2ebda3ef4 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CreateCommand.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CreateCommand.java @@ -59,6 +59,7 @@ public class CreateCommand<R extends Resource, D extends ResourceDao<R>> extends protected final ReferenceCleaner referenceCleaner; protected final EventGenerator eventGenerator; protected final DefaultProfileProvider defaultProfileProvider; + protected final boolean enableValidation; protected R createdResource; protected Response responseResult; @@ -69,7 +70,7 @@ public CreateCommand(int index, Identity identity, PreferReturnType returnType, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, ResponseGenerator responseGenerator, ReferenceExtractor referenceExtractor, ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, EventGenerator eventGenerator, - DefaultProfileProvider defaultProfileProvider) + DefaultProfileProvider defaultProfileProvider, boolean enableValidation) { super(2, index, identity, returnType, bundle, entry, serverBase, authorizationHelper, resource, dao, exceptionHandler, parameterConverter, responseGenerator, referenceExtractor, referenceResolver); @@ -79,6 +80,10 @@ public CreateCommand(int index, Identity identity, PreferReturnType returnType, this.eventGenerator = eventGenerator; this.defaultProfileProvider = defaultProfileProvider; + this.enableValidation = enableValidation; + + if (PreferReturnType.OPERATION_OUTCOME.equals(returnType) && !enableValidation) + throw new IllegalArgumentException("Return type 'operation outcome' not allowed if validation disabled"); } @Override @@ -153,8 +158,11 @@ public void execute(Map<String, IdType> idTranslationTable, LargeObjectManager l { responseResult = null; - defaultProfileProvider.setDefaultProfile(resource); - validationResult = validationHelper.checkResourceValidForCreate(identity, resource); + if (enableValidation) + { + defaultProfileProvider.setDefaultProfile(resource); + validationResult = validationHelper.checkResourceValidForCreate(identity, resource); + } referencesHelper.resolveLogicalReferences(connection); @@ -282,7 +290,10 @@ else if (PreferReturnType.OPERATION_OUTCOME.equals(returnType)) { OperationOutcome outcome = responseGenerator.created(location.toString(), createdResourceWithResolvedReferences); - validationResult.populateOperationOutcome(outcome); + + if (validationResult != null) + validationResult.populateOperationOutcome(outcome); + resultEntry.getResponse().setOutcome(outcome); } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CreateStructureDefinitionCommand.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CreateStructureDefinitionCommand.java index 69bc14ba3..2379e5868 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CreateStructureDefinitionCommand.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CreateStructureDefinitionCommand.java @@ -46,11 +46,11 @@ public CreateStructureDefinitionCommand(int index, Identity identity, PreferRetu ParameterConverter parameterConverter, ResponseGenerator responseGenerator, ReferenceExtractor referenceExtractor, ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, EventGenerator eventGenerator, - DefaultProfileProvider defaultProfileProvider, StructureDefinitionDao snapshotDao) + DefaultProfileProvider defaultProfileProvider, boolean enableValidation, StructureDefinitionDao snapshotDao) { super(index, identity, returnType, bundle, entry, serverBase, authorizationHelper, resource, dao, exceptionHandler, parameterConverter, responseGenerator, referenceExtractor, referenceResolver, - referenceCleaner, eventGenerator, defaultProfileProvider); + referenceCleaner, eventGenerator, defaultProfileProvider, enableValidation); this.snapshotDao = snapshotDao; } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/UpdateCommand.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/UpdateCommand.java index a8659e833..ae691ebcb 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/UpdateCommand.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/UpdateCommand.java @@ -62,17 +62,17 @@ public class UpdateCommand<R extends Resource, D extends ResourceDao<R>> extends protected final ReferenceCleaner referenceCleaner; protected final EventGenerator eventGenerator; protected final DefaultProfileProvider defaultProfileProvider; + protected final boolean enableValidation; protected R updatedResource; protected ValidationResult validationResult; - public UpdateCommand(int index, Identity identity, PreferReturnType returnType, Bundle bundle, BundleEntryComponent entry, String serverBase, AuthorizationHelper authorizationHelper, R resource, D dao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, ResponseGenerator responseGenerator, ReferenceExtractor referenceExtractor, ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, EventGenerator eventGenerator, - DefaultProfileProvider defaultProfileProvider) + DefaultProfileProvider defaultProfileProvider, boolean enableValidation) { super(3, index, identity, returnType, bundle, entry, serverBase, authorizationHelper, resource, dao, exceptionHandler, parameterConverter, responseGenerator, referenceExtractor, referenceResolver); @@ -82,6 +82,10 @@ public UpdateCommand(int index, Identity identity, PreferReturnType returnType, this.eventGenerator = eventGenerator; this.defaultProfileProvider = defaultProfileProvider; + this.enableValidation = enableValidation; + + if (PreferReturnType.OPERATION_OUTCOME.equals(returnType) && !enableValidation) + throw new IllegalArgumentException("Return type 'operation outcome' not allowed if validation disabled"); } @Override @@ -349,8 +353,11 @@ private void checkUpdateAllowed(Map<String, IdType> idTranslationTable, Connecti referencesHelper.resolveTemporaryAndConditionalReferencesOrLiteralInternalRelatedArtifactOrAttachmentUrls( idTranslationTable, connection); - defaultProfileProvider.setDefaultProfile(newResource); - validationResult = validationHelper.checkResourceValidForUpdate(identity, resource); + if (enableValidation) + { + defaultProfileProvider.setDefaultProfile(newResource); + validationResult = validationHelper.checkResourceValidForUpdate(identity, resource); + } referencesHelper.resolveLogicalReferences(connection); @@ -380,7 +387,11 @@ private void updateByCondition(Map<String, IdType> idTranslationTable, LargeObje referencesHelper.resolveTemporaryAndConditionalReferencesOrLiteralInternalRelatedArtifactOrAttachmentUrls( idTranslationTable, connection); - validationResult = validationHelper.checkResourceValidForCreate(identity, resource); + if (enableValidation) + { + defaultProfileProvider.setDefaultProfile(resource); + validationResult = validationHelper.checkResourceValidForCreate(identity, resource); + } referencesHelper.resolveLogicalReferences(connection); @@ -449,7 +460,10 @@ else if (PreferReturnType.OPERATION_OUTCOME.equals(returnType)) { OperationOutcome outcome = responseGenerator.updated(location.toString(), updatedResourceWithResolvedReferences); - validationResult.populateOperationOutcome(outcome); + + if (validationResult != null) + validationResult.populateOperationOutcome(outcome); + resultEntry.getResponse().setOutcome(outcome); } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/UpdateStructureDefinitionCommand.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/UpdateStructureDefinitionCommand.java index 333811aef..2667f8c41 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/UpdateStructureDefinitionCommand.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/UpdateStructureDefinitionCommand.java @@ -50,11 +50,11 @@ public UpdateStructureDefinitionCommand(int index, Identity identity, PreferRetu ParameterConverter parameterConverter, ResponseGenerator responseGenerator, ReferenceExtractor referenceExtractor, ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, EventGenerator eventGenerator, - DefaultProfileProvider defaultProfileProvider, StructureDefinitionDao snapshotDao) + DefaultProfileProvider defaultProfileProvider, boolean enableValidation, StructureDefinitionDao snapshotDao) { super(index, identity, returnType, bundle, entry, serverBase, authorizationHelper, resource, dao, exceptionHandler, parameterConverter, responseGenerator, referenceExtractor, referenceResolver, - referenceCleaner, eventGenerator, defaultProfileProvider); + referenceCleaner, eventGenerator, defaultProfileProvider, enableValidation); this.snapshotDao = snapshotDao; } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/DefaultProfileProviderImpl.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/DefaultProfileProviderImpl.java index caca25726..a53fd56b3 100644 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/DefaultProfileProviderImpl.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/DefaultProfileProviderImpl.java @@ -10,40 +10,30 @@ import org.hl7.fhir.r4.model.Resource; import org.hl7.fhir.r4.model.ResourceType; -public enum DefaultProfileProviderImpl implements DefaultProfileProvider +public class DefaultProfileProviderImpl implements DefaultProfileProvider { - ENABLED + @Override + public void setDefaultProfile(Resource resource) { - @Override - public void setDefaultProfile(Resource resource) + if (resource != null) { - if (resource != null) - { - ResourceType resourceType = resource.getResourceType(); + ResourceType resourceType = resource.getResourceType(); - List<String> oldProfiles = resource.getMeta().getProfile().stream().filter(CanonicalType::hasValue) - .map(CanonicalType::getValue).toList(); + List<String> oldProfiles = resource.getMeta().getProfile().stream().filter(CanonicalType::hasValue) + .map(CanonicalType::getValue).toList(); - List<String> supportedDefaultProfiles = getSupportedDefaultProfiles(resourceType); + List<String> supportedDefaultProfiles = getSupportedDefaultProfiles(resourceType); - if (Collections.disjoint(oldProfiles, supportedDefaultProfiles)) - { - List<CanonicalType> newProfiles = Stream - .concat(getDefaultProfile(resourceType).stream(), oldProfiles.stream()) - .filter(Objects::nonNull).distinct().map(CanonicalType::new).toList(); + if (Collections.disjoint(oldProfiles, supportedDefaultProfiles)) + { + List<CanonicalType> newProfiles = Stream + .concat(getDefaultProfile(resourceType).stream(), oldProfiles.stream()).filter(Objects::nonNull) + .distinct().map(CanonicalType::new).toList(); - resource.getMeta().setProfile(newProfiles); - } + resource.getMeta().setProfile(newProfiles); } } - }, - DISABLED - { - @Override - public void setDefaultProfile(Resource resource) - { - } - }; + } @Override public Optional<String> getDefaultProfile(ResourceType resourceType) diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/InitialDataLoader.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/InitialDataLoader.java index 8c396aa89..82c5847b9 100644 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/InitialDataLoader.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/InitialDataLoader.java @@ -4,5 +4,5 @@ public interface InitialDataLoader { - void load(Bundle bundle, DefaultProfileProvider defaultProfileProvider); + void load(Bundle bundle, boolean enableValidation); } \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/InitialDataLoaderImpl.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/InitialDataLoaderImpl.java index 4a058e07a..6294764e4 100644 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/InitialDataLoaderImpl.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/InitialDataLoaderImpl.java @@ -50,7 +50,7 @@ public void afterPropertiesSet() throws Exception } @Override - public void load(Bundle bundle, DefaultProfileProvider defaultProfileProvider) + public void load(Bundle bundle, boolean enableValidation) { if (bundle == null) { @@ -59,7 +59,7 @@ public void load(Bundle bundle, DefaultProfileProvider defaultProfileProvider) } CommandList commands = commandFactory.createCommands(bundle, INITIAL_DATA_LOADER, PreferReturnType.MINIMAL, - PreferHandlingType.STRICT, defaultProfileProvider); + PreferHandlingType.STRICT, enableValidation); logger.debug("Executing command list for bundle with {} entries", bundle.getEntry().size()); Bundle result = commands.execute(); result.getEntry().forEach(this::logResult); diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/CommandConfig.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/CommandConfig.java index fcdbc5756..93902d186 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/CommandConfig.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/CommandConfig.java @@ -60,7 +60,7 @@ public CommandFactory commandFactory() helperConfig.parameterConverter(), eventConfig.eventManager(), eventConfig.eventGenerator(), authorizationConfig.authorizationHelper(), validationConfig.validationHelper(), snapshotConfig.snapshotGenerator(), validationConfig.validationRules(), - this::transactionResourceFactory); + validationConfig.defaultProfileProvider(), this::transactionResourceFactory); } @Bean diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/InitialDataLoaderConfig.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/InitialDataLoaderConfig.java index 8d8e35375..003f9cc4c 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/InitialDataLoaderConfig.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/InitialDataLoaderConfig.java @@ -22,7 +22,6 @@ import org.springframework.core.annotation.Order; import ca.uhn.fhir.parser.IParser; -import dev.dsf.fhir.service.DefaultProfileProviderImpl; import dev.dsf.fhir.service.InitialDataLoader; import dev.dsf.fhir.service.InitialDataLoaderImpl; @@ -57,7 +56,8 @@ public void onContextRefreshedEvent(ContextRefreshedEvent event) throws IOExcept { logger.info("Loading data from JAR bundle ..."); Bundle bundle = parseXmlBundle(p -> p.parseResource(Bundle.class, fileIn)); - initialDataLoader().load(bundle, DefaultProfileProviderImpl.DISABLED); + initialDataLoader().load(bundle, false); + // not validating resources from internal bundle, resource are validated during build } catch (Exception e) { @@ -76,7 +76,7 @@ public void onContextRefreshedEvent(ContextRefreshedEvent event) throws IOExcept logger.info("Loading data from external bundle ..."); Bundle bundle = parseXmlBundle(p -> p.parseResource(Bundle.class, resolved)); - initialDataLoader().load(bundle, DefaultProfileProviderImpl.ENABLED); + initialDataLoader().load(bundle, true); } catch (Exception e) { diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/ValidationConfig.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/ValidationConfig.java index b227ab38f..69566fce7 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/ValidationConfig.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/ValidationConfig.java @@ -94,6 +94,6 @@ public IValidationSupport validationSupportWithTransaction(Connection connection @Bean public DefaultProfileProvider defaultProfileProvider() { - return DefaultProfileProviderImpl.ENABLED; + return new DefaultProfileProviderImpl(); } } diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/WebserviceConfig.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/WebserviceConfig.java index a08ee9d69..ecdb61392 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/WebserviceConfig.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/spring/config/WebserviceConfig.java @@ -912,7 +912,7 @@ private RootServiceImpl rootServiceImpl() { return new RootServiceImpl(commandConfig.commandFactory(), helperConfig.responseGenerator(), helperConfig.parameterConverter(), helperConfig.exceptionHandler(), referenceConfig.referenceCleaner(), - historyConfig.historyService(), validationConfig.defaultProfileProvider()); + historyConfig.historyService()); } @Bean diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/impl/RootServiceImpl.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/impl/RootServiceImpl.java index 0560bae48..77fa6aecf 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/impl/RootServiceImpl.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/impl/RootServiceImpl.java @@ -14,7 +14,6 @@ import dev.dsf.fhir.help.ParameterConverter; import dev.dsf.fhir.help.ResponseGenerator; import dev.dsf.fhir.history.HistoryService; -import dev.dsf.fhir.service.DefaultProfileProvider; import dev.dsf.fhir.service.ReferenceCleaner; import dev.dsf.fhir.webservice.base.AbstractBasicService; import dev.dsf.fhir.webservice.specification.RootService; @@ -32,11 +31,10 @@ public class RootServiceImpl extends AbstractBasicService implements RootService private final ExceptionHandler exceptionHandler; private final ReferenceCleaner referenceCleaner; private final HistoryService historyService; - private final DefaultProfileProvider defaultProfileProvider; public RootServiceImpl(CommandFactory commandFactory, ResponseGenerator responseGenerator, ParameterConverter parameterConverter, ExceptionHandler exceptionHandler, ReferenceCleaner referenceCleaner, - HistoryService historyService, DefaultProfileProvider defaultProfileProvider) + HistoryService historyService) { this.commandFactory = commandFactory; this.responseGenerator = responseGenerator; @@ -44,7 +42,6 @@ public RootServiceImpl(CommandFactory commandFactory, ResponseGenerator response this.exceptionHandler = exceptionHandler; this.referenceCleaner = referenceCleaner; this.historyService = historyService; - this.defaultProfileProvider = defaultProfileProvider; } @Override @@ -56,7 +53,6 @@ public void afterPropertiesSet() throws Exception Objects.requireNonNull(exceptionHandler, "exceptionHandler"); Objects.requireNonNull(referenceCleaner, "referenceCleaner"); Objects.requireNonNull(historyService, "historyService"); - Objects.requireNonNull(defaultProfileProvider, "defaultProfileProvider"); } @Override @@ -73,9 +69,9 @@ public Response root(UriInfo uri, HttpHeaders headers) @Override public Response handleBundle(Bundle bundle, UriInfo uri, HttpHeaders headers) { - CommandList commands = exceptionHandler.handleBadBundleException(() -> commandFactory.createCommands(bundle, - getCurrentIdentity(), parameterConverter.getPreferReturn(headers), - parameterConverter.getPreferHandling(headers), defaultProfileProvider)); + CommandList commands = exceptionHandler + .handleBadBundleException(() -> commandFactory.createCommands(bundle, getCurrentIdentity(), + parameterConverter.getPreferReturn(headers), parameterConverter.getPreferHandling(headers))); Bundle result = commands.execute(); // throws WebApplicationException diff --git a/dsf-maven/dsf-maven-plugin/src/main/java/dev/dsf/maven/bundle/BundleGenerator.java b/dsf-maven/dsf-maven-plugin/src/main/java/dev/dsf/maven/bundle/BundleGenerator.java index 69dd3ec27..e49585d8e 100755 --- a/dsf-maven/dsf-maven-plugin/src/main/java/dev/dsf/maven/bundle/BundleGenerator.java +++ b/dsf-maven/dsf-maven-plugin/src/main/java/dev/dsf/maven/bundle/BundleGenerator.java @@ -188,9 +188,6 @@ public Bundle generateBundle() throws IOException { Resource r = newXmlParser().parseResource(resource, in); - // removing self declared profiles to allow initial data loader to make it past the FHIR validator - r.getMeta().setProfile(null); - String ifNoneExistValue = Files.readString(postFile); BundleEntryComponent entry = bundle.addEntry(); From abdcc9fbbcabfe96c3b13018af7bae985c43b2be Mon Sep 17 00:00:00 2001 From: Hauke Hund <hauke.hund@hs-heilbronn.de> Date: Wed, 29 Oct 2025 23:03:16 +0100 Subject: [PATCH 12/16] formatting --- .../dsf/bpe/v1/plugin/ProcessPluginImpl.java | 57 ++++++++++++++----- .../dsf/bpe/v2/plugin/ProcessPluginImpl.java | 20 +++++-- .../fhir/dao/command/CommandFactoryImpl.java | 6 +- .../fhir/service/DefaultProfileProvider.java | 2 +- ...tureDefinitionTaskProfileMigrationJob.java | 20 +++++-- .../secure/AbstractResourceServiceSecure.java | 2 +- .../secure/EndpointServiceSecure.java | 3 +- .../webservice/secure/GroupServiceSecure.java | 3 +- .../secure/LibraryServiceSecure.java | 3 +- .../secure/LocationServiceSecure.java | 3 +- .../secure/MeasureReportServiceSecure.java | 3 +- .../secure/MeasureServiceSecure.java | 3 +- .../secure/NamingSystemServiceSecure.java | 3 +- .../secure/OrganizationServiceSecure.java | 3 +- .../secure/PatientServiceSecure.java | 3 +- .../secure/PractitionerServiceSecure.java | 3 +- .../secure/ProvenanceServiceSecure.java | 3 +- .../secure/SubscriptionServiceSecure.java | 3 +- .../webservice/secure/TaskServiceSecure.java | 3 +- .../secure/ValueSetServiceSecure.java | 3 +- 20 files changed, 105 insertions(+), 44 deletions(-) diff --git a/dsf-bpe/dsf-bpe-process-api-v1-impl/src/main/java/dev/dsf/bpe/v1/plugin/ProcessPluginImpl.java b/dsf-bpe/dsf-bpe-process-api-v1-impl/src/main/java/dev/dsf/bpe/v1/plugin/ProcessPluginImpl.java index 32f9302ee..bdb8c63c6 100644 --- a/dsf-bpe/dsf-bpe-process-api-v1-impl/src/main/java/dev/dsf/bpe/v1/plugin/ProcessPluginImpl.java +++ b/dsf-bpe/dsf-bpe-process-api-v1-impl/src/main/java/dev/dsf/bpe/v1/plugin/ProcessPluginImpl.java @@ -200,7 +200,8 @@ else if (filename.endsWith(XML_SUFFIX)) .concat(Stream.of("http://dsf.dev/fhir/StructureDefinition/activity-definition"), oldProfiles .stream().filter(CanonicalType::hasValue).map(CanonicalType::getValue).map(p -> switch (p) { - case "http://dsf.dev/fhir/StructureDefinition/activity-definition|1.0.0" -> "http://dsf.dev/fhir/StructureDefinition/activity-definition"; + case "http://dsf.dev/fhir/StructureDefinition/activity-definition|1.0.0" -> + "http://dsf.dev/fhir/StructureDefinition/activity-definition"; default -> p; })) .distinct().map(CanonicalType::new).toList(); @@ -215,7 +216,8 @@ else if (filename.endsWith(XML_SUFFIX)) .concat(Stream.of("http://dsf.dev/fhir/StructureDefinition/code-system"), oldProfiles.stream() .filter(CanonicalType::hasValue).map(CanonicalType::getValue).map(p -> switch (p) { - case "http://dsf.dev/fhir/StructureDefinition/code-system|1.0.0" -> "http://dsf.dev/fhir/StructureDefinition/code-system"; + case "http://dsf.dev/fhir/StructureDefinition/code-system|1.0.0" -> + "http://dsf.dev/fhir/StructureDefinition/code-system"; default -> p; })) .distinct().map(CanonicalType::new).toList(); @@ -262,7 +264,9 @@ else if (filename.endsWith(XML_SUFFIX)) List<CanonicalType> newProfiles = oldProfiles.stream().filter(CanonicalType::hasValue) .map(CanonicalType::getValue).map(p -> switch (p) { - case "http://dsf.dev/fhir/StructureDefinition/questionnaire|1.0.0", "http://dsf.dev/fhir/StructureDefinition/questionnaire|1.5.0" -> "http://dsf.dev/fhir/StructureDefinition/questionnaire"; + case "http://dsf.dev/fhir/StructureDefinition/questionnaire|1.0.0", + "http://dsf.dev/fhir/StructureDefinition/questionnaire|1.5.0" -> + "http://dsf.dev/fhir/StructureDefinition/questionnaire"; default -> p; }).distinct().map(CanonicalType::new).toList(); @@ -276,7 +280,9 @@ else if (filename.endsWith(XML_SUFFIX)) String oldBaseDefinition = s.getBaseDefinition(); String newBaseDefinition = switch (oldBaseDefinition) { - case "http://dsf.dev/fhir/StructureDefinition/task-base", "http://dsf.dev/fhir/StructureDefinition/task-base|1.0.0" -> "http://dsf.dev/fhir/StructureDefinition/task"; + case "http://dsf.dev/fhir/StructureDefinition/task-base", + "http://dsf.dev/fhir/StructureDefinition/task-base|1.0.0" -> + "http://dsf.dev/fhir/StructureDefinition/task"; default -> oldBaseDefinition; }; s.setBaseDefinition(newBaseDefinition); @@ -287,11 +293,21 @@ else if (filename.endsWith(XML_SUFFIX)) { String newValueSet = switch (b.getValueSet()) { - case "http://dsf.dev/fhir/CodeSystem/bpmn-message|1.0.0", "http://dsf.dev/fhir/CodeSystem/bpmn-message|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/bpmn-message"; - case "http://dsf.dev/fhir/CodeSystem/organization-role|1.0.0", "http://dsf.dev/fhir/CodeSystem/organization-role|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/organization-role"; - case "http://dsf.dev/fhir/CodeSystem/practitioner-role|1.0.0", "http://dsf.dev/fhir/CodeSystem/practitioner-role|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/practitioner-role"; - case "http://dsf.dev/fhir/CodeSystem/process-authorization|1.0.0", "http://dsf.dev/fhir/CodeSystem/process-authorization|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/process-authorization"; - case "http://dsf.dev/fhir/CodeSystem/read-access-tag|1.0.0", "http://dsf.dev/fhir/CodeSystem/read-access-tag|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/read-access-tag"; + case "http://dsf.dev/fhir/CodeSystem/bpmn-message|1.0.0", + "http://dsf.dev/fhir/CodeSystem/bpmn-message|2.0.0" -> + "http://dsf.dev/fhir/CodeSystem/bpmn-message"; + case "http://dsf.dev/fhir/CodeSystem/organization-role|1.0.0", + "http://dsf.dev/fhir/CodeSystem/organization-role|2.0.0" -> + "http://dsf.dev/fhir/CodeSystem/organization-role"; + case "http://dsf.dev/fhir/CodeSystem/practitioner-role|1.0.0", + "http://dsf.dev/fhir/CodeSystem/practitioner-role|2.0.0" -> + "http://dsf.dev/fhir/CodeSystem/practitioner-role"; + case "http://dsf.dev/fhir/CodeSystem/process-authorization|1.0.0", + "http://dsf.dev/fhir/CodeSystem/process-authorization|2.0.0" -> + "http://dsf.dev/fhir/CodeSystem/process-authorization"; + case "http://dsf.dev/fhir/CodeSystem/read-access-tag|1.0.0", + "http://dsf.dev/fhir/CodeSystem/read-access-tag|2.0.0" -> + "http://dsf.dev/fhir/CodeSystem/read-access-tag"; default -> b.getValueSet(); }; @@ -314,7 +330,8 @@ else if (filename.endsWith(XML_SUFFIX)) .concat(Stream.of("http://dsf.dev/fhir/StructureDefinition/value-set"), oldProfiles.stream() .filter(CanonicalType::hasValue).map(CanonicalType::getValue).map(p -> switch (p) { - case "http://dsf.dev/fhir/StructureDefinition/value-set|1.0.0" -> "http://dsf.dev/fhir/StructureDefinition/value-set"; + case "http://dsf.dev/fhir/StructureDefinition/value-set|1.0.0" -> + "http://dsf.dev/fhir/StructureDefinition/value-set"; default -> p; })) .distinct().map(CanonicalType::new).toList(); @@ -332,11 +349,21 @@ else if (filename.endsWith(XML_SUFFIX)) { return switch (b.getValueSet()) { - case "http://dsf.dev/fhir/CodeSystem/bpmn-message|1.0.0", "http://dsf.dev/fhir/CodeSystem/bpmn-message|2.0.0" -> false; - case "http://dsf.dev/fhir/CodeSystem/organization-role|1.0.0", "http://dsf.dev/fhir/CodeSystem/organization-role|2.0.0" -> false; - case "http://dsf.dev/fhir/CodeSystem/practitioner-role|1.0.0", "http://dsf.dev/fhir/CodeSystem/practitioner-role|2.0.0" -> false; - case "http://dsf.dev/fhir/CodeSystem/process-authorization|1.0.0", "http://dsf.dev/fhir/CodeSystem/process-authorization|2.0.0" -> false; - case "http://dsf.dev/fhir/CodeSystem/read-access-tag|1.0.0", "http://dsf.dev/fhir/CodeSystem/read-access-tag|2.0.0" -> false; + case "http://dsf.dev/fhir/CodeSystem/bpmn-message|1.0.0", + "http://dsf.dev/fhir/CodeSystem/bpmn-message|2.0.0" -> + false; + case "http://dsf.dev/fhir/CodeSystem/organization-role|1.0.0", + "http://dsf.dev/fhir/CodeSystem/organization-role|2.0.0" -> + false; + case "http://dsf.dev/fhir/CodeSystem/practitioner-role|1.0.0", + "http://dsf.dev/fhir/CodeSystem/practitioner-role|2.0.0" -> + false; + case "http://dsf.dev/fhir/CodeSystem/process-authorization|1.0.0", + "http://dsf.dev/fhir/CodeSystem/process-authorization|2.0.0" -> + false; + case "http://dsf.dev/fhir/CodeSystem/read-access-tag|1.0.0", + "http://dsf.dev/fhir/CodeSystem/read-access-tag|2.0.0" -> + false; default -> true; }; }); diff --git a/dsf-bpe/dsf-bpe-process-api-v2-impl/src/main/java/dev/dsf/bpe/v2/plugin/ProcessPluginImpl.java b/dsf-bpe/dsf-bpe-process-api-v2-impl/src/main/java/dev/dsf/bpe/v2/plugin/ProcessPluginImpl.java index 6a3de9cd3..254950f08 100644 --- a/dsf-bpe/dsf-bpe-process-api-v2-impl/src/main/java/dev/dsf/bpe/v2/plugin/ProcessPluginImpl.java +++ b/dsf-bpe/dsf-bpe-process-api-v2-impl/src/main/java/dev/dsf/bpe/v2/plugin/ProcessPluginImpl.java @@ -294,11 +294,21 @@ else if (filename.endsWith(XML_SUFFIX)) { return switch (b.getValueSet()) { - case "http://dsf.dev/fhir/CodeSystem/bpmn-message|1.0.0", "http://dsf.dev/fhir/CodeSystem/bpmn-message|2.0.0" -> false; - case "http://dsf.dev/fhir/CodeSystem/organization-role|1.0.0", "http://dsf.dev/fhir/CodeSystem/organization-role|2.0.0" -> false; - case "http://dsf.dev/fhir/CodeSystem/practitioner-role|1.0.0", "http://dsf.dev/fhir/CodeSystem/practitioner-role|2.0.0" -> false; - case "http://dsf.dev/fhir/CodeSystem/process-authorization|1.0.0", "http://dsf.dev/fhir/CodeSystem/process-authorization|2.0.0" -> false; - case "http://dsf.dev/fhir/CodeSystem/read-access-tag|1.0.0", "http://dsf.dev/fhir/CodeSystem/read-access-tag|2.0.0" -> false; + case "http://dsf.dev/fhir/CodeSystem/bpmn-message|1.0.0", + "http://dsf.dev/fhir/CodeSystem/bpmn-message|2.0.0" -> + false; + case "http://dsf.dev/fhir/CodeSystem/organization-role|1.0.0", + "http://dsf.dev/fhir/CodeSystem/organization-role|2.0.0" -> + false; + case "http://dsf.dev/fhir/CodeSystem/practitioner-role|1.0.0", + "http://dsf.dev/fhir/CodeSystem/practitioner-role|2.0.0" -> + false; + case "http://dsf.dev/fhir/CodeSystem/process-authorization|1.0.0", + "http://dsf.dev/fhir/CodeSystem/process-authorization|2.0.0" -> + false; + case "http://dsf.dev/fhir/CodeSystem/read-access-tag|1.0.0", + "http://dsf.dev/fhir/CodeSystem/read-access-tag|2.0.0" -> + false; default -> true; }; }); diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactoryImpl.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactoryImpl.java index 95b447c85..e65fd71e2 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactoryImpl.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactoryImpl.java @@ -238,9 +238,9 @@ public CommandList createCommands(Bundle bundle, Identity identity, PreferReturn return switch (bundle.getType()) { - case BATCH -> new BatchCommandList(dataSource, permanentDeleteDataSource, dbUsersGroup, - exceptionHandler, commands, validationHelper, snapshotGenerator, eventHandler, - responseGenerator); + case BATCH -> + new BatchCommandList(dataSource, permanentDeleteDataSource, dbUsersGroup, exceptionHandler, + commands, validationHelper, snapshotGenerator, eventHandler, responseGenerator); case TRANSACTION -> new TransactionCommandList(dataSource, permanentDeleteDataSource, dbUsersGroup, exceptionHandler, commands, transactionResourcesFactory, responseGenerator); diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/DefaultProfileProvider.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/DefaultProfileProvider.java index 228a90c4f..5eb6b5d66 100644 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/DefaultProfileProvider.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/DefaultProfileProvider.java @@ -12,7 +12,7 @@ public interface DefaultProfileProvider * Set the default profile if non of the {@link #getSupportedDefaultProfiles(ResourceType)} are already set.<br> * <br> * Does nothing if the given resource is <code>null</code> - * + * * @param resource * may be <code>null</code> */ diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/migration/StructureDefinitionTaskProfileMigrationJob.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/migration/StructureDefinitionTaskProfileMigrationJob.java index f050144ba..7018ded5f 100644 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/migration/StructureDefinitionTaskProfileMigrationJob.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/service/migration/StructureDefinitionTaskProfileMigrationJob.java @@ -130,11 +130,21 @@ private void removeVersionsFromDsfValueSetBindings(StructureDefinition sd) { String newValueSet = switch (b.getValueSet()) { - case "http://dsf.dev/fhir/CodeSystem/bpmn-message|1.0.0", "http://dsf.dev/fhir/CodeSystem/bpmn-message|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/bpmn-message"; - case "http://dsf.dev/fhir/CodeSystem/organization-role|1.0.0", "http://dsf.dev/fhir/CodeSystem/organization-role|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/organization-role"; - case "http://dsf.dev/fhir/CodeSystem/practitioner-role|1.0.0", "http://dsf.dev/fhir/CodeSystem/practitioner-role|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/practitioner-role"; - case "http://dsf.dev/fhir/CodeSystem/process-authorization|1.0.0", "http://dsf.dev/fhir/CodeSystem/process-authorization|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/process-authorization"; - case "http://dsf.dev/fhir/CodeSystem/read-access-tag|1.0.0", "http://dsf.dev/fhir/CodeSystem/read-access-tag|2.0.0" -> "http://dsf.dev/fhir/CodeSystem/read-access-tag"; + case "http://dsf.dev/fhir/CodeSystem/bpmn-message|1.0.0", + "http://dsf.dev/fhir/CodeSystem/bpmn-message|2.0.0" -> + "http://dsf.dev/fhir/CodeSystem/bpmn-message"; + case "http://dsf.dev/fhir/CodeSystem/organization-role|1.0.0", + "http://dsf.dev/fhir/CodeSystem/organization-role|2.0.0" -> + "http://dsf.dev/fhir/CodeSystem/organization-role"; + case "http://dsf.dev/fhir/CodeSystem/practitioner-role|1.0.0", + "http://dsf.dev/fhir/CodeSystem/practitioner-role|2.0.0" -> + "http://dsf.dev/fhir/CodeSystem/practitioner-role"; + case "http://dsf.dev/fhir/CodeSystem/process-authorization|1.0.0", + "http://dsf.dev/fhir/CodeSystem/process-authorization|2.0.0" -> + "http://dsf.dev/fhir/CodeSystem/process-authorization"; + case "http://dsf.dev/fhir/CodeSystem/read-access-tag|1.0.0", + "http://dsf.dev/fhir/CodeSystem/read-access-tag|2.0.0" -> + "http://dsf.dev/fhir/CodeSystem/read-access-tag"; default -> b.getValueSet(); }; diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/AbstractResourceServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/AbstractResourceServiceSecure.java index 937b936c5..9ab38004f 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/AbstractResourceServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/AbstractResourceServiceSecure.java @@ -119,7 +119,7 @@ private Response withResourceValidation(R resource, Predicate<R> failValidationO HttpHeaders headers, String method, Supplier<Response> delegate) { defaultProfileProvider.setDefaultProfile(resource); - + ValidationResult validationResult = resourceValidator.validate(resource); if (failValidationOnErrorOrFatal.test(resource) && validationResult.getMessages().stream() diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/EndpointServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/EndpointServiceSecure.java index 7d5cdbe05..6318e035c 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/EndpointServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/EndpointServiceSecure.java @@ -22,7 +22,8 @@ public EndpointServiceSecure(EndpointService delegate, String serverBase, Respon ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, EndpointDao endpointDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Endpoint> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Endpoint.class, endpointDao, exceptionHandler, parameterConverter, authorizationRule, resourceValidator, diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/GroupServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/GroupServiceSecure.java index 280134f81..9fe04f011 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/GroupServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/GroupServiceSecure.java @@ -22,7 +22,8 @@ public GroupServiceSecure(GroupService delegate, String serverBase, ResponseGene ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, GroupDao groupDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Group> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Group.class, groupDao, exceptionHandler, parameterConverter, authorizationRule, resourceValidator, diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/LibraryServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/LibraryServiceSecure.java index fe976ceec..aba52bdf4 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/LibraryServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/LibraryServiceSecure.java @@ -22,7 +22,8 @@ public LibraryServiceSecure(LibraryService delegate, String serverBase, Response ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, LibraryDao libraryDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Library> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Library.class, libraryDao, exceptionHandler, parameterConverter, authorizationRule, resourceValidator, diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/LocationServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/LocationServiceSecure.java index bd5287901..5450cd75f 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/LocationServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/LocationServiceSecure.java @@ -22,7 +22,8 @@ public LocationServiceSecure(LocationService delegate, String serverBase, Respon ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, LocationDao locationDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Location> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Location.class, locationDao, exceptionHandler, parameterConverter, authorizationRule, resourceValidator, diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/MeasureReportServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/MeasureReportServiceSecure.java index eb97b5bdc..8faf7861d 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/MeasureReportServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/MeasureReportServiceSecure.java @@ -23,7 +23,8 @@ public MeasureReportServiceSecure(MeasureReportService delegate, String serverBa ResponseGenerator responseGenerator, ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, MeasureReportDao measureReportDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<MeasureReport> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, MeasureReport.class, measureReportDao, exceptionHandler, parameterConverter, authorizationRule, diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/MeasureServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/MeasureServiceSecure.java index 7df1ffc26..fc9f7d7fa 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/MeasureServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/MeasureServiceSecure.java @@ -22,7 +22,8 @@ public MeasureServiceSecure(MeasureService delegate, String serverBase, Response ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, MeasureDao measureDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Measure> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Measure.class, measureDao, exceptionHandler, parameterConverter, authorizationRule, resourceValidator, diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/NamingSystemServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/NamingSystemServiceSecure.java index a7a96cb67..e3c121ac4 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/NamingSystemServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/NamingSystemServiceSecure.java @@ -22,7 +22,8 @@ public NamingSystemServiceSecure(NamingSystemService delegate, String serverBase ResponseGenerator responseGenerator, ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, NamingSystemDao naminngSystemDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<NamingSystem> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, NamingSystem.class, naminngSystemDao, exceptionHandler, parameterConverter, authorizationRule, diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/OrganizationServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/OrganizationServiceSecure.java index 6eecb9590..09c418291 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/OrganizationServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/OrganizationServiceSecure.java @@ -22,7 +22,8 @@ public OrganizationServiceSecure(OrganizationService delegate, String serverBase ResponseGenerator responseGenerator, ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, OrganizationDao organizationDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Organization> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Organization.class, organizationDao, exceptionHandler, parameterConverter, authorizationRule, diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PatientServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PatientServiceSecure.java index 0ab947d30..2c83571e8 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PatientServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PatientServiceSecure.java @@ -22,7 +22,8 @@ public PatientServiceSecure(PatientService delegate, String serverBase, Response ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, PatientDao patientDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Patient> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Patient.class, patientDao, exceptionHandler, parameterConverter, authorizationRule, resourceValidator, diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PractitionerServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PractitionerServiceSecure.java index b970e0548..fa0c61dd7 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PractitionerServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/PractitionerServiceSecure.java @@ -22,7 +22,8 @@ public PractitionerServiceSecure(PractitionerService delegate, String serverBase ResponseGenerator responseGenerator, ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, PractitionerDao practitionerDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Practitioner> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Practitioner.class, practitionerDao, exceptionHandler, parameterConverter, authorizationRule, diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ProvenanceServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ProvenanceServiceSecure.java index 6760c35cc..7c18df831 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ProvenanceServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ProvenanceServiceSecure.java @@ -22,7 +22,8 @@ public ProvenanceServiceSecure(ProvenanceService delegate, String serverBase, Re ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, ProvenanceDao provenanceDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Provenance> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Provenance.class, provenanceDao, exceptionHandler, parameterConverter, authorizationRule, diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/SubscriptionServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/SubscriptionServiceSecure.java index df3c32648..98dd01318 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/SubscriptionServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/SubscriptionServiceSecure.java @@ -22,7 +22,8 @@ public SubscriptionServiceSecure(SubscriptionService delegate, String serverBase ResponseGenerator responseGenerator, ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, SubscriptionDao subscriptionDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Subscription> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Subscription.class, subscriptionDao, exceptionHandler, parameterConverter, authorizationRule, diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/TaskServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/TaskServiceSecure.java index b3a7152fc..69b14d3cc 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/TaskServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/TaskServiceSecure.java @@ -21,7 +21,8 @@ public TaskServiceSecure(TaskService delegate, String serverBase, ResponseGenera ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, TaskDao taskDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<Task> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, Task.class, taskDao, exceptionHandler, parameterConverter, authorizationRule, resourceValidator, diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ValueSetServiceSecure.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ValueSetServiceSecure.java index 3ee561e15..4bfe669fd 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ValueSetServiceSecure.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/webservice/secure/ValueSetServiceSecure.java @@ -22,7 +22,8 @@ public ValueSetServiceSecure(ValueSetService delegate, String serverBase, Respon ReferenceResolver referenceResolver, ReferenceCleaner referenceCleaner, ReferenceExtractor referenceExtractor, ValueSetDao valueSetDao, ExceptionHandler exceptionHandler, ParameterConverter parameterConverter, AuthorizationRule<ValueSet> authorizationRule, - ResourceValidator resourceValidator, ValidationRules validationRules, DefaultProfileProvider defaultProfileProvider) + ResourceValidator resourceValidator, ValidationRules validationRules, + DefaultProfileProvider defaultProfileProvider) { super(delegate, serverBase, responseGenerator, referenceResolver, referenceCleaner, referenceExtractor, ValueSet.class, valueSetDao, exceptionHandler, parameterConverter, authorizationRule, resourceValidator, From dd8a9ca5a91594bc9112459940e1cf7aa22185f4 Mon Sep 17 00:00:00 2001 From: Hauke Hund <hauke.hund@hs-heilbronn.de> Date: Wed, 29 Oct 2025 23:56:56 +0100 Subject: [PATCH 13/16] missing annotations, modified ActivityDefinition profile, improved tests - Added missing override annotations - ActivityDefinition profile now also requires date to be set. MII and DSF plugins have ActivityDefinition.date set. - Added AbstractMetaTagProfileTest and AbstractMetaDataResourceProfileTest as base classes to some tests. --- .../dsf/fhir/dao/command/CommandFactory.java | 2 +- .../dsf-test-activity-definition1-1.0.xml | 4 +- .../dsf-test-activity-definition10-1.0.xml | 1 + .../dsf-test-activity-definition11-1.0.xml | 4 +- .../dsf-test-activity-definition12-1.0.xml | 4 +- .../dsf-test-activity-definition13-1.0.xml | 4 +- .../dsf-test-activity-definition14-1.0.xml | 4 +- .../dsf-test-activity-definition2-1.0.xml | 4 +- .../dsf-test-activity-definition2-1.7.xml | 1 + .../dsf-test-activity-definition3-1.0.xml | 4 +- .../dsf-test-activity-definition4-1.0.xml | 4 +- .../dsf-test-activity-definition5-1.0.xml | 4 +- .../dsf-test-activity-definition6-1.0.xml | 4 +- .../dsf-test-activity-definition7-1.0.xml | 4 +- .../dsf-test-activity-definition8-1.0.xml | 4 +- .../dsf-test-activity-definition9-1.0.xml | 4 +- .../dsf-activity-definition-2.0.0.xml | 4 + .../ActivityDefinitionProfileTest.java | 116 ++++++++++++------ .../dsf/fhir/profiles/BinaryProfileTest.java | 1 + .../dsf/fhir/profiles/BundleProfileTest.java | 1 + .../DocumentReferenceProfileTest.java | 1 + .../dsf/fhir/profiles/GroupProfileTest.java | 1 + .../HealthcareServiceProfileTest.java | 1 + .../dsf/fhir/profiles/LibraryProfileTest.java | 1 + .../fhir/profiles/LocationProfileTest.java | 1 + .../dsf/fhir/profiles/MeasureProfileTest.java | 1 + .../profiles/MeasureReportProfileTest.java | 1 + .../profiles/NamingSystemProfileTest.java | 1 + .../OrganizationAffiliationProfileTest.java | 22 +++- .../profiles/OrganizationProfileTest.java | 43 ++++--- .../dsf/fhir/profiles/PatientProfileTest.java | 1 + .../profiles/PractitionerProfileTest.java | 1 + .../profiles/PractitionerRoleProfileTest.java | 1 + .../fhir/profiles/ProvenanceProfileTest.java | 1 + .../StructureDefinitionProfileTest.java | 1 + .../profiles/SubscriptionProfileTest.java | 1 + .../fhir/profiles/ValueSetProfileTest.java | 1 + 37 files changed, 174 insertions(+), 84 deletions(-) diff --git a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactory.java b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactory.java index f0d9388f5..0973d0c18 100755 --- a/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactory.java +++ b/dsf-fhir/dsf-fhir-server/src/main/java/dev/dsf/fhir/dao/command/CommandFactory.java @@ -38,7 +38,7 @@ default CommandList createCommands(Bundle bundle, Identity identity, PreferRetur * not <code>null</code> * @param handlingType * not <code>null</code> - * @param enableValidation, + * @param enableValidation * set to <code>false</code> to disable FHIR resource validation, useful for initial data loader with * internal bundle * diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition1-1.0.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition1-1.0.xml index d362bfe5a..4ee076b21 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition1-1.0.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition1-1.0.xml @@ -1,5 +1,4 @@ -<ActivityDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<ActivityDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> <tag> @@ -30,5 +29,6 @@ <url value="http://dsf.dev/bpe/Process/test" /> <version value="1.0" /> <status value="active" /> + <date value="2025-10-29" /> <kind value="Task" /> </ActivityDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition10-1.0.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition10-1.0.xml index 01a9b0570..0c7ec8f7a 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition10-1.0.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition10-1.0.xml @@ -65,5 +65,6 @@ <url value="http://dsf.dev/bpe/Process/test" /> <version value="1.0" /> <status value="active" /> + <date value="2025-10-29" /> <kind value="Task" /> </ActivityDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition11-1.0.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition11-1.0.xml index 05131cd45..14ca23fae 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition11-1.0.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition11-1.0.xml @@ -1,5 +1,4 @@ -<ActivityDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<ActivityDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> <tag> @@ -36,5 +35,6 @@ <url value="http://dsf.dev/bpe/Process/test" /> <version value="1.0" /> <status value="active" /> + <date value="2025-10-29" /> <kind value="Task" /> </ActivityDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition12-1.0.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition12-1.0.xml index f1ef5323e..1f5e8112b 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition12-1.0.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition12-1.0.xml @@ -1,5 +1,4 @@ -<ActivityDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<ActivityDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> <tag> @@ -44,5 +43,6 @@ <url value="http://dsf.dev/bpe/Process/test" /> <version value="1.0" /> <status value="active" /> + <date value="2025-10-29" /> <kind value="Task" /> </ActivityDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition13-1.0.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition13-1.0.xml index 9f3bcfbb9..707eb5b45 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition13-1.0.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition13-1.0.xml @@ -1,5 +1,4 @@ -<ActivityDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<ActivityDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> <tag> @@ -42,5 +41,6 @@ <url value="http://dsf.dev/bpe/Process/test" /> <version value="1.0" /> <status value="active" /> + <date value="2025-10-29" /> <kind value="Task" /> </ActivityDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition14-1.0.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition14-1.0.xml index 8486822e1..e05350975 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition14-1.0.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition14-1.0.xml @@ -1,5 +1,4 @@ -<ActivityDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<ActivityDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> <tag> @@ -44,5 +43,6 @@ <url value="http://dsf.dev/bpe/Process/test" /> <version value="1.0" /> <status value="active" /> + <date value="2025-10-29" /> <kind value="Task" /> </ActivityDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition2-1.0.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition2-1.0.xml index 95cab0625..fed9ffcab 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition2-1.0.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition2-1.0.xml @@ -1,5 +1,4 @@ -<ActivityDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<ActivityDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> <tag> @@ -30,5 +29,6 @@ <url value="http://dsf.dev/bpe/Process/test" /> <version value="1.0" /> <status value="active" /> + <date value="2025-10-29" /> <kind value="Task" /> </ActivityDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition2-1.7.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition2-1.7.xml index 1f33f4dc3..35e4d863f 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition2-1.7.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition2-1.7.xml @@ -28,5 +28,6 @@ <url value="http://dsf.dev/bpe/Process/test" /> <version value="1.7" /> <status value="active" /> + <date value="2025-10-29" /> <kind value="Task" /> </ActivityDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition3-1.0.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition3-1.0.xml index fe080893c..4be4ba202 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition3-1.0.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition3-1.0.xml @@ -1,5 +1,4 @@ -<ActivityDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<ActivityDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> <profile value="http://dsf.dev/fhir/StructureDefinition/activity-definition" /> @@ -51,5 +50,6 @@ <url value="http://dsf.dev/bpe/Process/test" /> <version value="1.0" /> <status value="active" /> + <date value="2025-10-29" /> <kind value="Task" /> </ActivityDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition4-1.0.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition4-1.0.xml index 3ebeb978b..23ece033d 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition4-1.0.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition4-1.0.xml @@ -1,5 +1,4 @@ -<ActivityDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<ActivityDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> <profile value="http://dsf.dev/fhir/StructureDefinition/activity-definition" /> @@ -59,5 +58,6 @@ <url value="http://dsf.dev/bpe/Process/test" /> <version value="1.0" /> <status value="active" /> + <date value="2025-10-29" /> <kind value="Task" /> </ActivityDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition5-1.0.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition5-1.0.xml index 04f11e110..bc56bcfd9 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition5-1.0.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition5-1.0.xml @@ -1,5 +1,4 @@ -<ActivityDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<ActivityDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> <tag> @@ -36,5 +35,6 @@ <url value="http://dsf.dev/bpe/Process/test" /> <version value="1.0" /> <status value="active" /> + <date value="2025-10-29" /> <kind value="Task" /> </ActivityDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition6-1.0.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition6-1.0.xml index 40d1381d4..439ecb718 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition6-1.0.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition6-1.0.xml @@ -1,5 +1,4 @@ -<ActivityDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<ActivityDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> <tag> @@ -36,5 +35,6 @@ <url value="http://dsf.dev/bpe/Process/test" /> <version value="1.0" /> <status value="active" /> + <date value="2025-10-29" /> <kind value="Task" /> </ActivityDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition7-1.0.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition7-1.0.xml index c6b9badff..ea584e83f 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition7-1.0.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition7-1.0.xml @@ -1,5 +1,4 @@ -<ActivityDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<ActivityDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> <profile value="http://dsf.dev/fhir/StructureDefinition/activity-definition" /> @@ -59,5 +58,6 @@ <url value="http://dsf.dev/bpe/Process/test" /> <version value="1.0" /> <status value="active" /> + <date value="2025-10-29" /> <kind value="Task" /> </ActivityDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition8-1.0.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition8-1.0.xml index 6ff92ad71..936074904 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition8-1.0.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition8-1.0.xml @@ -1,5 +1,4 @@ -<ActivityDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<ActivityDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> <profile value="http://dsf.dev/fhir/StructureDefinition/activity-definition" /> @@ -59,5 +58,6 @@ <url value="http://dsf.dev/bpe/Process/test" /> <version value="1.0" /> <status value="active" /> + <date value="2025-10-29" /> <kind value="Task" /> </ActivityDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition9-1.0.xml b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition9-1.0.xml index 3e86e1143..6df651fe7 100644 --- a/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition9-1.0.xml +++ b/dsf-fhir/dsf-fhir-server/src/test/resources/integration/task/dsf-test-activity-definition9-1.0.xml @@ -1,5 +1,4 @@ -<ActivityDefinition xmlns="http://hl7.org/fhir" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +<ActivityDefinition xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir http://hl7.org/fhir/R4/fhir-single.xsd"> <meta> <profile value="http://dsf.dev/fhir/StructureDefinition/activity-definition" /> @@ -65,5 +64,6 @@ <url value="http://dsf.dev/bpe/Process/test" /> <version value="1.0" /> <status value="active" /> + <date value="2025-10-29" /> <kind value="Task" /> </ActivityDefinition> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-activity-definition-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-activity-definition-2.0.0.xml index d577a86b5..9482fed25 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-activity-definition-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-activity-definition-2.0.0.xml @@ -56,6 +56,10 @@ <path value="ActivityDefinition.version" /> <min value="1" /> </element> + <element id="ActivityDefinition.date"> + <path value="ActivityDefinition.date" /> + <min value="1" /> + </element> <element id="ActivityDefinition.kind"> <path value="ActivityDefinition.kind" /> <min value="1" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ActivityDefinitionProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ActivityDefinitionProfileTest.java index b53fd5c3a..01fa6454e 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ActivityDefinitionProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ActivityDefinitionProfileTest.java @@ -4,6 +4,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import java.util.Date; import java.util.List; import org.hl7.fhir.r4.model.ActivityDefinition; @@ -24,7 +25,7 @@ import dev.dsf.fhir.validation.ResourceValidatorImpl; import dev.dsf.fhir.validation.ValidationSupportRule; -public class ActivityDefinitionProfileTest extends AbstractProfileTest +public class ActivityDefinitionProfileTest extends AbstractMetaDataResourceProfileTest<ActivityDefinition> { private static final Logger logger = LoggerFactory.getLogger(ActivityDefinitionProfileTest.class); @@ -57,26 +58,57 @@ public class ActivityDefinitionProfileTest extends AbstractProfileTest private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); - private ActivityDefinition createActivityDefinition() + @Override + protected ActivityDefinition create() { - var ad = new ActivityDefinition(); - ad.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/activity-definition"); - ad.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); - ad.setUrl("http://dsf.dev/bpe/Process/test"); - ad.setVersion("2.0.0"); - ad.setStatus(PublicationStatus.ACTIVE); - ad.setKind(ActivityDefinitionKind.TASK); - ad.setName("TestProcess"); - - return ad; + ActivityDefinition d = createWithouAuthExtension(); + + Extension processAuthorization = d.addExtension() + .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-process-authorization"); + processAuthorization.addExtension("message-name", new StringType("foo")); + processAuthorization.addExtension("task-profile", + new CanonicalType("http://bar.org/fhir/StructureDefinition/baz")); + processAuthorization.addExtension("requester", + new Coding("http://dsf.dev/fhir/CodeSystem/process-authorization", "REMOTE_ALL", null)); + processAuthorization.addExtension("recipient", + new Coding("http://dsf.dev/fhir/CodeSystem/process-authorization", "LOCAL_ALL", null)); + + return d; + } + + protected ActivityDefinition createWithouAuthExtension() + { + ActivityDefinition d = new ActivityDefinition(); + d.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/activity-definition"); + d.setUrl("http://dsf.dev/bpe/Process/test"); + d.setVersion("2.0.0"); + d.setStatus(PublicationStatus.ACTIVE); + d.setKind(ActivityDefinitionKind.TASK); + d.setName("TestProcess"); + d.setDate(new Date()); + + return d; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } + + @Test + public void runMetaDataResourceTests() throws Exception + { + doRunMetaDataResourceTests(resourceValidator); } @Test public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteAllRecipientLocalAllValid() throws Exception { - ActivityDefinition ad = createActivityDefinition(); - Extension processAuthorization = ad.addExtension() + ActivityDefinition d = createWithouAuthExtension(); + d.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); + Extension processAuthorization = d.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-process-authorization"); processAuthorization.addExtension("message-name", new StringType("foo")); processAuthorization.addExtension("task-profile", @@ -86,9 +118,9 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteAllReci processAuthorization.addExtension("recipient", new Coding("http://dsf.dev/fhir/CodeSystem/process-authorization", "LOCAL_ALL", null)); - logResource(ad); + logResource(d); - ValidationResult result = resourceValidator.validate(ad); + ValidationResult result = resourceValidator.validate(d); ValidationSupportRule.logValidationMessages(logger::debug, result); @@ -99,8 +131,9 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteAllReci public void testActivityDefinitionWithProcessAuthorizationRequesterLocalPractitionerRoleRecipientLocalAllValid() throws Exception { - ActivityDefinition ad = createActivityDefinition(); - Extension processAuthorization = ad.addExtension() + ActivityDefinition d = createWithouAuthExtension(); + d.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); + Extension processAuthorization = d.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-process-authorization"); processAuthorization.addExtension("message-name", new StringType("foo")); processAuthorization.addExtension("task-profile", @@ -115,9 +148,9 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterLocalPractiti processAuthorization.addExtension("recipient", new Coding("http://dsf.dev/fhir/CodeSystem/process-authorization", "LOCAL_ALL", null)); - logResource(ad); + logResource(d); - ValidationResult result = resourceValidator.validate(ad); + ValidationResult result = resourceValidator.validate(d); ValidationSupportRule.logValidationMessages(logger::debug, result); @@ -128,8 +161,9 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterLocalPractiti public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteOrganizationRecipientLocalParentOrganizationRoleValid() throws Exception { - ActivityDefinition ad = createActivityDefinition(); - Extension processAuthorization = ad.addExtension() + ActivityDefinition d = createWithouAuthExtension(); + d.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); + Extension processAuthorization = d.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-process-authorization"); processAuthorization.addExtension("message-name", new StringType("foo")); processAuthorization.addExtension("task-profile", @@ -152,9 +186,9 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteOrganiz new Coding("http://dsf.dev/fhir/CodeSystem/organization-role", "DIC", null)); processAuthorization.addExtension("recipient", recipientCoding); - logResource(ad); + logResource(d); - ValidationResult result = resourceValidator.validate(ad); + ValidationResult result = resourceValidator.validate(d); ValidationSupportRule.logValidationMessages(logger::debug, result); @@ -165,8 +199,9 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteOrganiz public void testActivityDefinitionWithProcessAuthorizationRequesterOrganizationPractitionerRoleRecipientLocalParentOrganizationRoleValid() throws Exception { - ActivityDefinition ad = createActivityDefinition(); - Extension processAuthorization = ad.addExtension() + ActivityDefinition d = createWithouAuthExtension(); + d.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); + Extension processAuthorization = d.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-process-authorization"); processAuthorization.addExtension("message-name", new StringType("foo")); processAuthorization.addExtension("task-profile", @@ -193,9 +228,9 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterOrganizationP new Coding("http://dsf.dev/fhir/CodeSystem/organization-role", "DIC", null)); processAuthorization.addExtension("recipient", recipientCoding); - logResource(ad); + logResource(d); - ValidationResult result = resourceValidator.validate(ad); + ValidationResult result = resourceValidator.validate(d); ValidationSupportRule.logValidationMessages(logger::debug, result); @@ -206,8 +241,9 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterOrganizationP public void testActivityDefinitionWithProcessAuthorizationRequesterParentOrganizationRolePractitionerRoleRecipientLocalAllValid() throws Exception { - ActivityDefinition ad = createActivityDefinition(); - Extension processAuthorization = ad.addExtension() + ActivityDefinition d = createWithouAuthExtension(); + d.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); + Extension processAuthorization = d.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-process-authorization"); processAuthorization.addExtension("message-name", new StringType("foo")); processAuthorization.addExtension("task-profile", @@ -229,9 +265,9 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterParentOrganiz processAuthorization.addExtension("recipient", new Coding("http://dsf.dev/fhir/CodeSystem/process-authorization", "LOCAL_ALL", null)); - logResource(ad); + logResource(d); - ValidationResult result = resourceValidator.validate(ad); + ValidationResult result = resourceValidator.validate(d); ValidationSupportRule.logValidationMessages(logger::debug, result); @@ -242,8 +278,9 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterParentOrganiz public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteOrganizationRecipientRemoteConsortiumRoleNotValid() throws Exception { - ActivityDefinition ad = createActivityDefinition(); - Extension processAuthorization = ad.addExtension() + ActivityDefinition d = createWithouAuthExtension(); + d.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); + Extension processAuthorization = d.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-process-authorization"); processAuthorization.addExtension("message-name", new StringType("foo")); processAuthorization.addExtension("task-profile", @@ -260,9 +297,9 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteOrganiz null); processAuthorization.addExtension("recipient", recipientCoding); - logResource(ad); + logResource(d); - ValidationResult result = resourceValidator.validate(ad); + ValidationResult result = resourceValidator.validate(d); ValidationSupportRule.logValidationMessages(logger::debug, result); @@ -273,11 +310,12 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteOrganiz @Test public void testActivityDefinitionWithoutProcessAuthorizationNotValid() throws Exception { - ActivityDefinition ad = createActivityDefinition(); + ActivityDefinition d = createWithouAuthExtension(); + d.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); - logResource(ad); + logResource(d); - ValidationResult result = resourceValidator.validate(ad); + ValidationResult result = resourceValidator.validate(d); ValidationSupportRule.logValidationMessages(logger::debug, result); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/BinaryProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/BinaryProfileTest.java index ff8821c44..db3ec7b0a 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/BinaryProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/BinaryProfileTest.java @@ -25,6 +25,7 @@ public class BinaryProfileTest extends AbstractMetaTagProfileTest<Binary> private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override protected Binary create() { Binary b = new Binary(); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/BundleProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/BundleProfileTest.java index bd5e9dfe4..ac7d1d80d 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/BundleProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/BundleProfileTest.java @@ -24,6 +24,7 @@ public class BundleProfileTest extends AbstractMetaTagProfileTest<Bundle> private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override protected Bundle create() { Bundle b = new Bundle(); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/DocumentReferenceProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/DocumentReferenceProfileTest.java index 6a0d54c62..57784e477 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/DocumentReferenceProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/DocumentReferenceProfileTest.java @@ -25,6 +25,7 @@ public class DocumentReferenceProfileTest extends AbstractMetaTagProfileTest<Doc private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override protected DocumentReference create() { DocumentReference r = new DocumentReference(); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/GroupProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/GroupProfileTest.java index 1655ccd4d..efc3ee2c9 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/GroupProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/GroupProfileTest.java @@ -24,6 +24,7 @@ public class GroupProfileTest extends AbstractMetaTagProfileTest<Group> private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override protected Group create() { Group g = new Group(); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/HealthcareServiceProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/HealthcareServiceProfileTest.java index f9310210b..7853767a2 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/HealthcareServiceProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/HealthcareServiceProfileTest.java @@ -23,6 +23,7 @@ public class HealthcareServiceProfileTest extends AbstractMetaTagProfileTest<Hea private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override protected HealthcareService create() { HealthcareService s = new HealthcareService(); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/LibraryProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/LibraryProfileTest.java index 0beee26f3..8ac111eb9 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/LibraryProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/LibraryProfileTest.java @@ -24,6 +24,7 @@ public class LibraryProfileTest extends AbstractMetaTagProfileTest<Library> private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override protected Library create() { Library l = new Library(); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/LocationProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/LocationProfileTest.java index 8c058f391..6537f1bca 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/LocationProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/LocationProfileTest.java @@ -23,6 +23,7 @@ public class LocationProfileTest extends AbstractMetaTagProfileTest<Location> private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override protected Location create() { Location l = new Location(); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/MeasureProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/MeasureProfileTest.java index 968808c75..401be7687 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/MeasureProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/MeasureProfileTest.java @@ -24,6 +24,7 @@ public class MeasureProfileTest extends AbstractMetaTagProfileTest<Measure> private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override protected Measure create() { Measure m = new Measure(); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/MeasureReportProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/MeasureReportProfileTest.java index 5e68c3544..049676eca 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/MeasureReportProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/MeasureReportProfileTest.java @@ -26,6 +26,7 @@ public class MeasureReportProfileTest extends AbstractMetaTagProfileTest<Measure private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override protected MeasureReport create() { MeasureReport m = new MeasureReport(); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/NamingSystemProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/NamingSystemProfileTest.java index 31124f9bd..6c6fe7e04 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/NamingSystemProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/NamingSystemProfileTest.java @@ -27,6 +27,7 @@ public class NamingSystemProfileTest extends AbstractMetaTagProfileTest<NamingSy private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override protected NamingSystem create() { NamingSystem s = new NamingSystem(); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/OrganizationAffiliationProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/OrganizationAffiliationProfileTest.java index a784e0c5e..483669b8a 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/OrganizationAffiliationProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/OrganizationAffiliationProfileTest.java @@ -17,7 +17,7 @@ import dev.dsf.fhir.validation.ResourceValidatorImpl; import dev.dsf.fhir.validation.ValidationSupportRule; -public class OrganizationAffiliationProfileTest +public class OrganizationAffiliationProfileTest extends AbstractMetaTagProfileTest<OrganizationAffiliation> { private static final Logger logger = LoggerFactory.getLogger(OrganizationAffiliationProfileTest.class); @@ -33,12 +33,11 @@ public class OrganizationAffiliationProfileTest private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); - @Test - public void testOrganizationAffiliationProfileValid() throws Exception + @Override + protected OrganizationAffiliation create() { OrganizationAffiliation a = new OrganizationAffiliation(); a.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/organization-affiliation"); - a.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); a.setActive(true); a.getOrganization().setReference("Organization/" + UUID.randomUUID().toString()); a.getParticipatingOrganization().setReference("Organization/" + UUID.randomUUID().toString()); @@ -46,6 +45,21 @@ public void testOrganizationAffiliationProfileValid() throws Exception .setCode("DIC"); a.getEndpointFirstRep().setReference("Endpoint/" + UUID.randomUUID().toString()); + return a; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } + + @Test + public void testOrganizationAffiliationProfileValid() throws Exception + { + OrganizationAffiliation a = create(); + a.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); + ValidationResult result = resourceValidator.validate(a); ValidationSupportRule.logValidationMessages(logger::debug, result); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/OrganizationProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/OrganizationProfileTest.java index 030926d5f..ac16e4296 100755 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/OrganizationProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/OrganizationProfileTest.java @@ -19,7 +19,7 @@ import dev.dsf.fhir.validation.ResourceValidatorImpl; import dev.dsf.fhir.validation.ValidationSupportRule; -public class OrganizationProfileTest +public class OrganizationProfileTest extends AbstractMetaTagProfileTest<Organization> { private static final Logger logger = LoggerFactory.getLogger(OrganizationProfileTest.class); @@ -29,30 +29,45 @@ public class OrganizationProfileTest "dsf-extension-read-access-parent-organization-role-2.0.0.xml", "dsf-meta-2.0.0.xml", "dsf-extension-certificate-thumbprint-2.0.0.xml", "dsf-organization-2.0.0.xml", "dsf-organization-parent-2.0.0.xml", "dsf-endpoint-2.0.0.xml"), - List.of("dsf-read-access-tag-2.0.0.xml"), List.of("dsf-read-access-tag-2.0.0.xml")); + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml"), + List.of("dsf-read-access-tag-2.0.0.xml", "dsf-organization-role-2.0.0.xml")); private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override + protected Organization create() + { + Organization o = new Organization(); + o.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/organization"); + o.addIdentifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("test.org"); + o.setActive(true); + o.addEndpoint().setReference("Endpoint/" + UUID.randomUUID().toString()); + o.addEndpoint().setReference("Endpoint/" + UUID.randomUUID().toString()); + o.addExtension().setUrl("http://dsf.dev/fhir/StructureDefinition/extension-certificate-thumbprint") + .setValue(new StringType( + "6d40e7c82ead96a9c5851976002d3732631d6e0e82e10e98c5ba568b2980b45a4436577d329ee47a8bc50fd35e39aa3c54faa23249d7b7a82a117824a4c430eb")); + + return o; + } + + @Test + public void runMetaTagTests() throws Exception + { + doRunMetaTagTests(resourceValidator); + } + @Test public void testOrganizationProfileValid() throws Exception { - Organization org = new Organization(); - org.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/organization"); - org.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("LOCAL"); - org.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ORGANIZATION") + Organization o = create(); + o.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("LOCAL"); + o.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ORGANIZATION") .addExtension("http://dsf.dev/fhir/StructureDefinition/extension-read-access-organization", new Identifier().setSystem("http://dsf.dev/sid/organization-identifier") .setValue("organization.com")); - org.addIdentifier().setSystem("http://dsf.dev/sid/organization-identifier").setValue("test.org"); - org.setActive(true); - org.addEndpoint().setReference("Endpoint/" + UUID.randomUUID().toString()); - org.addEndpoint().setReference("Endpoint/" + UUID.randomUUID().toString()); - org.addExtension().setUrl("http://dsf.dev/fhir/StructureDefinition/extension-certificate-thumbprint") - .setValue(new StringType( - "6d40e7c82ead96a9c5851976002d3732631d6e0e82e10e98c5ba568b2980b45a4436577d329ee47a8bc50fd35e39aa3c54faa23249d7b7a82a117824a4c430eb")); - ValidationResult result = resourceValidator.validate(org); + ValidationResult result = resourceValidator.validate(o); ValidationSupportRule.logValidationMessages(logger::debug, result); assertEquals(0, result.getMessages().stream().filter(m -> ResultSeverityEnum.ERROR.equals(m.getSeverity()) diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PatientProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PatientProfileTest.java index b8af99da1..90bc41696 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PatientProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PatientProfileTest.java @@ -23,6 +23,7 @@ public class PatientProfileTest extends AbstractMetaTagProfileTest<Patient> private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override protected Patient create() { Patient p = new Patient(); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PractitionerProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PractitionerProfileTest.java index bd8673290..1086c26be 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PractitionerProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PractitionerProfileTest.java @@ -23,6 +23,7 @@ public class PractitionerProfileTest extends AbstractMetaTagProfileTest<Practiti private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override protected Practitioner create() { Practitioner p = new Practitioner(); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PractitionerRoleProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PractitionerRoleProfileTest.java index 5b4c94037..ee767ad0a 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PractitionerRoleProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/PractitionerRoleProfileTest.java @@ -23,6 +23,7 @@ public class PractitionerRoleProfileTest extends AbstractMetaTagProfileTest<Prac private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override protected PractitionerRole create() { PractitionerRole p = new PractitionerRole(); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ProvenanceProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ProvenanceProfileTest.java index a89d255b0..d43ae4191 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ProvenanceProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ProvenanceProfileTest.java @@ -25,6 +25,7 @@ public class ProvenanceProfileTest extends AbstractMetaTagProfileTest<Provenance private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override protected Provenance create() { Provenance p = new Provenance(); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/StructureDefinitionProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/StructureDefinitionProfileTest.java index 49f73fe49..afffc0140 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/StructureDefinitionProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/StructureDefinitionProfileTest.java @@ -46,6 +46,7 @@ public class StructureDefinitionProfileTest extends AbstractMetaDataResourceProf private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override protected StructureDefinition create() { StructureDefinition d = new StructureDefinition(); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/SubscriptionProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/SubscriptionProfileTest.java index c4c856c24..682d32d61 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/SubscriptionProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/SubscriptionProfileTest.java @@ -25,6 +25,7 @@ public class SubscriptionProfileTest extends AbstractMetaTagProfileTest<Subscrip private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override protected Subscription create() { var s = new Subscription(); diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ValueSetProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ValueSetProfileTest.java index f5973134b..2e2f46d61 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ValueSetProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ValueSetProfileTest.java @@ -25,6 +25,7 @@ public class ValueSetProfileTest extends AbstractMetaDataResourceProfileTest<Val private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override protected ValueSet create() { ValueSet s = new ValueSet(); From e27152812c9409852e4be9561760482b00bd61d2 Mon Sep 17 00:00:00 2001 From: Hauke Hund <hauke.hund@hs-heilbronn.de> Date: Thu, 30 Oct 2025 00:19:30 +0100 Subject: [PATCH 14/16] missing annotation - Added missing override annotation --- .../test/java/dev/dsf/fhir/profiles/CodeSystemProfileTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/CodeSystemProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/CodeSystemProfileTest.java index dc64f0aa3..1e1029567 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/CodeSystemProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/CodeSystemProfileTest.java @@ -26,6 +26,7 @@ public class CodeSystemProfileTest extends AbstractMetaDataResourceProfileTest<C private final ResourceValidator resourceValidator = new ResourceValidatorImpl(validationRule.getFhirContext(), validationRule.getValidationSupport()); + @Override protected CodeSystem create() { CodeSystem s = new CodeSystem(); From 374f4d0531c5fb252ee2351f5e21ab33615a8174 Mon Sep 17 00:00:00 2001 From: Hauke Hund <hauke.hund@hs-heilbronn.de> Date: Fri, 31 Oct 2025 21:11:31 +0100 Subject: [PATCH 15/16] typos fixed, method visibility changed protected -> private --- ...rization-parent-organization-role-2.0.0.xml | 2 +- ...nt-organization-role-practitioner-2.0.0.xml | 2 +- .../ActivityDefinitionProfileTest.java | 18 +++++++++--------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-parent-organization-role-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-parent-organization-role-2.0.0.xml index abdad8fc4..2056ec68a 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-parent-organization-role-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-parent-organization-role-2.0.0.xml @@ -9,7 +9,7 @@ </meta> <url value="http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-parent-organization-role" /> <version value="2.0.0" /> - <name value="ProcessAuthorizationParentOrganizatioRole" /> + <name value="ProcessAuthorizationParentOrganizationRole" /> <status value="active" /> <experimental value="false" /> <date value="2025-10-27" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-parent-organization-role-practitioner-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-parent-organization-role-practitioner-2.0.0.xml index 49634dd3a..12a4e28c6 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-parent-organization-role-practitioner-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/StructureDefinition/dsf-extension-process-authorization-parent-organization-role-practitioner-2.0.0.xml @@ -9,7 +9,7 @@ </meta> <url value="http://dsf.dev/fhir/StructureDefinition/extension-process-authorization-parent-organization-role-practitioner" /> <version value="2.0.0" /> - <name value="ProcessAuthorizationParentOrganizatioRolePractitioner" /> + <name value="ProcessAuthorizationParentOrganizationRolePractitioner" /> <status value="active" /> <experimental value="false" /> <date value="2025-10-27" /> diff --git a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ActivityDefinitionProfileTest.java b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ActivityDefinitionProfileTest.java index 01fa6454e..cee96ee44 100644 --- a/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ActivityDefinitionProfileTest.java +++ b/dsf-fhir/dsf-fhir-validation/src/test/java/dev/dsf/fhir/profiles/ActivityDefinitionProfileTest.java @@ -61,7 +61,7 @@ public class ActivityDefinitionProfileTest extends AbstractMetaDataResourceProfi @Override protected ActivityDefinition create() { - ActivityDefinition d = createWithouAuthExtension(); + ActivityDefinition d = createWithoutAuthExtension(); Extension processAuthorization = d.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-process-authorization"); @@ -76,7 +76,7 @@ protected ActivityDefinition create() return d; } - protected ActivityDefinition createWithouAuthExtension() + private ActivityDefinition createWithoutAuthExtension() { ActivityDefinition d = new ActivityDefinition(); d.getMeta().addProfile("http://dsf.dev/fhir/StructureDefinition/activity-definition"); @@ -106,7 +106,7 @@ public void runMetaDataResourceTests() throws Exception public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteAllRecipientLocalAllValid() throws Exception { - ActivityDefinition d = createWithouAuthExtension(); + ActivityDefinition d = createWithoutAuthExtension(); d.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); Extension processAuthorization = d.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-process-authorization"); @@ -131,7 +131,7 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteAllReci public void testActivityDefinitionWithProcessAuthorizationRequesterLocalPractitionerRoleRecipientLocalAllValid() throws Exception { - ActivityDefinition d = createWithouAuthExtension(); + ActivityDefinition d = createWithoutAuthExtension(); d.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); Extension processAuthorization = d.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-process-authorization"); @@ -161,7 +161,7 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterLocalPractiti public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteOrganizationRecipientLocalParentOrganizationRoleValid() throws Exception { - ActivityDefinition d = createWithouAuthExtension(); + ActivityDefinition d = createWithoutAuthExtension(); d.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); Extension processAuthorization = d.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-process-authorization"); @@ -199,7 +199,7 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteOrganiz public void testActivityDefinitionWithProcessAuthorizationRequesterOrganizationPractitionerRoleRecipientLocalParentOrganizationRoleValid() throws Exception { - ActivityDefinition d = createWithouAuthExtension(); + ActivityDefinition d = createWithoutAuthExtension(); d.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); Extension processAuthorization = d.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-process-authorization"); @@ -241,7 +241,7 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterOrganizationP public void testActivityDefinitionWithProcessAuthorizationRequesterParentOrganizationRolePractitionerRoleRecipientLocalAllValid() throws Exception { - ActivityDefinition d = createWithouAuthExtension(); + ActivityDefinition d = createWithoutAuthExtension(); d.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); Extension processAuthorization = d.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-process-authorization"); @@ -278,7 +278,7 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterParentOrganiz public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteOrganizationRecipientRemoteConsortiumRoleNotValid() throws Exception { - ActivityDefinition d = createWithouAuthExtension(); + ActivityDefinition d = createWithoutAuthExtension(); d.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); Extension processAuthorization = d.addExtension() .setUrl("http://dsf.dev/fhir/StructureDefinition/extension-process-authorization"); @@ -310,7 +310,7 @@ public void testActivityDefinitionWithProcessAuthorizationRequesterRemoteOrganiz @Test public void testActivityDefinitionWithoutProcessAuthorizationNotValid() throws Exception { - ActivityDefinition d = createWithouAuthExtension(); + ActivityDefinition d = createWithoutAuthExtension(); d.getMeta().addTag().setSystem("http://dsf.dev/fhir/CodeSystem/read-access-tag").setCode("ALL"); logResource(d); From 5bcbb040b480271cd91eb6f50fa66d7fd2ded795 Mon Sep 17 00:00:00 2001 From: Hauke Hund <hauke.hund@hs-heilbronn.de> Date: Fri, 31 Oct 2025 21:30:30 +0100 Subject: [PATCH 16/16] added new organization and practitioner roles --- .../dev/dsf/bpe/v2/constants/CodeSystems.java | 44 +++++++++++++++++++ .../dsf-organization-role-2.0.0.xml | 10 ++++- .../dsf-practitioner-role-2.0.0.xml | 10 ++++- 3 files changed, 62 insertions(+), 2 deletions(-) diff --git a/dsf-bpe/dsf-bpe-process-api-v2/src/main/java/dev/dsf/bpe/v2/constants/CodeSystems.java b/dsf-bpe/dsf-bpe-process-api-v2/src/main/java/dev/dsf/bpe/v2/constants/CodeSystems.java index 62ecdb595..aaca18a3d 100644 --- a/dsf-bpe/dsf-bpe-process-api-v2/src/main/java/dev/dsf/bpe/v2/constants/CodeSystems.java +++ b/dsf-bpe/dsf-bpe-process-api-v2/src/main/java/dev/dsf/bpe/v2/constants/CodeSystems.java @@ -276,6 +276,8 @@ private Codes() public static final String HRP = "HRP"; public static final String TTP = "TTP"; public static final String AMS = "AMS"; + public static final String ASP = "ASP"; + public static final String SPR = "SPR"; } public static final Coding uac() @@ -323,6 +325,16 @@ public static final Coding ams() return new Coding(SYSTEM, Codes.AMS, "Allowlist Management Site"); } + public static final Coding asp() + { + return new Coding(SYSTEM, Codes.ASP, "Analysis Service Provider"); + } + + public static final Coding SPR() + { + return new Coding(SYSTEM, Codes.SPR, "Service Provider Registry"); + } + public static final boolean isUac(Coding coding) { return isSame(SYSTEM, Codes.UAC, coding); @@ -367,6 +379,16 @@ public static final boolean isAms(Coding coding) { return isSame(SYSTEM, Codes.AMS, coding); } + + public static final boolean isAsp(Coding coding) + { + return isSame(SYSTEM, Codes.ASP, coding); + } + + public static final boolean isSpr(Coding coding) + { + return isSame(SYSTEM, Codes.SPR, coding); + } } public static final class PractitionerRole @@ -397,6 +419,8 @@ private Codes() public static final String HRP_USER = "HRP_USER"; public static final String TTP_USER = "TTP_USER"; public static final String AMS_USER = "AMS_USER"; + public static final String ASP_USER = "ASP_USER"; + public static final String SPR_USER = "SPR_USER"; public static final String DSF_ADMIN = "DSF_ADMIN"; } @@ -445,6 +469,16 @@ public static final Coding amsUser() return new Coding(SYSTEM, Codes.AMS_USER, "Allowlist Management Site Member"); } + public static final Coding aspUser() + { + return new Coding(SYSTEM, Codes.ASP_USER, "Analysis Service Provider Member"); + } + + public static final Coding sprUser() + { + return new Coding(SYSTEM, Codes.SPR_USER, "Service Provider Registry Member"); + } + public static final Coding dsfAdmin() { return new Coding(SYSTEM, Codes.DSF_ADMIN, "DSF Administrator"); @@ -495,6 +529,16 @@ public static final boolean isAmsUser(Coding coding) return isSame(SYSTEM, Codes.AMS_USER, coding); } + public static final boolean isAspUser(Coding coding) + { + return isSame(SYSTEM, Codes.ASP_USER, coding); + } + + public static final boolean isSprUser(Coding coding) + { + return isSame(SYSTEM, Codes.SPR_USER, coding); + } + public static final boolean isDsfAdmin(Coding coding) { return isSame(SYSTEM, Codes.DSF_ADMIN, coding); diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-2.0.0.xml index 76ef87bef..bb0cdb8ff 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-organization-role-2.0.0.xml @@ -20,7 +20,7 @@ <hierarchyMeaning value="grouped-by" /> <versionNeeded value="false" /> <content value="complete" /> - <count value="9" /> + <count value="11" /> <concept> <code value="UAC" /> <display value="Use-and-Access Committee" /> @@ -57,4 +57,12 @@ <code value="AMS" /> <display value="Allowlist Management Site" /> </concept> + <concept> + <code value="ASP" /> + <display value="Analysis Service Provider" /> + </concept> + <concept> + <code value="SPR" /> + <display value="Service Provider Registry" /> + </concept> </CodeSystem> \ No newline at end of file diff --git a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-2.0.0.xml b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-2.0.0.xml index e6e21a570..0241d2798 100644 --- a/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-2.0.0.xml +++ b/dsf-fhir/dsf-fhir-validation/src/main/resources/fhir/CodeSystem/dsf-practitioner-role-2.0.0.xml @@ -20,7 +20,7 @@ <hierarchyMeaning value="grouped-by" /> <versionNeeded value="false" /> <content value="complete" /> - <count value="10" /> + <count value="12" /> <concept> <code value="UAC_USER" /> <display value="Use-and-Access Committee Member" /> @@ -57,6 +57,14 @@ <code value="AMS_USER" /> <display value="Allowlist Management Site Member" /> </concept> + <concept> + <code value="ASP_USER" /> + <display value="Analysis Service Provider Member" /> + </concept> + <concept> + <code value="SPR_USER" /> + <display value="Service Provider Registry Member" /> + </concept> <concept> <code value="DSF_ADMIN" /> <display value="DSF Administrator" />