Documentation
¶
Index ¶
- Variables
- type BusinessHours
- type BusinessHoursOutput
- type Contacts
- type ContactsOutput
- type Coordinates
- type CoordinatesOutput
- type Facility
- type FacilityOutput
- type FacilityPage
- type FacilityService
- type FacilityServiceInput
- type FacilityServicePage
- type HealthCRMLib
- func (h *HealthCRMLib) CreateFacility(ctx context.Context, facility *Facility) (*FacilityOutput, error)
- func (h *HealthCRMLib) CreateService(ctx context.Context, input FacilityServiceInput) (*FacilityService, error)
- func (h *HealthCRMLib) GetFacilities(ctx context.Context, location *Coordinates, serviceIDs []string, ...) (*FacilityPage, error)
- func (h *HealthCRMLib) GetFacilitiesOfferingAService(ctx context.Context, serviceID string, pagination *Pagination) (*FacilityPage, error)
- func (h *HealthCRMLib) GetFacilityByID(ctx context.Context, id string) (*FacilityOutput, error)
- func (h *HealthCRMLib) GetService(ctx context.Context, serviceID string) (*FacilityService, error)
- func (h *HealthCRMLib) GetServices(ctx context.Context, pagination *Pagination) (*FacilityServicePage, error)
- func (h *HealthCRMLib) LinkServiceToFacility(ctx context.Context, facilityID string, input []*FacilityServiceInput) (*FacilityService, error)
- func (h *HealthCRMLib) UpdateFacility(ctx context.Context, id string, updatePayload *Facility) (*FacilityOutput, error)
- type Identifiers
- type IdentifiersOutput
- type Pagination
- type ServiceIdentifier
- type ServiceIdentifierInput
Constants ¶
This section is empty.
Variables ¶
var ( // BaseURL represents the health CRM's base URL BaseURL = serverutils.MustGetEnvVar("HEALTH_CRM_BASE_URL") )
Functions ¶
This section is empty.
Types ¶
type BusinessHours ¶ added in v1.0.3
type BusinessHours struct {
Day string `json:"day"`
OpeningTime string `json:"opening_time"`
ClosingTime string `json:"closing_time"`
}
BusinessHours models data to store business hours
type BusinessHoursOutput ¶ added in v1.0.1
type BusinessHoursOutput struct {
ID string `json:"id"`
Day string `json:"day"`
OpeningTime string `json:"opening_time"`
ClosingTime string `json:"closing_time"`
FacilityID string `json:"facility_id"`
}
BusinessHoursOutput models data that show facility's operational hours
type Contacts ¶
type Contacts struct {
ContactType string `json:"contact_type,omitempty"`
ContactValue string `json:"contact_value,omitempty"`
Role string `json:"role,omitempty"`
}
Contacts models facility's model data class
type ContactsOutput ¶
type ContactsOutput struct {
ID string `json:"id"`
ContactType string `json:"contact_type"`
ContactValue string `json:"contact_value"`
Active bool `json:"active"`
Role string `json:"role"`
FacilityID string `json:"facility_id"`
}
ContactsOutput is used to show facility contacts
type Coordinates ¶
type Coordinates struct {
Latitude string `json:"latitude,omitempty"`
Longitude string `json:"longitude,omitempty"`
Radius string `json:"radius,omitempty"`
}
Coordinates represents geographical coordinates using latitude and longitude. Latitude measures the north-south position, while longitude measures the east-west position.
func (Coordinates) ToString ¶ added in v1.0.10
func (c Coordinates) ToString() (string, error)
ToString returns the location in comma-separated values format. The order of values in the string is longitude,latitude. The latitude and longitude are formatted up to 5 decimal places. For example, if the Location has Latitude 36.79 and Longitude -1.29, the returned string will be "-1.29, 36.79".
type CoordinatesOutput ¶
type CoordinatesOutput struct {
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
}
CoordinatesOutput is used to show geographical coordinates
type Facility ¶
type Facility struct {
ID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
FacilityType string `json:"facility_type,omitempty"`
County string `json:"county,omitempty"`
Country string `json:"country,omitempty"`
Address string `json:"address,omitempty"`
Coordinates *Coordinates `json:"coordinates,omitempty"`
Contacts []Contacts `json:"contacts,omitempty"`
Identifiers []Identifiers `json:"identifiers,omitempty"`
BusinessHours []BusinessHours `json:"businesshours,omitempty"`
}
Facility is the hospitals data class
type FacilityOutput ¶
type FacilityOutput struct {
ID string `json:"id,omitempty"`
Created time.Time `json:"created,omitempty"`
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
FacilityType string `json:"facility_type,omitempty"`
County string `json:"county,omitempty"`
Country string `json:"country,omitempty"`
Coordinates CoordinatesOutput `json:"coordinates,omitempty"`
Distance float64 `json:"distance,omitempty"`
Status string `json:"status,omitempty"`
Address string `json:"address,omitempty"`
Contacts []ContactsOutput `json:"contacts,omitempty"`
Identifiers []IdentifiersOutput `json:"identifiers,omitempty"`
BusinessHours []BusinessHoursOutput `json:"businesshours,omitempty"`
Services []FacilityService `json:"services,omitempty"`
}
FacilityOutput is used to display facility(ies)
type FacilityPage ¶
type FacilityPage struct {
Count int `json:"count"`
Next string `json:"next"`
Previous any `json:"previous"`
PageSize int `json:"page_size"`
CurrentPage int `json:"current_page"`
TotalPages int `json:"total_pages"`
StartIndex int `json:"start_index"`
EndIndex int `json:"end_index"`
Results []FacilityOutput `json:"results"`
}
FacilityPage is the hospitals model used to show facility details
type FacilityService ¶ added in v1.0.1
type FacilityService struct {
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
Identifiers []*ServiceIdentifier `json:"identifiers"`
}
FacilityService models the data class that is used to show facility services
type FacilityServiceInput ¶ added in v1.0.9
type FacilityServiceInput struct {
Name string `json:"name"`
Description string `json:"description"`
Identifiers []*ServiceIdentifierInput `json:"identifiers"`
}
FacilityServiceInput models is used to create a new service
type FacilityServicePage ¶ added in v1.0.1
type FacilityServicePage struct {
Results []FacilityService `json:"results"`
Count int `json:"count"`
Next string `json:"next"`
Previous string `json:"previous"`
PageSize int `json:"page_size"`
CurrentPage int `json:"current_page"`
TotalPages int `json:"total_pages"`
StartIndex int `json:"start_index"`
EndIndex int `json:"end_index"`
}
FacilityServicePage models the services offered in a facility
type HealthCRMLib ¶
type HealthCRMLib struct {
// contains filtered or unexported fields
}
HealthCRMLib interacts with the healthcrm APIs
func NewHealthCRMLib ¶
func NewHealthCRMLib() (*HealthCRMLib, error)
NewHealthCRMLib initializes a new instance of healthCRM SDK
func (*HealthCRMLib) CreateFacility ¶
func (h *HealthCRMLib) CreateFacility(ctx context.Context, facility *Facility) (*FacilityOutput, error)
CreateFacility is used to create facility in health CRM service
func (*HealthCRMLib) CreateService ¶ added in v1.0.9
func (h *HealthCRMLib) CreateService(ctx context.Context, input FacilityServiceInput) (*FacilityService, error)
CreateService is used to create a new service in health crm
func (*HealthCRMLib) GetFacilities ¶
func (h *HealthCRMLib) GetFacilities(ctx context.Context, location *Coordinates, serviceIDs []string, searchParameter string, pagination *Pagination) (*FacilityPage, error)
GetFacilities retrieves a list of facilities associated with MyCareHub stored in HealthCRM. The method allows for filtering facilities by location proximity and services offered.
Parameters:
- location: A Location struct that represents the reference location. If provided, facilities will be filtered based on proximity to this location.
- pagination: A Pagination struct containing options for paginating the results.
- serviceIDs: A parameter that allows specifying one or more service IDs. Facilities offering these services will be included in the results. You can pass multiple service IDs as separate arguments (e.g., GetFacilities(ctx, location, pagination, []string{"1234", "178"})).
- searchParameter: A parameter used to search a facility by the facility name or a service name Note that this parameter cannot be passed together with the serviceIDs
Usage: Example 1: Retrieve facilities by location and service IDs: --> E.g If we are searching with service ID that represents Chemotherapy, the response will be a list of facilities that offer Chemotherapy and it will be ordered with proximity
Example 2: Retrieve facilities by location without specifying services: This will return a list of all facilities ordered by the proximity
Example 3: Retrieve all facilities without specifying location or services:
func (*HealthCRMLib) GetFacilitiesOfferingAService ¶ added in v1.0.6
func (h *HealthCRMLib) GetFacilitiesOfferingAService(ctx context.Context, serviceID string, pagination *Pagination) (*FacilityPage, error)
GetFacilitiesOfferingAService fetches the facilities that offer a particular service
func (*HealthCRMLib) GetFacilityByID ¶
func (h *HealthCRMLib) GetFacilityByID(ctx context.Context, id string) (*FacilityOutput, error)
GetFacilityByID is used to fetch facilities from health crm facility registry using its ID
func (*HealthCRMLib) GetService ¶ added in v1.1.1
func (h *HealthCRMLib) GetService(ctx context.Context, serviceID string) (*FacilityService, error)
GetService is used to fetch a single service given its ID
func (*HealthCRMLib) GetServices ¶ added in v1.0.11
func (h *HealthCRMLib) GetServices(ctx context.Context, pagination *Pagination) (*FacilityServicePage, error)
GetServices retrieves a list of healthcare services provided by facilities that are owned by a specific SIL service, such as Mycarehub or Advantage.
func (*HealthCRMLib) LinkServiceToFacility ¶ added in v1.0.9
func (h *HealthCRMLib) LinkServiceToFacility(ctx context.Context, facilityID string, input []*FacilityServiceInput) (*FacilityService, error)
LinkServiceToFacility is used to link a service to a facility
func (*HealthCRMLib) UpdateFacility ¶
func (h *HealthCRMLib) UpdateFacility(ctx context.Context, id string, updatePayload *Facility) (*FacilityOutput, error)
UpdateFacility is used to update facility's data
type Identifiers ¶
type Identifiers struct {
IdentifierType string `json:"identifier_type,omitempty"`
IdentifierValue string `json:"identifier_value,omitempty"`
ValidFrom string `json:"valid_from,omitempty"`
ValidTo string `json:"valid_to,omitempty"`
}
Identifiers models facility's identifiers; can be MFL Code, Slade Code etc...
type IdentifiersOutput ¶
type IdentifiersOutput struct {
ID string `json:"id"`
IdentifierType string `json:"identifier_type"`
IdentifierValue string `json:"identifier_value"`
ValidFrom string `json:"valid_from"`
ValidTo string `json:"valid_to"`
FacilityID string `json:"facility_id"`
}
IdentifiersOutput is used to display facility identifiers
type Pagination ¶ added in v1.0.8
Pagination is used to hold pagination values
type ServiceIdentifier ¶ added in v1.0.1
type ServiceIdentifier struct {
ID string `json:"id"`
IdentifierType string `json:"identifier_type"`
IdentifierValue string `json:"identifier_value"`
ServiceID string `json:"service_id"`
}
ServiceIdentifier models the structure of facility's service identifiers
type ServiceIdentifierInput ¶ added in v1.0.9
type ServiceIdentifierInput struct {
IdentifierType string `json:"identifier_type"`
IdentifierValue string `json:"identifier_value"`
}
ServiceIdentifierInput is used to create an identifier