handlers

package
v0.0.0-...-fac8dce Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 14, 2025 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Handler

type Handler struct {
	// contains filtered or unexported fields
}

func NewHandler

func NewHandler(cfg *config.Config, logger *logrus.Logger) (*Handler, error)

NewHandler creates a new handler instance

func (*Handler) CheckEligibility

func (h *Handler) CheckEligibility(c *gin.Context)

CheckEligibility godoc @Summary Check eligibility @Description Check member eligibility and coverage @Tags eligibility @Security OAuth2Application @Accept json @Produce json @Param request body models.EligibilityRequest true "Eligibility check request" @Success 200 {object} models.EligibilityResponse @Failure 400 {object} models.ErrorResponse @Failure 401 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /api/v1/eligibility/check [post]

func (*Handler) ClearCache

func (h *Handler) ClearCache(c *gin.Context)

ClearCache godoc @Summary Clear cache @Description Clear Redis cache @Tags admin @Security OAuth2Application @Accept json @Produce json @Success 200 {object} map[string]string @Failure 401 {object} models.ErrorResponse @Failure 403 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /api/v1/admin/cache/clear [post]

func (*Handler) Close

func (h *Handler) Close() error

Close closes all connections

func (*Handler) CreateClaim

func (h *Handler) CreateClaim(c *gin.Context)

func (*Handler) CreateCoverage

func (h *Handler) CreateCoverage(c *gin.Context)

func (*Handler) CreatePatient

func (h *Handler) CreatePatient(c *gin.Context)

CreatePatient godoc @Summary Create a new patient @Description Create a new patient resource @Tags fhir @Security OAuth2Application @Accept json @Produce json @Param patient body fhir.Patient true "Patient resource" @Success 201 {object} fhir.Patient @Failure 400 {object} models.ErrorResponse @Failure 401 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /api/v1/fhir/Patient [post]

func (*Handler) CreatePriorAuthorization

func (h *Handler) CreatePriorAuthorization(c *gin.Context)

func (*Handler) DeleteClaim

func (h *Handler) DeleteClaim(c *gin.Context)

func (*Handler) DeleteCoverage

func (h *Handler) DeleteCoverage(c *gin.Context)

func (*Handler) DeletePatient

func (h *Handler) DeletePatient(c *gin.Context)

DeletePatient godoc @Summary Delete patient @Description Delete a patient resource @Tags fhir @Security OAuth2Application @Accept json @Produce json @Param id path string true "Patient ID" @Success 204 @Failure 404 {object} models.ErrorResponse @Failure 401 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /api/v1/fhir/Patient/{id} [delete]

func (*Handler) GetAuditLogs

func (h *Handler) GetAuditLogs(c *gin.Context)

GetAuditLogs godoc @Summary Get audit logs @Description Retrieve audit logs for compliance @Tags admin @Security OAuth2Application @Accept json @Produce json @Param from query string false "Start date (ISO 8601)" @Param to query string false "End date (ISO 8601)" @Param limit query int false "Maximum number of records" default(100) @Success 200 {object} models.AuditLogResponse @Failure 400 {object} models.ErrorResponse @Failure 401 {object} models.ErrorResponse @Failure 403 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /api/v1/admin/audit [get]

func (*Handler) GetClaim

func (h *Handler) GetClaim(c *gin.Context)

func (*Handler) GetClaimResponse

func (h *Handler) GetClaimResponse(c *gin.Context)

func (*Handler) GetClaimStatus

func (h *Handler) GetClaimStatus(c *gin.Context)

GetClaimStatus godoc @Summary Get claim status @Description Get the processing status of a claim @Tags claims @Security OAuth2Application @Accept json @Produce json @Param id path string true "Claim ID" @Success 200 {object} models.ClaimStatusResponse @Failure 404 {object} models.ErrorResponse @Failure 401 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /api/v1/claims/{id}/status [get]

func (*Handler) GetCodeSystems

func (h *Handler) GetCodeSystems(c *gin.Context)

GetCodeSystems godoc @Summary Get code systems @Description Retrieve available code systems @Tags terminology @Security OAuth2Application @Accept json @Produce json @Success 200 {array} models.CodeSystem @Failure 401 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /api/v1/terminology/codesystems [get]

func (*Handler) GetCoverage

func (h *Handler) GetCoverage(c *gin.Context)

func (*Handler) GetMemberCoverage

func (h *Handler) GetMemberCoverage(c *gin.Context)

GetMemberCoverage godoc @Summary Get member coverage @Description Get coverage information for a specific member @Tags eligibility @Security OAuth2Application @Accept json @Produce json @Param id path string true "Member ID" @Success 200 {object} models.CoverageResponse @Failure 404 {object} models.ErrorResponse @Failure 401 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /api/v1/eligibility/member/{id}/coverage [get]

func (*Handler) GetPatient

func (h *Handler) GetPatient(c *gin.Context)

GetPatient godoc @Summary Get patient by ID @Description Retrieve a patient resource by ID @Tags fhir @Security OAuth2Application @Accept json @Produce json @Param id path string true "Patient ID" @Success 200 {object} fhir.Patient @Failure 404 {object} models.ErrorResponse @Failure 401 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /api/v1/fhir/Patient/{id} [get]

func (*Handler) GetPriorAuthorization

func (h *Handler) GetPriorAuthorization(c *gin.Context)

func (*Handler) GetSystemStats

func (h *Handler) GetSystemStats(c *gin.Context)

GetSystemStats godoc @Summary Get system statistics @Description Get overall system statistics and metrics @Tags admin @Security OAuth2Application @Accept json @Produce json @Success 200 {object} models.SystemStats @Failure 401 {object} models.ErrorResponse @Failure 403 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /api/v1/admin/stats [get]

func (*Handler) GetToken

func (h *Handler) GetToken(c *gin.Context)

Authentication endpoints GetToken godoc @Summary Get authentication token @Description Authenticate user and return JWT token @Tags auth @Accept json @Produce json @Param credentials body models.LoginRequest true "User credentials" @Success 200 {object} models.TokenResponse @Failure 400 {object} models.ErrorResponse @Failure 401 {object} models.ErrorResponse @Router /api/v1/auth/token [post]

func (*Handler) HealthCheck

func (h *Handler) HealthCheck(c *gin.Context)

Health check endpoints HealthCheck godoc @Summary Health check @Description Check if the service is healthy @Tags health @Accept json @Produce json @Success 200 {object} map[string]string @Router /health [get]

func (*Handler) LookupCode

func (h *Handler) LookupCode(c *gin.Context)

LookupCode godoc @Summary Lookup a code @Description Look up a specific code in a code system @Tags terminology @Security OAuth2Application @Accept json @Produce json @Param system path string true "Code system" @Param code path string true "Code value" @Success 200 {object} models.CodeLookupResponse @Failure 404 {object} models.ErrorResponse @Failure 401 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /api/v1/terminology/codesystems/{system}/codes/{code} [get]

func (*Handler) MetricsHandler

func (h *Handler) MetricsHandler(c *gin.Context)

MetricsHandler serves Prometheus metrics

func (*Handler) ReadinessCheck

func (h *Handler) ReadinessCheck(c *gin.Context)

ReadinessCheck godoc @Summary Readiness check @Description Check if the service is ready to serve requests @Tags health @Accept json @Produce json @Success 200 {object} map[string]string @Router /ready [get]

func (*Handler) RefreshToken

func (h *Handler) RefreshToken(c *gin.Context)

RefreshToken godoc @Summary Refresh authentication token @Description Refresh an existing JWT token @Tags auth @Accept json @Produce json @Param token body models.RefreshTokenRequest true "Refresh token" @Success 200 {object} models.TokenResponse @Failure 400 {object} models.ErrorResponse @Failure 401 {object} models.ErrorResponse @Router /api/v1/auth/refresh [post]

func (*Handler) ReprocessClaim

func (h *Handler) ReprocessClaim(c *gin.Context)

ReprocessClaim godoc @Summary Reprocess a claim @Description Trigger reprocessing of a claim @Tags claims @Security OAuth2Application @Accept json @Produce json @Param id path string true "Claim ID" @Success 202 {object} models.ClaimReprocessResponse @Failure 404 {object} models.ErrorResponse @Failure 401 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /api/v1/claims/{id}/reprocess [post]

func (*Handler) SearchClaimResponses

func (h *Handler) SearchClaimResponses(c *gin.Context)

func (*Handler) SearchClaims

func (h *Handler) SearchClaims(c *gin.Context)

func (*Handler) SearchCoverage

func (h *Handler) SearchCoverage(c *gin.Context)

func (*Handler) SearchPatients

func (h *Handler) SearchPatients(c *gin.Context)

SearchPatients godoc @Summary Search patients @Description Search for patients using FHIR parameters @Tags fhir @Security OAuth2Application @Accept json @Produce json @Param name query string false "Patient name" @Param identifier query string false "Patient identifier" @Param birthdate query string false "Patient birth date" @Param _count query int false "Number of results to return" default(20) @Param _offset query int false "Offset for pagination" default(0) @Success 200 {object} fhir.Bundle @Failure 400 {object} models.ErrorResponse @Failure 401 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /api/v1/fhir/Patient [get]

func (*Handler) SearchPriorAuthorizations

func (h *Handler) SearchPriorAuthorizations(c *gin.Context)

func (*Handler) SubmitClaim

func (h *Handler) SubmitClaim(c *gin.Context)

SubmitClaim godoc @Summary Submit a claim @Description Submit a claim for processing @Tags claims @Security OAuth2Application @Accept json @Produce json @Param claim body models.ClaimSubmission true "Claim submission" @Success 202 {object} models.ClaimSubmissionResponse @Failure 400 {object} models.ErrorResponse @Failure 401 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /api/v1/claims/submit [post]

func (*Handler) UpdateClaim

func (h *Handler) UpdateClaim(c *gin.Context)

func (*Handler) UpdateCoverage

func (h *Handler) UpdateCoverage(c *gin.Context)

func (*Handler) UpdatePatient

func (h *Handler) UpdatePatient(c *gin.Context)

UpdatePatient godoc @Summary Update patient @Description Update an existing patient resource @Tags fhir @Security OAuth2Application @Accept json @Produce json @Param id path string true "Patient ID" @Param patient body fhir.Patient true "Updated patient resource" @Success 200 {object} fhir.Patient @Failure 400 {object} models.ErrorResponse @Failure 404 {object} models.ErrorResponse @Failure 401 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /api/v1/fhir/Patient/{id} [put]

func (*Handler) UpdatePriorAuthorization

func (h *Handler) UpdatePriorAuthorization(c *gin.Context)

func (*Handler) ValidateCode

func (h *Handler) ValidateCode(c *gin.Context)

ValidateCode godoc @Summary Validate a code @Description Validate if a code exists in a code system @Tags terminology @Security OAuth2Application @Accept json @Produce json @Param system path string true "Code system" @Param request body models.CodeValidationRequest true "Code validation request" @Success 200 {object} models.CodeValidationResponse @Failure 400 {object} models.ErrorResponse @Failure 401 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /api/v1/terminology/codesystems/{system}/validate [post]

type MetricsCollector

type MetricsCollector struct {
	RequestsTotal   *prometheus.CounterVec
	RequestDuration *prometheus.HistogramVec
	ActiveRequests  prometheus.Gauge
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL