@Override public FhirQueryAuditDataset createAuditDataset() { return new FhirQueryAuditDataset(isServerSide()); } }
@Override public boolean enrichAuditDatasetFromResponse(FhirQueryAuditDataset auditDataset, Object response, AuditContext auditContext) { boolean result = super.enrichAuditDatasetFromResponse(auditDataset, response, auditContext); if (auditContext.isIncludeParticipantsFromResponse()) { // TODO } return result; } }
@Override public FhirQueryAuditDataset enrichAuditDatasetFromRequest(FhirQueryAuditDataset auditDataset, Object request, Map<String, Object> parameters) { FhirQueryAuditDataset dataset = super.enrichAuditDatasetFromRequest(auditDataset, request, parameters); if (request instanceof IdType) { IdType idType = (IdType) request; dataset.getPatientIds().add(idType.getValue()); } return dataset; }
@Override public FhirQueryAuditDataset enrichAuditDatasetFromRequest(FhirQueryAuditDataset auditDataset, Object request, Map<String, Object> parameters) { FhirQueryAuditDataset dataset = super.enrichAuditDatasetFromRequest(auditDataset, request, parameters); Parameters params = (Parameters) request; if (params != null) { Type sourceIdentifier = params.getParameter().stream() .filter(ppc -> Constants.SOURCE_IDENTIFIER_NAME.equals(ppc.getName())) .map(Parameters.ParametersParameterComponent::getValue) .findFirst().orElseThrow(() -> new RuntimeException("No sourceIdentifier in PIX query")); if (sourceIdentifier instanceof Identifier) { Identifier identifier = (Identifier) sourceIdentifier; dataset.getPatientIds().add(String.format("%s|%s", identifier.getSystem(), identifier.getValue())); } else if (sourceIdentifier instanceof StringType) { StringType identifier = (StringType) sourceIdentifier; dataset.getPatientIds().add(identifier.getValue()); } else { dataset.getPatientIds().add(sourceIdentifier.toString()); } } return dataset; }
@Override public FhirQueryAuditDataset createAuditDataset() { return new FhirQueryAuditDataset(isServerSide()); } }
@Override public boolean enrichAuditDatasetFromResponse(FhirQueryAuditDataset auditDataset, Object response, AuditContext auditContext) { boolean result = super.enrichAuditDatasetFromResponse(auditDataset, response, auditContext); if (auditContext.isIncludeParticipantsFromResponse()) { // NOT in CX format.... /* if (response instanceof Patient) { auditDataset.getPatientIds().add(((Patient) response).getId()); } else if (response instanceof Bundle) { ((Bundle) response).getEntry().forEach(bec -> auditDataset.getPatientIds().add((bec.getResource()).getId())); } */ } return result; } }