Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

package gov.va.med.pbm.ampl.controller;

import java.util.Optional;

import org.springframework.http.ResponseEntity;

import gov.va.med.pbm.ampl.model.Allergy;
import gov.va.med.pbm.ampl.model.Consult;
import gov.va.med.pbm.ampl.model.Immunization;
import gov.va.med.pbm.ampl.model.Measurement;
import gov.va.med.pbm.ampl.model.ProgressNote;
import gov.va.med.pbm.ampl.model.patientdemographics.PatientDetails;
import gov.va.med.pbm.ampl.utility.operations.comparator.AmplComparator;

/**
*
* IBaseController is the interface for all controllers, providing the minimum operational requirements.
*
* @author Ian Meinert
* @since 1.0
*
*/
public interface IBaseController {

/**
* The template URL endpoint for retrieving a {@link PatientDetails}.
*
* @param patientId the patient id
* @param sort the sort field and direction
* @param search the searchable field, {@link AmplComparator}, value
* @param page the page number
* @param size the page size
* @return ResponseEntity
*/
ResponseEntity<Object> getPatientById(String patientId, Optional<String> sort, Optional<String> search,
Optional<Integer> page, Optional<Integer> size);

/**
* The template URL endpoint for retrieving a collection of {@link Allergy} for a {@link PatientDetails}.
*
* @param patientId the patient id
* @param sort the sort field and direction
* @param search the searchable field, {@link AmplComparator}, value
* @param page the page number
* @param size the page size
* @return ResponseEntity
*/
ResponseEntity<Object> getAllergiesByPatientId(String patientId, Optional<String> sort, Optional<String> search,
Optional<Integer> page, Optional<Integer> size);

/**
* The template URL endpoint for retrieving a collection of {@link ProgressNote} for a {@link PatientDetails}.
*
* @param patientId the patient id
* @param sort the sort field and direction
* @param search the searchable field, {@link AmplComparator}, value
* @param page the page number
* @param size the page size
* @return ResponseEntity
*/
ResponseEntity<Object> getProgressNotesByPatientId(String patientId, Optional<String> sort, Optional<String> search,
Optional<Integer> page, Optional<Integer> size);

/**
* The template URL endpoint for retrieving a collection of {@link Consult} for a {@link PatientDetails}.
*
* @param patientId the patient id
* @param sort the sort field and direction
* @param search the searchable field, {@link AmplComparator}, value
* @param page the page number
* @param size the page size
* @return ResponseEntity
*/
ResponseEntity<Object> getConsultsByPatientId(String patientId, Optional<String> sort, Optional<String> search,
Optional<Integer> page, Optional<Integer> size);

/**
* The template URL endpoint for retrieving a collection of {@link Immunization} for a {@link PatientDetails}.
*
* @param patientId the patient id
* @param sort the sort field and direction
* @param search the searchable field, {@link AmplComparator}, value
* @param page the page number
* @param size the page size
* @return ResponseEntity
*/
ResponseEntity<Object> getImmunizationsByPatientId(String patientId, Optional<String> sort, Optional<String> search,
Optional<Integer> page, Optional<Integer> size);

/**
* The template URL endpoint for retrieving a collection of {@link Problem} for a {@link PatientDetails}.
*
* @param patientId the patient id
* @param sort the sort field and direction
* @param search the searchable field, {@link AmplComparator}, value
* @param page the page number
* @param size the page size
* @return ResponseEntity
*/
ResponseEntity<Object> getProblemListByPatientId(String patientId, Optional<String> sort, Optional<String> search,
Optional<Integer> page, Optional<Integer> size);

/**
* The template URL endpoint for retrieving a collection of {@link Appointment} for a {@link PatientDetails}.
*
* @param patientId the patient id
* @param sort the sort field and direction
* @param search the searchable field, {@link AmplComparator}, value
* @param page the page number
* @param size the page size
* @return ResponseEntity
*/
ResponseEntity<Object> getAppointmentsByPatientId(String patientId, Optional<String> sort, Optional<String> search,
Optional<Integer> page, Optional<Integer> size);

/**
* The template URL endpoint for retrieving a collection of {@link Measurement} for a {@link PatientDetails}..
*
* @param patientId the patient id
* @param sort the sort field and direction
* @param search the searchable field, {@link AmplComparator}, value
* @param page the page number
* @param size the page size
* @return ResponseEntity
*/
ResponseEntity<Object> getMeasurementsByPatientId(String patientId, Optional<String> sort, Optional<String> search,
Optional<Integer> page, Optional<Integer> size);

/**
* The template URL endpoint for retrieving a collection of {@link Measurement} for a {@link PatientDetails}.
*
* @param patientId ID of patient to return
* @param search the searchable field, {@link AmplComparator}, value
* @return ResponseEntity
*/
ResponseEntity<Object> getMeasurementsLastMeasureByPatientId(String patientId, Optional<String> search);
}