diff --git a/docs/package.json b/docs/package.json index 431d9104707..7dd27d17419 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,5 +1,5 @@ { - "name": "ibm-fhir-server-site", + "name": "fhir-server-site", "version": "1.0.1", "license": "Apache-2.0", "scripts": { diff --git a/fhir-audit/src/main/java/org/linuxforhealth/fhir/audit/beans/AuditLogEntry.java b/fhir-audit/src/main/java/org/linuxforhealth/fhir/audit/beans/AuditLogEntry.java index f56e177d9eb..47b5a99507b 100644 --- a/fhir-audit/src/main/java/org/linuxforhealth/fhir/audit/beans/AuditLogEntry.java +++ b/fhir-audit/src/main/java/org/linuxforhealth/fhir/audit/beans/AuditLogEntry.java @@ -128,26 +128,32 @@ public void setConfigData(ConfigData configData) { this.configData = configData; } + @Deprecated public String getClientCertCn() { return clientCertCn; } + @Deprecated public void setClientCertCn(String clientCertCn) { this.clientCertCn = clientCertCn; } + @Deprecated public String getClientCertIssuerOu() { return clientCertIssuerOu; } + @Deprecated public void setClientCertIssuerOu(String clientCertIssuerOu) { this.clientCertIssuerOu = clientCertIssuerOu; } + @Deprecated public String getCorrelationId() { return correlationId; } + @Deprecated public void setCorrelationId(String correlationId) { this.correlationId = correlationId; } diff --git a/fhir-examples/src/main/java/org/linuxforhealth/fhir/examples/Index.java b/fhir-examples/src/main/java/org/linuxforhealth/fhir/examples/Index.java index 31d1dd99e93..2a67ab18c1f 100644 --- a/fhir-examples/src/main/java/org/linuxforhealth/fhir/examples/Index.java +++ b/fhir-examples/src/main/java/org/linuxforhealth/fhir/examples/Index.java @@ -48,7 +48,7 @@ public enum Index { /** * Both R4 spec and IBM generated examples */ - ALL_XML("/spec-xml.txt", "/ibm-xml.txt"), + ALL_XML("/spec-xml.txt", "/generated-xml.txt"), /** * Small mix of spec and IBM examples used for unit tests to keep build times short diff --git a/fhir-persistence-jdbc/src/main/java/org/linuxforhealth/fhir/persistence/jdbc/impl/FHIRPersistenceJDBCImpl.java b/fhir-persistence-jdbc/src/main/java/org/linuxforhealth/fhir/persistence/jdbc/impl/FHIRPersistenceJDBCImpl.java index 9a71698f6cc..88e7daad002 100644 --- a/fhir-persistence-jdbc/src/main/java/org/linuxforhealth/fhir/persistence/jdbc/impl/FHIRPersistenceJDBCImpl.java +++ b/fhir-persistence-jdbc/src/main/java/org/linuxforhealth/fhir/persistence/jdbc/impl/FHIRPersistenceJDBCImpl.java @@ -2138,7 +2138,7 @@ private boolean isWholeSystem(SearchParameter sp) { } /** - * Augment the given allParameters list with ibm-internal parameters that represent the relationship + * Augment the given allParameters list with internal parameters that represent the relationship * between the fhirResource and its compartments. These parameter values are subsequently used * to improve the performance of compartment-based FHIR search queries. See * {@link CompartmentHelper#makeCompartmentParamName(String)} for details on how the @@ -2206,7 +2206,7 @@ protected void addCompartmentParams(List allParameters, } /** - * Augment the given allParameters list with ibm-internal parameters that represent the relationship + * Augment the given allParameters list with internal parameters that represent the relationship * between the url and version parameters. These parameter values are subsequently used in * canonical reference searches. See {@link CompartmentHelper#makeCompartmentParamName(String)} for * details on how the parameter name is composed. diff --git a/fhir-persistence-jdbc/src/main/java/org/linuxforhealth/fhir/persistence/jdbc/util/JDBCParameterBuildingVisitor.java b/fhir-persistence-jdbc/src/main/java/org/linuxforhealth/fhir/persistence/jdbc/util/JDBCParameterBuildingVisitor.java index 1130db7d9f3..ce34c907b78 100644 --- a/fhir-persistence-jdbc/src/main/java/org/linuxforhealth/fhir/persistence/jdbc/util/JDBCParameterBuildingVisitor.java +++ b/fhir-persistence-jdbc/src/main/java/org/linuxforhealth/fhir/persistence/jdbc/util/JDBCParameterBuildingVisitor.java @@ -231,7 +231,7 @@ public boolean visit(java.lang.String elementName, int elementIndex, org.linuxfo // See SearchUtil#parseQueryParameterValuesString. if (system == null) { // Can't find an explicit system, so see if there's an implicit one - // attached to the code as an (IBM-defined) extension. + // attached to the code as an (LinuxForHealth-defined) extension. system = SearchHelper.findImplicitSystem(code.getExtension()); } diff --git a/fhir-persistence-schema/src/main/resources/parameter_names.properties b/fhir-persistence-schema/src/main/resources/parameter_names.properties index d0a7708fa34..6da2333236b 100644 --- a/fhir-persistence-schema/src/main/resources/parameter_names.properties +++ b/fhir-persistence-schema/src/main/resources/parameter_names.properties @@ -279,99 +279,99 @@ has-member has-member:identifier holder holder:identifier -ibm-internal-Device-Compartment -ibm-internal-Encounter-Compartment -ibm-internal-Patient-Compartment -ibm-internal-Practitioner-Compartment -ibm-internal-RelatedPerson-Compartment -ibm_composite_accession:of-type_type -ibm_composite_accession:of-type_value -ibm_composite_base_canonical_uri -ibm_composite_base_canonical_version -ibm_composite_characteristic-value_characteristic -ibm_composite_characteristic-value_characteristic:text -ibm_composite_characteristic-value_value -ibm_composite_characteristic-value_value:text -ibm_composite_code-value-concept_code -ibm_composite_code-value-concept_value-concept -ibm_composite_code-value-date_code -ibm_composite_code-value-date_value-date -ibm_composite_code-value-quantity_code -ibm_composite_code-value-quantity_value-quantity -ibm_composite_code-value-string_code -ibm_composite_code-value-string_value-string -ibm_composite_combo-code-value-concept_combo-code -ibm_composite_combo-code-value-concept_combo-value-concept -ibm_composite_combo-code-value-quantity_combo-code -ibm_composite_combo-code-value-quantity_combo-code:text -ibm_composite_combo-code-value-quantity_combo-value-quantity -ibm_composite_component-code-value-concept_component-code -ibm_composite_component-code-value-concept_component-value-concept -ibm_composite_component-code-value-quantity_component-code -ibm_composite_component-code-value-quantity_component-code:text -ibm_composite_component-code-value-quantity_component-value-quantity -ibm_composite_composed-of_canonical_uri -ibm_composite_composed-of_canonical_version -ibm_composite_container-id:of-type_type -ibm_composite_container-id:of-type_value -ibm_composite_container-identifier:of-type_type -ibm_composite_container-identifier:of-type_value -ibm_composite_context-type-quantity_context-quantity -ibm_composite_context-type-quantity_context-type -ibm_composite_context-type-value_context -ibm_composite_context-type-value_context-type -ibm_composite_context-type-value_context:text -ibm_composite_definition_canonical_uri -ibm_composite_definition_canonical_version -ibm_composite_depends-on_canonical_uri -ibm_composite_depends-on_canonical_version -ibm_composite_derived-from_canonical_uri -ibm_composite_derived-from_canonical_version -ibm_composite_global_canonical_uri -ibm_composite_global_canonical_version -ibm_composite_group-identifier:of-type_type -ibm_composite_group-identifier:of-type_value -ibm_composite_guide_canonical_uri -ibm_composite_guide_canonical_version -ibm_composite_identifier:of-type_type -ibm_composite_identifier:of-type_value -ibm_composite_instantiates-canonical_canonical_uri -ibm_composite_instantiates-canonical_canonical_version -ibm_composite_measure_canonical_uri -ibm_composite_measure_canonical_version -ibm_composite_other_canonical_uri -ibm_composite_other_canonical_version -ibm_composite_parent_canonical_uri -ibm_composite_parent_canonical_version -ibm_composite_predecessor_canonical_uri -ibm_composite_predecessor_canonical_version -ibm_composite_questionnaire_canonical_uri -ibm_composite_questionnaire_canonical_version -ibm_composite_referenceseqid-window-coordinate_referenceseqid -ibm_composite_referenceseqid-window-coordinate_window-end -ibm_composite_referenceseqid-window-coordinate_window-start -ibm_composite_related-id:of-type_type -ibm_composite_related-id:of-type_value -ibm_composite_request:of-type_type -ibm_composite_request:of-type_value -ibm_composite_requisition:of-type_type -ibm_composite_requisition:of-type_value -ibm_composite_resource-profile_canonical_uri -ibm_composite_resource-profile_canonical_version -ibm_composite_source_canonical_uri -ibm_composite_source_canonical_version -ibm_composite_successor_canonical_uri -ibm_composite_successor_canonical_version -ibm_composite_supplements_canonical_uri -ibm_composite_supplements_canonical_version -ibm_composite_supported-profile_canonical_uri -ibm_composite_supported-profile_canonical_version -ibm_composite_target_canonical_uri -ibm_composite_target_canonical_version -ibm_composite_url_canonical_uri -ibm_composite_url_canonical_version -ibm_composite_valueset_canonical_uri -ibm_composite_valueset_canonical_version +internal-Device-Compartment +internal-Encounter-Compartment +internal-Patient-Compartment +internal-Practitioner-Compartment +internal-RelatedPerson-Compartment +internal-composite_accession:of-type_type +internal-composite_accession:of-type_value +internal-composite_base_canonical_uri +internal-composite_base_canonical_version +internal-composite_characteristic-value_characteristic +internal-composite_characteristic-value_characteristic:text +internal-composite_characteristic-value_value +internal-composite_characteristic-value_value:text +internal-composite_code-value-concept_code +internal-composite_code-value-concept_value-concept +internal-composite_code-value-date_code +internal-composite_code-value-date_value-date +internal-composite_code-value-quantity_code +internal-composite_code-value-quantity_value-quantity +internal-composite_code-value-string_code +internal-composite_code-value-string_value-string +internal-composite_combo-code-value-concept_combo-code +internal-composite_combo-code-value-concept_combo-value-concept +internal-composite_combo-code-value-quantity_combo-code +internal-composite_combo-code-value-quantity_combo-code:text +internal-composite_combo-code-value-quantity_combo-value-quantity +internal-composite_component-code-value-concept_component-code +internal-composite_component-code-value-concept_component-value-concept +internal-composite_component-code-value-quantity_component-code +internal-composite_component-code-value-quantity_component-code:text +internal-composite_component-code-value-quantity_component-value-quantity +internal-composite_composed-of_canonical_uri +internal-composite_composed-of_canonical_version +internal-composite_container-id:of-type_type +internal-composite_container-id:of-type_value +internal-composite_container-identifier:of-type_type +internal-composite_container-identifier:of-type_value +internal-composite_context-type-quantity_context-quantity +internal-composite_context-type-quantity_context-type +internal-composite_context-type-value_context +internal-composite_context-type-value_context-type +internal-composite_context-type-value_context:text +internal-composite_definition_canonical_uri +internal-composite_definition_canonical_version +internal-composite_depends-on_canonical_uri +internal-composite_depends-on_canonical_version +internal-composite_derived-from_canonical_uri +internal-composite_derived-from_canonical_version +internal-composite_global_canonical_uri +internal-composite_global_canonical_version +internal-composite_group-identifier:of-type_type +internal-composite_group-identifier:of-type_value +internal-composite_guide_canonical_uri +internal-composite_guide_canonical_version +internal-composite_identifier:of-type_type +internal-composite_identifier:of-type_value +internal-composite_instantiates-canonical_canonical_uri +internal-composite_instantiates-canonical_canonical_version +internal-composite_measure_canonical_uri +internal-composite_measure_canonical_version +internal-composite_other_canonical_uri +internal-composite_other_canonical_version +internal-composite_parent_canonical_uri +internal-composite_parent_canonical_version +internal-composite_predecessor_canonical_uri +internal-composite_predecessor_canonical_version +internal-composite_questionnaire_canonical_uri +internal-composite_questionnaire_canonical_version +internal-composite_referenceseqid-window-coordinate_referenceseqid +internal-composite_referenceseqid-window-coordinate_window-end +internal-composite_referenceseqid-window-coordinate_window-start +internal-composite_related-id:of-type_type +internal-composite_related-id:of-type_value +internal-composite_request:of-type_type +internal-composite_request:of-type_value +internal-composite_requisition:of-type_type +internal-composite_requisition:of-type_value +internal-composite_resource-profile_canonical_uri +internal-composite_resource-profile_canonical_version +internal-composite_source_canonical_uri +internal-composite_source_canonical_version +internal-composite_successor_canonical_uri +internal-composite_successor_canonical_version +internal-composite_supplements_canonical_uri +internal-composite_supplements_canonical_version +internal-composite_supported-profile_canonical_uri +internal-composite_supported-profile_canonical_version +internal-composite_target_canonical_uri +internal-composite_target_canonical_version +internal-composite_url_canonical_uri +internal-composite_url_canonical_version +internal-composite_valueset_canonical_uri +internal-composite_valueset_canonical_version id-type identified identifier @@ -829,4 +829,4 @@ substance-code substance-code:text substance-definition trigger-description -# End of 4.1.0 \ No newline at end of file +# End of 4.3.0 \ No newline at end of file diff --git a/fhir-search/src/main/java/org/linuxforhealth/fhir/search/compartment/CompartmentHelper.java b/fhir-search/src/main/java/org/linuxforhealth/fhir/search/compartment/CompartmentHelper.java index c8e1d0c6920..7deaa351866 100644 --- a/fhir-search/src/main/java/org/linuxforhealth/fhir/search/compartment/CompartmentHelper.java +++ b/fhir-search/src/main/java/org/linuxforhealth/fhir/search/compartment/CompartmentHelper.java @@ -34,11 +34,11 @@ *
* Default CompartmentDefintion: * */ public class CompartmentHelper { @@ -220,7 +220,7 @@ public Map> getCompartmentParamsForResourceType(ja */ public static String makeCompartmentParamName(String compartmentName) { final StringBuilder result = new StringBuilder(); - result.append("ibm-internal-") + result.append("internal-") .append(compartmentName) .append("-Compartment"); return result.toString(); diff --git a/fhir-search/src/main/java/org/linuxforhealth/fhir/search/util/SearchHelper.java b/fhir-search/src/main/java/org/linuxforhealth/fhir/search/util/SearchHelper.java index 8f8866a2c7c..6065f0a02a9 100644 --- a/fhir-search/src/main/java/org/linuxforhealth/fhir/search/util/SearchHelper.java +++ b/fhir-search/src/main/java/org/linuxforhealth/fhir/search/util/SearchHelper.java @@ -132,7 +132,7 @@ public class SearchHelper { // compartment parameter reference which can be ignore private static final String COMPARTMENT_PARM_DEF = "{def}"; - private static final String IBM_COMPOSITE_PREFIX = "ibm_composite_"; + private static final String COMPOSITE_PREFIX = "internal-composite_"; // The functionality is split into a new class. private static final Sort sort = new Sort(); @@ -2252,7 +2252,7 @@ private static void checkQueryParameterValuesForLogicalIdOnly(String parameterCo */ public static String makeCompositeSubCode(String compositeCode, String subParameterCode) { final StringBuilder result = new StringBuilder(); - result.append(IBM_COMPOSITE_PREFIX); + result.append(COMPOSITE_PREFIX); result.append(compositeCode); result.append("_"); result.append(subParameterCode); diff --git a/fhir-search/src/test/java/org/linuxforhealth/fhir/search/test/CompartmentParseQueryParmsTest.java b/fhir-search/src/test/java/org/linuxforhealth/fhir/search/test/CompartmentParseQueryParmsTest.java index 93e3d7b92a9..b8fcfbd77ad 100644 --- a/fhir-search/src/test/java/org/linuxforhealth/fhir/search/test/CompartmentParseQueryParmsTest.java +++ b/fhir-search/src/test/java/org/linuxforhealth/fhir/search/test/CompartmentParseQueryParmsTest.java @@ -39,8 +39,8 @@ * Test the parsing of compartment related search data from SearchHelper. */ public class CompartmentParseQueryParmsTest extends BaseSearchTest { - private static final String INTERNAL_PATIENT_COMPARTMENT_PARAM = "ibm-internal-Patient-Compartment"; - private static final String INTERNAL_RELATEDPERSON_COMPARTMENT_PARAM = "ibm-internal-RelatedPerson-Compartment"; + private static final String INTERNAL_PATIENT_COMPARTMENT_PARAM = "internal-Patient-Compartment"; + private static final String INTERNAL_RELATEDPERSON_COMPARTMENT_PARAM = "internal-RelatedPerson-Compartment"; /** * This method tests parsing compartment related query parms, passing an invalid compartment. diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/bulkdata.xml b/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/bulkdata.xml index f29009d5a16..59472cb8346 100644 --- a/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/bulkdata.xml +++ b/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/bulkdata.xml @@ -39,8 +39,9 @@ diff --git a/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/datasource.xml b/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/datasource.xml index e6d5eee3637..6b82e7006bc 100644 --- a/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/datasource.xml +++ b/fhir-server-webapp/src/main/liberty/config/configDropins/defaults/datasource.xml @@ -1,7 +1,7 @@ - + diff --git a/fhir-server/src/main/java/org/linuxforhealth/fhir/server/util/RestAuditLogger.java b/fhir-server/src/main/java/org/linuxforhealth/fhir/server/util/RestAuditLogger.java index 49be09793fe..e94bc4872f4 100644 --- a/fhir-server/src/main/java/org/linuxforhealth/fhir/server/util/RestAuditLogger.java +++ b/fhir-server/src/main/java/org/linuxforhealth/fhir/server/util/RestAuditLogger.java @@ -7,12 +7,10 @@ package org.linuxforhealth.fhir.server.util; import java.security.Principal; -import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.HashSet; import java.util.Iterator; -import java.util.List; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; @@ -56,11 +54,6 @@ public class RestAuditLogger { private static final String CLASSNAME = RestAuditLogger.class.getName(); private static final Logger log = java.util.logging.Logger.getLogger(CLASSNAME); - private static final String HEADER_IBM_APP_USER = "IBM-App-User"; - private static final String HEADER_CLIENT_CERT_CN = "IBM-App-cli-CN"; - private static final String HEADER_CLIENT_CERT_ISSUER_OU = "IBM-App-iss-OU"; - private static final String HEADER_CORRELATION_ID = "IBM-DP-correlationid"; - private static final String COMPONENT_ID = "fhir-server"; private static final IPHandler componentIpHandler = new IPHandler(); @@ -370,16 +363,16 @@ public static void logBundle(HttpServletRequest request, Bundle requestBundle, B // Transaction logBundleTransaction(auditLogSvc, request, requestBundle, responseBundle, startTime, endTime, responseStatus); } - + } log.exiting(CLASSNAME, METHODNAME); } /** * Logs the Bundle as a batch in multiple messages - * - * @implNote batch fail or succeed as a individual processing unit. - * + * + * @implNote batch fail or succeed as a individual processing unit. + * * @param auditLogSvc * @param request * @param requestBundle @@ -401,7 +394,7 @@ private static void logBundleBatch(AuditLogService auditLogSvc, HttpServletReque AuditLogEntry entry = initLogEntry(AuditLogEventType.FHIR_BUNDLE); - populateAuditLogEntry(entry, request, responseEntry.getResource(), startTime, endTime, responseStatus); + populateAuditLogEntry(entry, request, responseEntry.getResource(), startTime, endTime, responseStatus); if (requestEntry.getRequest() != null && requestEntry.getRequest().getMethod() != null) { boolean operation = requestEntry.getRequest().getUrl().getValue().contains("$") || requestEntry.getRequest().getUrl().getValue().contains("/%24"); @@ -489,9 +482,9 @@ private static void logBundleBatch(AuditLogService auditLogSvc, HttpServletReque /** * Logs the Bundle as a Transaction in a single request - * - * @implNote transactions fail or succeed as a single processing unit. - * + * + * @implNote transactions fail or succeed as a single processing unit. + * * @param auditLogSvc * @param request * @param requestBundle @@ -788,21 +781,11 @@ protected static AuditLogEntry populateAuditLogEntry(AuditLogEntry entry, HttpSe log.entering(CLASSNAME, METHODNAME); String patientIdExtUrl; - List userList = new ArrayList<>(); - - // Build a list of possible user names. Pick the first non-null user name to include in the audit log entry. - userList.add(request.getHeader(HEADER_IBM_APP_USER)); - userList.add(request.getHeader(HEADER_CLIENT_CERT_CN)); + // Note: we used to support overriding the user name from a specific header; that was removed for 5.0 Principal userPrincipal = request.getUserPrincipal(); if (userPrincipal != null) { - userList.add(userPrincipal.getName()); - } - for (String userName : userList) { - if (userName != null && !userName.isEmpty()) { - entry.setUserName(userName); - break; - } + entry.setUserName(userPrincipal.getName()); } entry.setLocation(new StringBuilder().append(request.getRemoteAddr()).append("/").append(request.getRemoteHost()).toString()); @@ -827,10 +810,6 @@ protected static AuditLogEntry populateAuditLogEntry(AuditLogEntry entry, HttpSe } } - entry.setClientCertCn(request.getHeader(HEADER_CLIENT_CERT_CN)); - entry.setClientCertIssuerOu(request.getHeader(HEADER_CLIENT_CERT_ISSUER_OU)); - entry.setCorrelationId(request.getHeader(HEADER_CORRELATION_ID)); - patientIdExtUrl = FHIRConfigHelper.getStringProperty(FHIRConfiguration.PROPERTY_AUDIT_PATIENT_ID_EXTURL, null); entry.setPatientId(FHIRUtil.getExtensionStringValue(resource, patientIdExtUrl)); entry.getContext().setRequestUniqueId(FHIRRequestContext.get().getRequestUniqueId()); diff --git a/fhir-smart/src/test/java/org/linuxforhealth/fhir/smart/test/AuthzPolicyEnforcementTest.java b/fhir-smart/src/test/java/org/linuxforhealth/fhir/smart/test/AuthzPolicyEnforcementTest.java index a51898396b6..2b31f79e2af 100644 --- a/fhir-smart/src/test/java/org/linuxforhealth/fhir/smart/test/AuthzPolicyEnforcementTest.java +++ b/fhir-smart/src/test/java/org/linuxforhealth/fhir/smart/test/AuthzPolicyEnforcementTest.java @@ -610,7 +610,7 @@ public void testBeforeSearch(String scopeString, List contextIds, Set searchParms = searchContext.getSearchParameters(); QueryParameter compartmentSearchParm = searchParms.get(0); - assertTrue("ibm-internal-Patient-Compartment".equals(compartmentSearchParm.getCode())); + assertTrue("internal-Patient-Compartment".equals(compartmentSearchParm.getCode())); assertEquals(compartmentSearchParm.getType(), Type.REFERENCE); assertTrue(compartmentSearchParm.isInclusionCriteria()); assertFalse(compartmentSearchParm.isChained());