models

package
v0.1.8 Latest Latest
Warning

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

Go to latest
Published: Aug 14, 2022 License: GPL-2.0 Imports: 13 Imported by: 3

Documentation

Index

Constants

View Source
const (
	ReferralStatusOrdered   ReferralStatus = "ORDERED"
	ReferralStatusCompleted ReferralStatus = "COMPLETED"

	ReferralTypeInHouse   ReferralType = "PATIENT_IN_HOUSE_REFERRAL"
	ReferralTypeOutsource ReferralType = "PATIENT_OUTSOURCE_REFERRAL"
)

SurgicalProcedureOrder statuses ...

Variables

This section is empty.

Functions

func Paginate

func Paginate(p *PaginationInput) func(db *gorm.DB) *gorm.DB

Paginate ...

Types

type Allergy

type Allergy struct {
	gorm.Model
	ID               int    `gorm:"primaryKey" json:"id"`
	Title            string `json:"title"`
	IssueSeverity    string `json:"issueSeverity"`
	IssueReaction    string `json:"issueReaction"`
	IssueOutcome     string `json:"issueOutcome"`
	IssueOccurrence  string `json:"issueOccurrence"`
	PatientHistoryID int    `json:"patientHistoryId"`
	Count            int64  `json:"count"`
}

Allergy ...

type Amendment

type Amendment struct {
	gorm.Model
	ID             int    `gorm:"primaryKey"`
	PatientChartID int    `json:"patientChartId"`
	Note           string `json:"note"`
	Count          int64  `json:"count"`
}

Amendment ...

type Appointment

type Appointment struct {
	gorm.Model
	ID                  int               `gorm:"primaryKey" json:"id"`
	PatientID           int               `json:"patientId"`
	Patient             Patient           `json:"patient"`
	FirstName           string            `json:"firstName"`
	LastName            string            `json:"lastName"`
	PhoneNo             string            `json:"phoneNo"`
	CheckInTime         time.Time         `json:"checkInTime" gorm:"index:check_in_time_idx"`
	CheckedInTime       *time.Time        `json:"checkedInTime" gorm:"index:daily_appointment_idx"`
	CheckedOutTime      time.Time         `json:"checkedOutTime"`
	RoomID              int               `json:"roomId"`
	Room                Room              `json:"room"`
	VisitTypeID         int               `json:"visitTypeId"`
	VisitType           VisitType         `json:"visitType"`
	AppointmentStatusID int               `json:"appointmentStatusId" gorm:"index:daily_appointment_idx"`
	AppointmentStatus   AppointmentStatus `json:"appointmentStatus"`
	Emergency           *bool             `json:"emergency"`
	MedicalDepartment   string            `json:"medicalDepartment"`
	Credit              bool              `json:"credit"`
	Payments            []Payment         `json:"payments" gorm:"many2many:appointment_payments;"`
	Files               []File            `json:"files" gorm:"many2many:appointment_files"`
	UserID              int               `json:"userId"`
	ProviderName        string            `json:"providerName"`
	PatientChart        PatientChart      `json:"patientChart"`
	QueueID             int               `json:"queueId"`
	QueueName           string            `json:"queueName"`
	Document            string            `gorm:"type:tsvector"`
	Count               int64             `json:"count"`
}

Appointment ...

func (*Appointment) AfterCreate

func (r *Appointment) AfterCreate(tx *gorm.DB) error

AfterCreate ...

type AppointmentQueue

type AppointmentQueue struct {
	gorm.Model
	ID                 int              `gorm:"primaryKey" json:"id"`
	AppointmentID      int              `json:"appointmentId"`
	Appointment        Appointment      `json:"appointment"`
	QueueDestinationID int              `json:"queueDestinationId"`
	QueueDestination   QueueDestination `json:"queueDestination"`
	Count              int64            `json:"count"`
}

AppointmentQueue ...

type AppointmentSearchInput

type AppointmentSearchInput struct {
	SearchTerm          *string    `json:"searchTerm"`
	UserID              *int       `json:"userId"`
	PatientID           *int       `json:"patientId"`
	AppointmentStatusID *string    `json:"appointmentStatusId"`
	VisitTypeID         *string    `json:"visitTypeId"`
	CheckInTime         *time.Time `json:"checkInTime"`
}

AppointmentSearchInput ...

type AppointmentStatus

type AppointmentStatus struct {
	gorm.Model
	ID    int    `gorm:"primaryKey"`
	Title string `json:"title" gorm:"uniqueIndex"`
	Count int64  `json:"count"`
}

AppointmentStatus ...

type AutoRefraction

type AutoRefraction struct {
	gorm.Model
	ID                 int     `gorm:"primaryKey"`
	RightDistanceSph   *string `json:"rightDistanceSph"`
	LeftDistanceSph    *string `json:"leftDistanceSph"`
	RightDistanceAxis  *string `json:"rightDistanceAxis"`
	LeftDistanceAxis   *string `json:"leftDistanceAxis"`
	RightDistanceCyl   *string `json:"rightDistanceCyl"`
	LeftDistanceCyl    *string `json:"leftDistanceCyl"`
	RightNearSph       *string `json:"rightNearSph"`
	LeftNearSph        *string `json:"leftNearSph"`
	RightNearCyl       *string `json:"rightNearCyl"`
	LeftNearCyl        *string `json:"leftNearCyl"`
	RightNearAxis      *string `json:"rightNearAxis"`
	LeftNearAxis       *string `json:"leftNearAxis"`
	RightLensMeterSph  *string `json:"rightLensMeterSph"`
	LeftLensMeterSph   *string `json:"leftLensMeterSph"`
	RightLensMeterAxis *string `json:"rightLensMeterAxis"`
	LeftLensMeterAxis  *string `json:"leftLensMeterAxis"`
	RightLensMeterCyl  *string `json:"rightLensMeterCyl"`
	LeftLensMeterCyl   *string `json:"leftLensMeterCyl"`
	PatientChartID     int     `json:"patientChartId" gorm:"unique"`
}

AutoRefraction ...

type Billing

type Billing struct {
	gorm.Model
	ID       int     `gorm:"primaryKey"`
	Item     string  `json:"item" gorm:"uniqueIndex"`
	Code     string  `json:"code"`
	Price    float64 `json:"price"`
	Credit   bool    `json:"credit"`
	Remark   string  `json:"remark"`
	Document string  `gorm:"type:tsvector"`
	Count    int64   `json:"count"`
}

Billing ...

type Chat

type Chat struct {
	gorm.Model
	ID                 int                 `gorm:"primaryKey"`
	RecentMessage      string              `json:"recentMessage"`
	ChatMembers        []ChatMember        `json:"chatMembers"`
	ChatMutes          []ChatMute          `json:"chatMutes"`
	ChatDeletes        []ChatDelete        `json:"chatDeletes"`
	ChatUnreadMessages []ChatUnreadMessage `json:"chatUnreadMessages"`
	ChatMessages       []ChatMessage       `json:"chatMessages"`
}

Chat ...

type ChatDelete

type ChatDelete struct {
	gorm.Model
	ID     int   `gorm:"primaryKey"`
	UserID int   `json:"userId"`
	ChatID int   `json:"chatId"`
	Count  int64 `json:"count"`
}

ChatDelete ...

type ChatMember

type ChatMember struct {
	gorm.Model
	ID          int     `gorm:"primaryKey"`
	UserID      int     `json:"userId"`
	ChatID      int     `json:"chatId"`
	DisplayName string  `json:"displayName"`
	PhotoURL    *string `json:"photoUrl"`
}

ChatMemeber ...

type ChatMessage

type ChatMessage struct {
	gorm.Model
	ID     int    `gorm:"primaryKey"`
	Body   string `json:"body"`
	ChatID int    `json:"chatId"`
	UserID int    `json:"userId"`
}

ChatMessage ...

type ChatMute

type ChatMute struct {
	gorm.Model
	ID     int `gorm:"primaryKey"`
	UserID int `json:"userId"`
	ChatID int `json:"chatId"`
}

ChatMute ...

type ChatUnreadMessage

type ChatUnreadMessage struct {
	gorm.Model
	ID     int `gorm:"primaryKey"`
	UserID int `json:"userId"`
	ChatID int `json:"chatId"`
}

ChatUnreadMessage ...

type ChiefComplaint

type ChiefComplaint struct {
	gorm.Model
	ID             int            `gorm:"primaryKey"`
	Title          string         `json:"title"`
	PatientChartID int            `json:"patientChartId"`
	HPIComponents  []HpiComponent `gorm:"many2many:complaint_hpi_components"`
	Count          int64          `json:"count"`
	OldId          int            `json:"oldId"`
}

ChiefComplaint ...

type ChiefComplaintType

type ChiefComplaintType struct {
	gorm.Model
	ID     int    `gorm:"primaryKey" json:"id"`
	Title  string `json:"title"`
	Count  int64  `json:"count"`
	Active bool   `json:"active"`
}

ChiefComplaintType ...

type CoverTest

type CoverTest struct {
	gorm.Model
	ID             int     `gorm:"primaryKey"`
	RightCoverTest *string `json:"rightCoverTest"`
	LeftCoverTest  *string `json:"leftCoverTest"`
	Note           *string `json:"note"`
	PatientChartID int     `json:"patientChartId"`
}

CoverTest ...

type Diagnosis

type Diagnosis struct {
	gorm.Model
	ID                     int     `gorm:"primaryKey" json:"id"`
	CategoryCode           *string `json:"categoryCode"`
	DiagnosisCode          *string `json:"diagnosisCode"`
	FullCode               *string `json:"fullCode"`
	AbbreviatedDescription *string `json:"abbreviatedDescription"`
	FullDescription        string  `json:"fullDescription"`
	CategoryTitle          *string `json:"categoryTitle"`
	Active                 bool    `json:"active"`
	Document               string  `gorm:"type:tsvector"`
	Count                  int64   `json:"count"`
}

Diagnosis ...

type DiagnosticProcedure

type DiagnosticProcedure struct {
	gorm.Model
	ID                           int                       `gorm:"primaryKey"`
	DiagnosticProcedureOrderID   int                       `json:"diagnosticProcedureOrderId"`
	PatientChartID               int                       `json:"patientChartId"`
	GeneralText                  *string                   `json:"generalText"`
	Images                       []File                    `json:"images" gorm:"many2many:diagnostic_images"`
	Documents                    []File                    `json:"documents" gorm:"many2many:diagnostic_documents"`
	IsRefraction                 bool                      `json:"isRefraction"`
	RightDistanceSubjectiveSph   *string                   `json:"rightDistanceSubjectiveSph"`
	LeftDistanceSubjectiveSph    *string                   `json:"leftDistanceSubjectiveSph"`
	RightDistanceSubjectiveCyl   *string                   `json:"rightDistanceSubjectiveCyl"`
	LeftDistanceSubjectiveCyl    *string                   `json:"leftDistanceSubjectiveCyl"`
	RightDistanceSubjectiveAxis  *string                   `json:"rightDistanceSubjectiveAxis"`
	LeftDistanceSubjectiveAxis   *string                   `json:"leftDistanceSubjectiveAxis"`
	RightNearSubjectiveSph       *string                   `json:"rightNearSubjectiveSph"`
	LeftNearSubjectiveSph        *string                   `json:"leftNearSubjectiveSph"`
	RightNearSubjectiveCyl       *string                   `json:"rightNearSubjectiveCyl"`
	LeftNearSubjectiveCyl        *string                   `json:"leftNearSubjectiveCyl"`
	RightNearSubjectiveAxis      *string                   `json:"rightNearSubjectiveAxis"`
	LeftNearSubjectiveAxis       *string                   `json:"leftNearSubjectiveAxis"`
	RightDistanceObjectiveSph    *string                   `json:"rightDistanceObjectiveSph"`
	LeftDistanceObjectiveSph     *string                   `json:"leftDistanceObjectiveSph"`
	RightDistanceObjectiveCyl    *string                   `json:"rightDistanceObjectiveCyl"`
	LeftDistanceObjectiveCyl     *string                   `json:"leftDistanceObjectiveCyl"`
	RightDistanceObjectiveAxis   *string                   `json:"rightDistanceObjectiveAxis"`
	LeftDistanceObjectiveAxis    *string                   `json:"leftDistanceObjectiveAxis"`
	RightNearObjectiveSph        *string                   `json:"rightNearObjectiveSph"`
	LeftNearObjectiveSph         *string                   `json:"leftNearObjectiveSph"`
	RightNearObjectiveCyl        *string                   `json:"rightNearObjectiveCyl"`
	LeftNearObjectiveCyl         *string                   `json:"leftNearObjectiveCyl"`
	RightNearObjectiveAxis       *string                   `json:"rightNearObjectiveAxis"`
	LeftNearObjectiveAxis        *string                   `json:"leftNearObjectiveAxis"`
	RightDistanceFinalSph        *string                   `json:"rightDistanceFinalSph"`
	LeftDistanceFinalSph         *string                   `json:"leftDistanceFinalSph"`
	RightDistanceFinalCyl        *string                   `json:"rightDistanceFinalCyl"`
	LeftDistanceFinalCyl         *string                   `json:"leftDistanceFinalCyl"`
	RightDistanceFinalAxis       *string                   `json:"rightDistanceFinalAxis"`
	LeftDistanceFinalAxis        *string                   `json:"leftDistanceFinalAxis"`
	RightNearFinalSph            *string                   `json:"rightNearFinalSph"`
	LeftNearFinalSph             *string                   `json:"leftNearFinalSph"`
	RightNearFinalCyl            *string                   `json:"rightNearFinalCyl"`
	LeftNearFinalCyl             *string                   `json:"leftNearFinalCyl"`
	RightNearFinalAxis           *string                   `json:"rightNearFinalAxis"`
	LeftNearFinalAxis            *string                   `json:"leftNearFinalAxis"`
	RightVisualAcuity            *string                   `json:"rightVisualAcuity"`
	LeftVisualAcuity             *string                   `json:"leftVisualAcuity"`
	FarPd                        *string                   `json:"farPd"`
	NearPd                       *string                   `json:"nearPd"`
	DiagnosticProcedureTypeID    int                       `json:"diagnosticProcedureTypeId"`
	DiagnosticProcedureType      DiagnosticProcedureType   `json:"diagnosticProcedureType"`
	DiagnosticProcedureTypeTitle string                    `json:"diagnosticProcedureTypeTitle"`
	Payments                     []Payment                 `json:"payments" gorm:"many2many:diagnostic_procedure_payments;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
	Status                       DiagnosticProcedureStatus `json:"status"`
	OrderNote                    string                    `json:"orderNote"`
	ReceptionNote                string                    `json:"receptionNote"`
	Count                        int64                     `json:"count"`
	DicomStudyUid                *string                   `json:"dicomStudyUid"`
	Modalities                   datatypes.JSON            `json:"modalities"`
}

DiagnosticProcedure ...

type DiagnosticProcedureOrder

type DiagnosticProcedureOrder struct {
	gorm.Model
	ID                   int                            `gorm:"primaryKey"`
	PatientChartID       int                            `json:"patientChartId"`
	PatientID            int                            `json:"patientId"`
	FirstName            string                         `json:"firstName"`
	LastName             string                         `json:"lastName"`
	PhoneNo              string                         `json:"phoneNo"`
	UserName             string                         `json:"userName"`
	OrderedByID          *int                           `json:"orderedById"`
	OrderedBy            *User                          `json:"orderedBy"`
	Status               DiagnosticProcedureOrderStatus `json:"status"`
	DiagnosticProcedures []DiagnosticProcedure          `json:"diagnosticProcedures"`
	Document             string                         `gorm:"type:tsvector"`
	Count                int64                          `json:"count"`
}

DiagnosticProcedureOrder struct holds the order of the diagnostic procedures.

type DiagnosticProcedureOrderStatus

type DiagnosticProcedureOrderStatus string

DiagnosticProcedureOrderStatus ...

const (
	DiagnosticProcedureOrderOrderedStatus   DiagnosticProcedureOrderStatus = "ORDERED"
	DiagnosticProcedureOrderCompletedStatus DiagnosticProcedureOrderStatus = "COMPLETED"
)

DiagnosticProcedureOrder statuses ...

type DiagnosticProcedureStatus

type DiagnosticProcedureStatus string

DiagnosticProcedureStatus ...

const (
	DiagnosticProcedureOrderedStatus   DiagnosticProcedureStatus = "ORDERED"
	DiagnosticProcedureCompletedStatus DiagnosticProcedureStatus = "COMPLETED"
)

DiagnosticProcedureOrder statuses ...

type DiagnosticProcedureType

type DiagnosticProcedureType struct {
	gorm.Model
	ID       int       `gorm:"primaryKey" json:"id"`
	Title    string    `json:"title"`
	Active   bool      `json:"active"`
	Billings []Billing `json:"billings" gorm:"many2many:diagnostic_procedure_type_billings" `
	Count    int64     `json:"count"`
}

DiagnosticProcedureType ...

type ExamCategory

type ExamCategory struct {
	gorm.Model
	ID     int    `json:"id" gorm:"primaryKey"`
	Title  string `json:"title"`
	Count  int64  `json:"count"`
	Active bool   `json:"active"`
}

ExamCategory ...

type ExamFinding

type ExamFinding struct {
	gorm.Model
	ID             int          `gorm:"primaryKey" json:"id"`
	Title          string       `json:"title"`
	Pertinence     bool         `json:"pertinence"`
	ExamCategoryID int          `json:"examCategoryId"`
	ExamCategory   ExamCategory `json:"examCategory"`
	Active         bool         `json:"active"`
	Count          int64        `json:"count"`
}

ExamFinding ...

type ExternalExam

type ExternalExam struct {
	gorm.Model
	ID                  int     `gorm:"primaryKey"`
	RightOrbits         *string `json:"rightOrbits"`
	LeftOrbits          *string `json:"leftOrbits"`
	RightLids           *string `json:"rightLids"`
	LeftLids            *string `json:"leftLids"`
	RightLacrimalSystem *string `json:"rightLacrimalSystem"`
	LeftLacrimalSystem  *string `json:"leftLacrimalSystem"`
	Note                *string `json:"note"`
	PatientChartID      int     `json:"patientChartId"`
}

ExternalExam ...

type EyewearPrescription

type EyewearPrescription struct {
	gorm.Model
	ID                         int        `gorm:"primaryKey"`
	EyewearPrescriptionOrderID int        `json:"eyewearPrescriptionOrderId"`
	PatientID                  int        `json:"patientId"`
	Patient                    Patient    `json:"patient"`
	Glass                      *bool      `json:"glass"`
	Plastic                    *bool      `json:"plastic"`
	SingleVision               *bool      `json:"singleVision"`
	PhotoChromatic             *bool      `json:"photoChromatic"`
	GlareFree                  *bool      `json:"glareFree"`
	ScratchResistant           *bool      `json:"scratchResistant"`
	Bifocal                    *bool      `json:"bifocal"`
	Progressive                *bool      `json:"progressive"`
	TwoSeparateGlasses         *bool      `json:"twoSeparateGlasses"`
	HighIndex                  *bool      `json:"highIndex"`
	Tint                       *bool      `json:"tint"`
	BlueCut                    *bool      `json:"blueCut"`
	PrescribedDate             *time.Time `json:"prescribedDate"`
	History                    bool       `json:"history"`
	Status                     string     `json:"status"`
	Count                      int64      `json:"count"`
}

EyewearPrescription ...

type EyewearPrescriptionOrder

type EyewearPrescriptionOrder struct {
	gorm.Model
	ID                   int                   `gorm:"primaryKey"`
	EyewearShopID        int                   `json:"eyewearShopId"`
	EyewearShop          EyewearShop           `json:"eyewearShop"`
	PatientChartID       int                   `json:"patientChartId"`
	FirstName            string                `json:"firstName"`
	LastName             string                `json:"lastName"`
	PhoneNo              string                `json:"phoneNo"`
	UserName             string                `json:"userName"`
	OrderedByID          *int                  `json:"orderedById"`
	OrderedBy            *User                 `json:"orderedBy"`
	Status               string                `json:"status"`
	EyewearPrescriptions []EyewearPrescription `json:"eyewearPrescription"`
	Count                int64                 `json:"count"`
}

EyewearPrescriptionOrder ...

type EyewearShop

type EyewearShop struct {
	gorm.Model
	ID      int    `gorm:"primaryKey"`
	Title   string `json:"title" gorm:"uniqueIndex"`
	Address string `json:"address"`
	Region  string `json:"region"`
	Country string `json:"country"`
	Phone   string `json:"phone"`
	InHouse bool   `json:"inHouse"`
	Count   int64  `json:"count"`
	Active  bool   `json:"active"`
}

EyewearShop is a repository for the EyewearShop domain.

type FamilyIllness

type FamilyIllness struct {
	gorm.Model
	ID               int    `gorm:"primaryKey" json:"id"`
	Title            string `json:"title"`
	Description      string `json:"description"`
	PatientHistoryID int    `json:"patientHistoryID"`
}

FamilyIllness ...

type FavoriteChiefComplaint

type FavoriteChiefComplaint struct {
	gorm.Model
	ID                   int                `gorm:"primaryKey" json:"id"`
	ChiefComplaintTypeID int                `json:"chiefComplaintTypeId"`
	ChiefComplaintType   ChiefComplaintType `json:"chiefComplaintType"`
	UserID               int                `json:"user_id"`
	User                 User               `json:"user"`
	Count                int64              `json:"count"`
}

FavoriteChiefComplaint ...

type FavoriteDiagnosis

type FavoriteDiagnosis struct {
	gorm.Model
	ID          int       `gorm:"primaryKey" json:"id"`
	DiagnosisID int       `json:"diagnosisId"`
	Diagnosis   Diagnosis `json:"diagnosis"`
	UserID      int       `json:"user_id"`
	User        User      `json:"user"`
	Count       int64     `json:"count"`
}

FavoriteDiagnosis ...

type FavoriteMedication

type FavoriteMedication struct {
	gorm.Model
	ID                  int     `gorm:"primaryKey" json:"id"`
	Medication          string  `json:"medication"`
	Sig                 string  `json:"sig"`
	RxCui               *string `json:"rxCui"`
	Synonym             *string `json:"synonym"`
	Tty                 *string `json:"tty"`
	Language            *string `json:"language"`
	Refill              int     `json:"refill"`
	Generic             bool    `json:"generic"`
	SubstitutionAllowed bool    `json:"substitutionAllowed"`
	DirectionToPatient  string  `json:"directionToPatient"`
	UserID              int     `json:"user_id"`
	User                User    `json:"user"`
	Count               int64   `json:"count"`
}

FavoriteMedication ...

type File

type File struct {
	gorm.Model
	ID          int    `gorm:"primaryKey"`
	ContentType string `json:"contentType"`
	FileName    string `json:"fileName"`
	Extension   string `json:"extension"`
	Hash        string `json:"hash"`
	Size        int64  `json:"size"`
}

File ...

type FollowUp

type FollowUp struct {
	gorm.Model
	ID              int            `gorm:"primaryKey"`
	FollowUpOrderID int            `json:"followUpOrderId"`
	PatientChartID  int            `json:"patientChartId"`
	Status          FollowUpStatus `json:"status"`
	ReceptionNote   string         `json:"receptionNote"`
	Count           int64          `json:"count"`
}

FollowUp ...

type FollowUpOrder

type FollowUpOrder struct {
	gorm.Model
	ID             int                 `gorm:"primaryKey"`
	PatientChartID int                 `json:"patientChartId"`
	PatientID      int                 `json:"patientId"`
	FirstName      string              `json:"firstName"`
	LastName       string              `json:"lastName"`
	PhoneNo        string              `json:"phoneNo"`
	UserName       string              `json:"userName"`
	OrderedByID    int                 `json:"orderedById"`
	OrderedBy      User                `json:"orderedBy"`
	Status         FollowUpOrderStatus `json:"status"`
	FollowUps      []FollowUp          `json:"followUps"`
	Emergency      *bool               `json:"emergency"`
	Document       string              `gorm:"type:tsvector"`
	Count          int64               `json:"count"`
}

FollowUpOrder ...

type FollowUpOrderStatus

type FollowUpOrderStatus string

FollowUpOrderStatus ...

const (
	FollowUpOrderStatusOrdered   FollowUpOrderStatus = "ORDERED"
	FollowUpOrderStatusCompleted FollowUpOrderStatus = "COMPLETED"
)

FollowUpOrderStatus statuses ...

type FollowUpStatus

type FollowUpStatus string

FollowUpStatus ...

const (
	FollowUpStatusOrdered   FollowUpStatus = "ORDERED"
	FollowUpStatusCompleted FollowUpStatus = "COMPLETED"
)

SurgicalProcedureOrder statuses ...

type Funduscopy

type Funduscopy struct {
	gorm.Model
	ID                int     `gorm:"primaryKey"`
	RightRetina       *string `json:"rightRetina"`
	LeftRetina        *string `json:"leftRetina"`
	Note              *string `json:"note"`
	LeftRetinaSketch  *string `json:"leftRetinaSketch"`
	RightRetinaSketch *string `json:"rightRetinaSketch"`
	PatientChartID    int     `json:"patientChartId"`
}

Funduscopy ...

type HpiComponent

type HpiComponent struct {
	gorm.Model
	ID                 int              `gorm:"primaryKey"`
	Title              string           `json:"title"`
	HpiComponentTypeID int              `json:"hpiComponentTypeId"`
	HpiComponentType   HpiComponentType `json:"hpiComponentType"`
	Count              int64            `json:"count"`
}

HpiComponent ...

type HpiComponentType

type HpiComponentType struct {
	gorm.Model
	ID          int    `gorm:"primaryKey"`
	Title       string `json:"title"`
	Description string `json:"description"`
}

HpiComponentType ...

type Iop

type Iop struct {
	gorm.Model
	ID               int     `gorm:"primaryKey"`
	RightIop         *string `json:"rightIop"`
	LeftIop          *string `json:"leftIop"`
	RightApplanation *string `json:"rightApplanation"`
	LeftApplanation  *string `json:"leftApplanation"`
	RightTonopen     *string `json:"rightTonopen"`
	LeftTonopen      *string `json:"leftTonopen"`
	RightDigital     *string `json:"rightDigital"`
	LeftDigital      *string `json:"leftDigital"`
	RightNoncontact  *string `json:"rightNoncontact"`
	LeftNoncontact   *string `json:"leftNoncontact"`
	PatientChartID   int     `json:"patientChartId" gorm:"unique"`
}

Iop ...

type Lab

type Lab struct {
	gorm.Model
	ID             int `gorm:"primaryKey"`
	LabOrderID     int `json:"labOrderId"`
	PatientChartID int `json:"patinetChartId"`

	// Hematology (CBC)
	CbcWbcActive         *bool      `json:"cbcWbcActive"`
	CbcWbcResults        *string    `json:"cbcWbcResults"`
	CbcWbcDate           *time.Time `json:"cbcWbcDate"`
	CbcHgbActive         *bool      `json:"cbcHgbActive"`
	CbcHgbResults        *string    `json:"cbcHgbResults"`
	CbcHgbDate           *time.Time `json:"cbcHgbDate"`
	CbcHctActive         *bool      `json:"cbcHctActive"`
	CbcHctResults        *string    `json:"cbcHctResults"`
	CbcHctDate           *time.Time `json:"cbcHctDate"`
	CbcEsrActive         *bool      `json:"cbcEsrActive"`
	CbcEsrResults        *string    `json:"cbcEsrResults"`
	CbcEsrDate           *time.Time `json:"cbcEsrDate"`
	CbcBloodGroupActive  *bool      `json:"cbcBloodGroupActive"`
	CbcBloodGroupResults *string    `json:"cbcBloodGroupResults"`
	CbcBloodGroupDate    *time.Time `json:"cbcBloodGroupDate"`
	CbcRhActive          *bool      `json:"cbcRhActive"`
	CbcRhResults         *string    `json:"cbcRhResults"`
	CbcRhDate            *time.Time `json:"cbcRhDate"`
	CbcBloodFilmActive   *bool      `json:"cbcBloodFilmActive"`
	CbcBloodFilmResults  *string    `json:"cbcBloodFilmResults"`
	CbcBloodFilmDate     *time.Time `json:"cbcBloodFilmDate"`
	CbcPltActive         *bool      `json:"cbcPltActive"`
	CbcPltResults        *string    `json:"cbcPltResults"`
	CbcPltDate           *time.Time `json:"cbcPltDate"`

	// Liver Function Test
	LiverCoagulationPtActive   *bool      `json:"liverCoagulationPtActive"`
	LiverCoagulationPtResults  *string    `json:"liverCoagulationPtResults"`
	LiverCoagulationPtDate     *time.Time `json:"liverCoagulationPtDate"`
	LiverCoagulationPttActive  *bool      `json:"liverCoagulationPttActive"`
	LiverCoagulationPttResults *string    `json:"liverCoagulationPttResults"`
	LiverCoagulationPttDate    *time.Time `json:"liverCoagulationPttDate"`
	LiverCoagulationInrActive  *bool      `json:"liverCoagulationInrActive"`
	LiverCoagulationInrResults *string    `json:"liverCoagulationInrResults"`
	LiverCoagulationInrDate    *time.Time `json:"liverCoagulationInrDate"`
	LiverAstsgotActive         *bool      `json:"liverAstsgotActive"`
	LiverAstsgotResults        *string    `json:"liverAstsgotResults"`
	LiverAstsgotDate           *time.Time `json:"liverAstsgotDate"`
	LiverAltsgptActive         *bool      `json:"liverAltsgptActive"`
	LiverAltsgptResults        *string    `json:"liverAltsgptResults"`
	LiverAltsgptDate           *time.Time `json:"liverAltsgptDate"`
	LiverAlpActive             *bool      `json:"liverAlpActive"`
	LiverAlpResults            *string    `json:"liverAlpResults"`
	LiverAlpDate               *time.Time `json:"liverAlpDate"`

	// Renal Function Test
	RenalCrActive   *bool      `json:"renalCrActive"`
	RenalCrResults  *string    `json:"renalCrResults"`
	RenalCrDate     *time.Time `json:"renalCrDate"`
	RenalBunActive  *bool      `json:"renalBunActive"`
	RenalBunResults *string    `json:"renalBunResults"`
	RenalBunDate    *time.Time `json:"renalBunDate"`

	// Thyroid Function Test
	ThyroidFreeT3Active   *bool      `json:"thyroidFreeT3Active"`
	ThyroidFreeT3Results  *string    `json:"thyroidFreeT3Results"`
	ThyroidFreeT3Date     *time.Time `json:"thyroidFreeT3Date"`
	ThyroidTotalT4Active  *bool      `json:"thyroidTotalT4Active"`
	ThyroidTotalT4Results *string    `json:"thyroidTotalT4Results"`
	ThyroidTotalT4Date    *time.Time `json:"thyroidTotalT4Date"`
	ThyroidTshActive      *bool      `json:"thyroidTshActive"`
	ThyroidTshResults     *string    `json:"thyroidTshResults"`
	ThyroidTshDate        *time.Time `json:"thyroidTshDate"`

	// Electrolytes
	ElectrolytesNaPlusActive   *bool      `json:"electrolytesNaPlusActive"`
	ElectrolytesNaPlusResults  *string    `json:"electrolytesNaPlusResults"`
	ElectrolytesNaPlusDate     *time.Time `json:"electrolytesNaPlusDate"`
	ElectrolytesKPlusActive    *bool      `json:"electrolytesKPlusActive"`
	ElectrolytesKPlusResults   *string    `json:"electrolytesKPlusResults"`
	ElectrolytesKPlusDate      *time.Time `json:"electrolytesKPlusDate"`
	ElectrolytesClMinusActive  *bool      `json:"electrolytesClMinusActive"`
	ElectrolytesClMinusResults *string    `json:"electrolytesClMinusResults"`
	ElectrolytesClMinusDate    *time.Time `json:"electrolytesClMinusDate"`
	ElectrolytesCa2PlusActive  *bool      `json:"electrolytesCa2PlusActive"`
	ElectrolytesCa2PlusResults *string    `json:"electrolytesCa2PlusResults"`
	ElectrolytesCa2PlusDate    *time.Time `json:"electrolytesCa2PlusDate"`
	ElectrolytesMg2PlusActive  *bool      `json:"electrolytesMg2PlusActive"`
	ElectrolytesMg2PlusResults *string    `json:"electrolytesMg2PlusResults"`
	ElectrolytesMg2PlusDate    *time.Time `json:"electrolytesMg2PlusDate"`
	ElectrolytesPMinusActive   *bool      `json:"electrolytesPMinusActive"`
	ElectrolytesPMinusResults  *string    `json:"electrolytesPMinusResults"`
	ElectrolytesPMinusDate     *time.Time `json:"electrolytesPMinusDate"`

	// Stool Examination
	StoolConsistencyActive    *bool      `json:"stoolConsistencyActive"`
	StoolConsistencyResults   *string    `json:"stoolConsistencyResults"`
	StoolConsistencyDate      *time.Time `json:"stoolConsistencyDate"`
	StoolOpActive             *bool      `json:"stoolOpActive"`
	StoolOpResults            *string    `json:"stoolOpResults"`
	StoolOpDate               *time.Time `json:"stoolOpDate"`
	StoolConcentrationActive  *bool      `json:"stoolConcentrationActive"`
	StoolConcentrationResults *string    `json:"stoolConcentrationResults"`
	StoolConcentrationDate    *time.Time `json:"stoolConcentrationDate"`
	StoolOccultBloodActive    *bool      `json:"stoolOccultBloodActive"`
	StoolOccultBloodResults   *string    `json:"stoolOccultBloodResults"`
	StoolOccultBloodDate      *time.Time `json:"stoolOccultBloodDate"`

	// Microscopy
	MicroscopyEpitCellsActive  *bool      `json:"microscopyEpitCellsActive"`
	MicroscopyEpitCellsResults *string    `json:"microscopyEpitCellsResults"`
	MicroscopyEpitCellsDate    *time.Time `json:"microscopyEpitCellsDate"`
	MicroscopyWbcActive        *bool      `json:"microscopyWbcActive"`
	MicroscopyWbcResults       *string    `json:"microscopyWbcResults"`
	MicroscopyWbcDate          *time.Time `json:"microscopyWbcDate"`
	MicroscopyRbcActive        *bool      `json:"microscopyRbcActive"`
	MicroscopyRbcResults       *string    `json:"microscopyRbcResults"`
	MicroscopyRbcDate          *time.Time `json:"microscopyRbcDate"`
	MicroscopyCastsActive      *bool      `json:"microscopyCastsActive"`
	MicroscopyCastsResults     *string    `json:"microscopyCastsResults"`
	MicroscopyCastsDate        *time.Time `json:"microscopyCastsDate"`
	MicroscopyCrystalsActive   *bool      `json:"microscopyCrystalsActive"`
	MicroscopyCrystalsResults  *string    `json:"microscopyCrystalsResults"`
	MicroscopyCrystalsDate     *time.Time `json:"microscopyCrystalsDate"`
	MicroscopyBacteriaActive   *bool      `json:"microscopyBacteriaActive"`
	MicroscopyBacteriaResults  *string    `json:"microscopyBacteriaResults"`
	MicroscopyBacteriaDate     *time.Time `json:"microscopyBacteriaDate"`
	MicroscopyHcgActive        *bool      `json:"microscopyHcgActive"`
	MicroscopyHcgResults       *string    `json:"microscopyHcgResults"`
	MicroscopyHcgDate          *time.Time `json:"microscopyHcgDate"`

	// Urinalysis
	UrinalysisColorActive        *bool      `json:"urinalysisColorActive"`
	UrinalysisColorResults       *string    `json:"urinalysisColorResults"`
	UrinalysisColorDate          *time.Time `json:"urinalysisColorDate"`
	UrinalysisAppearanceActive   *bool      `json:"urinalysisAppearanceActive"`
	UrinalysisAppearanceResults  *string    `json:"urinalysisAppearanceResults"`
	UrinalysisAppearanceDate     *time.Time `json:"urinalysisAppearanceDate"`
	UrinalysisPhActive           *bool      `json:"urinalysisPhActive"`
	UrinalysisPhResults          *string    `json:"urinalysisPhResults"`
	UrinalysisPhDate             *time.Time `json:"urinalysisPhDate"`
	UrinalysisSgActive           *bool      `json:"urinalysisSgActive"`
	UrinalysisSgResults          *string    `json:"urinalysisSgResults"`
	UrinalysisSgDate             *time.Time `json:"urinalysisSgDate"`
	UrinalysisProteinActive      *bool      `json:"urinalysisProteinActive"`
	UrinalysisProteinResults     *string    `json:"urinalysisProteinResults"`
	UrinalysisProteinDate        *time.Time `json:"urinalysisProteinDate"`
	UrinalysisGlucoseActive      *bool      `json:"urinalysisGlucoseActive"`
	UrinalysisGlucoseResults     *string    `json:"urinalysisGlucoseResults"`
	UrinalysisGlucoseDate        *time.Time `json:"urinalysisGlucoseDate"`
	UrinalysisLeukocyteActive    *bool      `json:"urinalysisLeukocyteActive"`
	UrinalysisLeukocyteResults   *string    `json:"urinalysisLeukocyteResults"`
	UrinalysisLeukocyteDate      *time.Time `json:"urinalysisLeukocyteDate"`
	UrinalysisKetoneActive       *bool      `json:"urinalysisKetoneActive"`
	UrinalysisKetoneResults      *string    `json:"urinalysisKetoneResults"`
	UrinalysisKetoneDate         *time.Time `json:"urinalysisKetoneDate"`
	UrinalysisBilirubinActive    *bool      `json:"urinalysisBilirubinActive"`
	UrinalysisBilirubinResults   *string    `json:"urinalysisBilirubinResults"`
	UrinalysisBilirubinDate      *time.Time `json:"urinalysisBilirubinDate"`
	UrinalysisUrobilingenActive  *bool      `json:"urinalysisUrobilingenActive"`
	UrinalysisUrobilingenResults *string    `json:"urinalysisUrobilingenResults"`
	UrinalysisUrobilingenDate    *time.Time `json:"urinalysisUrobilingenDate"`
	UrinalysisBloodActive        *bool      `json:"urinalysisBloodActive"`
	UrinalysisBloodResults       *string    `json:"urinalysisBloodResults"`
	UrinalysisBloodDate          *time.Time `json:"urinalysisBloodDate"`

	// Serology
	SerologyVdrlActive        *bool      `json:"serologyVdrlActive"`
	SerologyVdrlResults       *string    `json:"serologyVdrlResults"`
	SerologyVdrlDate          *time.Time `json:"serologyVdrlDate"`
	SerologyWidalHActive      *bool      `json:"serologyWidalHActive"`
	SerologyWidalHResults     *string    `json:"serologyWidalHResults"`
	SerologyWidalHDate        *time.Time `json:"serologyWidalHDate"`
	SerologyWidalOActive      *bool      `json:"serologyWidalOActive"`
	SerologyWidalOResults     *string    `json:"serologyWidalOResults"`
	SerologyWidalODate        *time.Time `json:"serologyWidalODate"`
	SerologyWeilFelixActive   *bool      `json:"serologyWeilFelixActive"`
	SerologyWeilFelixResults  *string    `json:"serologyWeilFelixResults"`
	SerologyWeilFelixDate     *time.Time `json:"serologyWeilFelixDate"`
	SerologyHbsAgActive       *bool      `json:"serologyHbsAgActive"`
	SerologyHbsAgResults      *string    `json:"serologyHbsAgResults"`
	SerologyHbsAgDate         *time.Time `json:"serologyHbsAgDate"`
	SerologyHcvAbActive       *bool      `json:"serologyHcvAbActive"`
	SerologyHcvAbResults      *string    `json:"serologyHcvAbResults"`
	SerologyHcvAbDate         *time.Time `json:"serologyHcvAbDate"`
	SerologyAsoActive         *bool      `json:"serologyAsoActive"`
	SerologyAsoResults        *string    `json:"serologyAsoResults"`
	SerologyAsoDate           *time.Time `json:"serologyAsoDate"`
	SerologyRfActive          *bool      `json:"serologyRfActive"`
	SerologyRfResults         *string    `json:"serologyRfResults"`
	SerologyRfDate            *time.Time `json:"serologyRfDate"`
	SerologyHpayloryAgActive  *bool      `json:"serologyHpayloryAgActive"`
	SerologyHpayloryAgResults *string    `json:"serologyHpayloryAgResults"`
	SerologyHpayloryAgDate    *time.Time `json:"serologyHpayloryAgDate"`
	SerologyHpyloryAbActive   *bool      `json:"serologyHpyloryAbActive"`
	SerologyHpyloryAbResults  *string    `json:"serologyHpyloryAbResults"`
	SerologyHpyloryAbDate     *time.Time `json:"serologyHpyloryAbDate"`

	// Bacterology
	BacterologySampleActive     *bool      `json:"bacterologySampleActive"`
	BacterologySampleResults    *string    `json:"bacterologySampleResults"`
	BacterologySampleDate       *time.Time `json:"bacterologySampleDate"`
	BacterologyKohActive        *bool      `json:"bacterologyKohActive"`
	BacterologyKohResults       *string    `json:"bacterologyKohResults"`
	BacterologyKohDate          *time.Time `json:"bacterologyKohDate"`
	BacterologyGramStainActive  *bool      `json:"bacterologyGramStainActive"`
	BacterologyGramStainResults *string    `json:"bacterologyGramStainResults"`
	BacterologyGramStainDate    *time.Time `json:"bacterologyGramStainDate"`
	BacterologyWetFilmActive    *bool      `json:"bacterologyWetFilmActive"`
	BacterologyWetFilmResults   *string    `json:"bacterologyWetFilmResults"`
	BacterologyWetFilmDate      *time.Time `json:"bacterologyWetFilmDate"`
	BacterologyAfb1Active       *bool      `json:"bacterologyAfb1Active"`
	BacterologyAfb1Results      *string    `json:"bacterologyAfb1Results"`
	BacterologyAfb1Date         *time.Time `json:"bacterologyAfb1Date"`
	BacterologyAfb2Active       *bool      `json:"bacterologyAfb2Active"`
	BacterologyAfb2Results      *string    `json:"bacterologyAfb2Results"`
	BacterologyAfb2Date         *time.Time `json:"bacterologyAfb2Date"`
	BacterologyAfb3Active       *bool      `json:"bacterologyAfb3Active"`
	BacterologyAfb3Results      *string    `json:"bacterologyAfb3Results"`
	BacterologyAfb3Date         *time.Time `json:"bacterologyAfb3Date"`
	BacterologyCultureActive    *bool      `json:"bacterologyCultureActive"`
	BacterologyCultureResults   *string    `json:"bacterologyCultureResults"`
	BacterologyCultureDate      *time.Time `json:"bacterologyCultureDate"`

	// Chemistry
	ChemistryFbsRbsActive              *bool      `json:"chemistryFbsRbsActive"`
	ChemistryFbsRbsResults             *string    `json:"chemistryFbsRbsResults"`
	ChemistryFbsRbsDate                *time.Time `json:"chemistryFbsRbsDate"`
	ChemistrySgotActive                *bool      `json:"chemistrySgotActive"`
	ChemistrySgotResults               *string    `json:"chemistrySgotResults"`
	ChemistrySgotDate                  *time.Time `json:"chemistrySgotDate"`
	ChemistrySgptActive                *bool      `json:"chemistrySgptActive"`
	ChemistrySgptResults               *string    `json:"chemistrySgptResults"`
	ChemistrySgptDate                  *time.Time `json:"chemistrySgptDate"`
	ChemistryAlkalinePhosphatesActive  *bool      `json:"chemistryAlkalinePhosphatesActive"`
	ChemistryAlkalinePhosphatesResults *string    `json:"chemistryAlkalinePhosphatesResults"`
	ChemistryAlkalinePhosphatesDate    *time.Time `json:"chemistryAlkalinePhosphatesDate"`
	ChemistryBilirubinTotalActive      *bool      `json:"chemistryBilirubinTotalActive"`
	ChemistryBilirubinTotalResults     *string    `json:"chemistryBilirubinTotalResults"`
	ChemistryBilirubinTotalDate        *time.Time `json:"chemistryBilirubinTotalDate"`
	ChemistryBilirubinDirectActive     *bool      `json:"chemistryBilirubinDirectActive"`
	ChemistryBilirubinDirectResults    *string    `json:"chemistryBilirubinDirectResults"`
	ChemistryBilirubinDirectDate       *time.Time `json:"chemistryBilirubinDirectDate"`
	ChemistryUreaActive                *bool      `json:"chemistryUreaActive"`
	ChemistryUreaResults               *string    `json:"chemistryUreaResults"`
	ChemistryUreaDate                  *time.Time `json:"chemistryUreaDate"`
	ChemistryBunActive                 *bool      `json:"chemistryBunActive"`
	ChemistryBunResults                *string    `json:"chemistryBunResults"`
	ChemistryBunDate                   *time.Time `json:"chemistryBunDate"`
	ChemistryCreatnineActive           *bool      `json:"chemistryCreatnineActive"`
	ChemistryCreatnineResults          *string    `json:"chemistryCreatnineResults"`
	ChemistryCreatnineDate             *time.Time `json:"chemistryCreatnineDate"`
	ChemistryUricAcidActive            *bool      `json:"chemistryUricAcidActive"`
	ChemistryUricAcidResults           *string    `json:"chemistryUricAcidResults"`
	ChemistryUricAcidDate              *time.Time `json:"chemistryUricAcidDate"`
	ChemistryTotalProteinActive        *bool      `json:"chemistryTotalProteinActive"`
	ChemistryTotalProteinResults       *string    `json:"chemistryTotalProteinResults"`
	ChemistryTotalProteinDate          *time.Time `json:"chemistryTotalProteinDate"`
	ChemistryTriglyceridesActive       *bool      `json:"chemistryTriglyceridesActive"`
	ChemistryTriglyceridesResults      *string    `json:"chemistryTriglyceridesResults"`
	ChemistryTriglyceridesDate         *time.Time `json:"chemistryTriglyceridesDate"`
	ChemistryCholestrolActive          *bool      `json:"chemistryCholestrolActive"`
	ChemistryCholestrolResults         *string    `json:"chemistryCholestrolResults"`
	ChemistryCholestrolDate            *time.Time `json:"chemistryCholestrolDate"`
	ChemistryHdlActive                 *bool      `json:"chemistryHdlActive"`
	ChemistryHdlResults                *string    `json:"chemistryHdlResults"`
	ChemistryHdlDate                   *time.Time `json:"chemistryHdlDate"`
	ChemistryLdlActive                 *bool      `json:"chemistryLdlActive"`
	ChemistryLdlResults                *string    `json:"chemistryLdlResults"`
	ChemistryLdlDate                   *time.Time `json:"chemistryLdlDate"`

	RightEyeText     *string   `json:"rightEyeText"`
	LeftEyeText      *string   `json:"leftEyeText"`
	GeneralText      *string   `json:"generalText"`
	RightEyeImages   []File    `json:"rightEyeImages" gorm:"many2many:lab_right_eye_images" `
	LeftEyeImages    []File    `json:"leftEyeImages" gorm:"many2many:lab_left_eye_images"`
	RightEyeSketches []File    `json:"rightEyeSketches" gorm:"many2many:lab_right_eye_sketches"`
	LeftEyeSketches  []File    `json:"leftEyeSketches" gorm:"many2many:lab_left_eye_sketches"`
	Images           []File    `json:"images" gorm:"many2many:lab_images"`
	Documents        []File    `json:"documents" gorm:"many2many:lab_documents"`
	LabTypeID        int       `json:"labTypeId"`
	LabType          LabType   `json:"labType"`
	LabTypeTitle     string    `json:"labTypeTitle"`
	Payments         []Payment `json:"payments" gorm:"many2many:lab_payments;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
	OrderNote        string    `json:"orderNote"`
	ReceptionNote    string    `json:"receptionNote"`
	Status           LabStatus `json:"status"`
	Count            int64     `json:"count"`
}

Lab ...

type LabOrder

type LabOrder struct {
	gorm.Model
	ID             int            `gorm:"primaryKey"`
	PatientChartID int            `json:"patientChartId"`
	PatientID      int            `json:"patientId"`
	FirstName      string         `json:"firstName"`
	LastName       string         `json:"lastName"`
	PhoneNo        string         `json:"phoneNo"`
	UserName       string         `json:"userName"`
	OrderedByID    *int           `json:"orderedById"`
	OrderedBy      *User          `json:"orderedBy"`
	Status         LabOrderStatus `json:"status"`
	Labs           []Lab          `json:"labs"`
	Document       string         `gorm:"type:tsvector"`
	Count          int64          `json:"count"`
}

LabOrder ...

type LabOrderStatus

type LabOrderStatus string

LabOrderStatus

const (
	LabOrderOrderedStatus   LabOrderStatus = "ORDERED"
	LabOrderCompletedStatus LabOrderStatus = "COMPLETED"
)

LabOrder statuses

type LabStatus

type LabStatus string

LabStatus ...

const (
	LabOrderedStatus   LabStatus = "ORDERED"
	LabCompletedStatus LabStatus = "COMPLETED"
)

LabStatus statuses ...

type LabType

type LabType struct {
	gorm.Model
	ID       int       `gorm:"primaryKey" json:"id"`
	Title    string    `json:"title"`
	Active   bool      `json:"active"`
	Billings []Billing `json:"billings" gorm:"many2many:lab_type_billings" `
	Count    int64     `json:"count"`
}

LabType ...

type Lifestyle

type Lifestyle struct {
	gorm.Model
	ID               int    `gorm:"primaryKey"`
	Title            string `json:"title"`
	Description      string `json:"description"`
	Note             string `json:"note"`
	PatientHistoryID int    `json:"patientHistoryID"`
}

Lifestyle ...

type LifestyleType

type LifestyleType struct {
	gorm.Model
	ID    int    `gorm:"primaryKey" json:"id"`
	Title string `json:"title"`
	Count int64  `json:"count"`
}

LifestyleType ...

type MedicalPrescription

type MedicalPrescription struct {
	gorm.Model
	ID                         int        `gorm:"primaryKey"`
	MedicalPrescriptionOrderID int        `json:"medicalPrescriptionOrderId"`
	PatientID                  int        `json:"patientId"`
	Patient                    Patient    `json:"patient"`
	Medication                 string     `json:"medication"`
	RxCui                      *string    `json:"rxCui"`
	Synonym                    *string    `json:"synonym"`
	Tty                        *string    `json:"tty"`
	Language                   *string    `json:"language"`
	Sig                        *string    `json:"sig"`
	Refill                     *int       `json:"refill"`
	Generic                    *bool      `json:"generic"`
	SubstitutionAllowed        *bool      `json:"substitutionAllowed"`
	DirectionToPatient         *string    `json:"directionToPatient"`
	PrescribedDate             *time.Time `json:"prescribedDate"`
	History                    bool       `json:"history"`
	Status                     string     `json:"status"`
	Count                      int64      `json:"count"`
}

MedicalPrescription ...

type MedicalPrescriptionOrder

type MedicalPrescriptionOrder struct {
	gorm.Model
	ID                   int                   `gorm:"primaryKey"`
	PharmacyID           int                   `json:"pharmacyId"`
	Pharmacy             Pharmacy              `json:"pharmacy"`
	PatientChartID       int                   `json:"patientChartId"`
	OrderedByID          *int                  `json:"orderedById"`
	OrderedBy            *User                 `json:"orderedBy"`
	FirstName            string                `json:"firstName"`
	LastName             string                `json:"lastName"`
	PhoneNo              string                `json:"phoneNo"`
	UserName             string                `json:"userName"`
	Status               string                `json:"status"`
	MedicalPrescriptions []MedicalPrescription `json:"medicalPrescriptions"`
	Count                int64                 `json:"count"`
}

MedicalPrescriptionOrder is a gorm struct for the prescription_order table

type Modality added in v0.1.7

type Modality struct {
	gorm.Model
	ID           int     `gorm:"primaryKey"`
	Value        string  `json:"value"`
	Description  string  `json:"description"`
	IconFileName *string `json:"iconFileName"`
	Active       bool    `json:"active"`
	Count        int64   `json:"count"`
}

Modality ...

type Model

type Model struct {
	*gorm.DB
	*casbin.Enforcer
	// contains filtered or unexported fields
}

Model facilitate database interactions

func NewModel

func NewModel() *Model

NewModel returns a new Model without opening database connection

func (*Model) AddSearchIndex

func (s *Model) AddSearchIndex() error

AddSearchIndex ...

func (*Model) AutoMigrateAll

func (m *Model) AutoMigrateAll()

AutoMigrateAll runs migrations for all the registered models

func (*Model) DropAll

func (m *Model) DropAll()

DropAll drops all tables

func (*Model) IsOpen

func (m *Model) IsOpen() bool

IsOpen returns true if the Model has already established connection to the database

func (*Model) OpenPostgres

func (m *Model) OpenPostgres() error

OpenPostgres ...

func (*Model) OpenWithConfigTest

func (m *Model) OpenWithConfigTest(cfg *conf.Configuration) error

OpenWithConfigTest opens database connection with test database

func (*Model) Register

func (m *Model) Register(values ...interface{}) error

Register adds the values to the models registry

func (*Model) RegisterAllModels

func (m *Model) RegisterAllModels()

RegisterAllModels ...

type OcularMotility

type OcularMotility struct {
	gorm.Model
	ID                  int     `gorm:"primaryKey"`
	RightOcularMotility *string `json:"rightOcularMotility"`
	LeftOcularMotility  *string `json:"leftOcularMotility"`
	Rsr                 *string `json:"rsr"`
	Rio                 *string `json:"rio"`
	Rlr                 *string `json:"rlr"`
	Rmr                 *string `json:"rmr"`
	Rir                 *string `json:"rir"`
	Rso                 *string `json:"rso"`
	RightFlick          *bool   `json:"rightFlick"`
	Lsr                 *string `json:"lsr"`
	Lio                 *string `json:"lio"`
	Llr                 *string `json:"llr"`
	Lrl                 *string `json:"lrl"`
	Lmr                 *string `json:"lmr"`
	Lir                 *string `json:"lir"`
	Lso                 *string `json:"lso"`
	LeftFlick           *bool   `json:"leftFlick"`
	Distance            *string `json:"distance"`
	Near                *string `json:"near"`
	Note                *string `json:"note"`
	PatientChartID      int     `json:"patientChartId"`
}

OcularMotility ...

type OpthalmologyExam

type OpthalmologyExam struct {
	gorm.Model
	ID             int `gorm:"primaryKey"`
	PatientChartID int `json:"patientChartId" gorm:"uniqueIndex"`

	// External Exam
	RightOrbits         *string `json:"rightOrbits"`
	LeftOrbits          *string `json:"leftOrbits"`
	RightLids           *string `json:"rightLids"`
	LeftLids            *string `json:"leftLids"`
	RightLacrimalSystem *string `json:"rightLacrimalSystem"`
	LeftLacrimalSystem  *string `json:"leftLacrimalSystem"`
	ExternalExamNote    *string `json:"externalExamNote"`

	// Ocular Motility
	RightOcularMotility *string `json:"rightOcularMotility"`
	LeftOcularMotility  *string `json:"leftOcularMotility"`
	Rsr                 *string `json:"rsr"`
	Rio                 *string `json:"rio"`
	Rlr                 *string `json:"rlr"`
	Rmr                 *string `json:"rmr"`
	Rir                 *string `json:"rir"`
	Rso                 *string `json:"rso"`
	RightFlick          *bool   `json:"rightFlick" gorm:"default:false"`
	Lsr                 *string `json:"lsr"`
	Lio                 *string `json:"lio"`
	Llr                 *string `json:"llr"`
	Lrl                 *string `json:"lrl"`
	Lmr                 *string `json:"lmr"`
	Lir                 *string `json:"lir"`
	Lso                 *string `json:"lso"`
	LeftFlick           *bool   `json:"leftFlick" gorm:"default:false"`
	Distance            *string `json:"distance"`
	Near                *string `json:"near"`
	OcularMotilityNote  *string `json:"ocularMotility"`

	// Cover Test
	RightCoverTest *string `json:"rightCoverTest"`
	LeftCoverTest  *string `json:"leftCoverTest"`
	CoverTestNote  *string `json:"coverTestNote"`

	// Funduscopy
	RightRetina       *string `json:"rightRetina"`
	LeftRetina        *string `json:"leftRetina"`
	LeftRetinaSketch  *string `json:"leftRetinaSketch"`
	RightRetinaSketch *string `json:"rightRetinaSketch"`
	FunduscopyNote    *string `json:"funduscopyNote"`

	// Optic Disc
	RightOpticDisc       *string `json:"rightOpticDisc"`
	LeftOpticDisc        *string `json:"leftOpticDisc"`
	RightOpticDiscSketch *string `json:"rightOpticDiscSketch"`
	LeftOpticDiscSketch  *string `json:"leftOpticDiscSketch"`
	RightCdr             *string `json:"rightCdr"`
	LeftCdr              *string `json:"leftCdr"`
	OpticDiscNote        *string `json:"opticDiscNote"`

	// Pupils
	RightPupils *string `json:"rightPupils"`
	LeftPupils  *string `json:"leftPupils"`
	PupilsNote  *string `json:"pupilsNote"`

	// Slit Lamp Exam
	RightConjunctiva     *string `json:"rightConjunctiva"`
	LeftConjunctiva      *string `json:"leftConjunctiva"`
	RightCornea          *string `json:"rightCornea"`
	LeftCornea           *string `json:"leftCornea"`
	RightCorneaSketch    *string `json:"rightCorneaSketch"`
	LeftCorneaSketch     *string `json:"leftCorneaSketch"`
	LeftSclera           *string `json:"leftSclera"`
	RightSclera          *string `json:"rightSclera"`
	RightAnteriorChamber *string `json:"rightAnteriorChamber"`
	LeftAnteriorChamber  *string `json:"leftAnteriorChamber"`
	RightIris            *string `json:"rightIris"`
	LeftIris             *string `json:"leftIris"`
	RightLens            *string `json:"rightLens"`
	LeftLens             *string `json:"leftLens"`
	RightLensSketch      *string `json:"rightLensSketch"`
	LeftLensSketch       *string `json:"leftLensSketch"`
	RightVitreos         *string `json:"rightVitreos"`
	LeftVitreos          *string `json:"leftVitreos"`
	SlitLampExamNote     *string `json:"slitLampExamNote"`
}

OpthalmologyExam ...

type OpticDisc

type OpticDisc struct {
	gorm.Model
	ID                   int     `gorm:"primaryKey"`
	RightOpticDisc       *string `json:"rightOpticDisc"`
	LeftOpticDisc        *string `json:"leftOpticDisc"`
	RightOpticDiscSketch *string `json:"rightOpticDiscSketch"`
	LeftOpticDiscSketch  *string `json:"leftOpticDiscSketch"`
	RightCdr             *string `json:"rightCdr"`
	LeftCdr              *string `json:"leftCdr"`
	Note                 *string `json:"note"`
	PatientChartID       int     `json:"patientChartId"`
}

OpticDisc ...

type OrganizationDetails

type OrganizationDetails struct {
	gorm.Model
	ID                       int     `gorm:"primaryKey" json:"id"`
	Name                     *string `json:"name"`
	PhoneNo                  *string `json:"phoneNo"`
	PhoneNo2                 *string `json:"phoneNo2"`
	Address                  *string `json:"address"`
	Address2                 *string `json:"address2"`
	Website                  *string `json:"website"`
	Email                    *string `json:"email"`
	LanIpAddress             *string `json:"lanIpAddress"`
	LogoID                   *int    `json:"logoId"`
	DefaultMedicalDepartment *string `json:"defaultMedicalDepartment"`
}

OrganizationDetails ...

type PaginationInput

type PaginationInput struct {
	Page int `json:"page"`
	Size int `json:"size"`
}

PaginationInput ...

type PastHospitalization

type PastHospitalization struct {
	gorm.Model
	ID               int        `gorm:"primaryKey"`
	Reason           string     `json:"reason"`
	Provider         string     `json:"provider"`
	From             *time.Time `json:"from"`
	To               *time.Time `json:"to"`
	PatientHistoryID int        `json:"patientHistoryID"`
}

PastHospitalization ...

type PastIllness

type PastIllness struct {
	gorm.Model
	ID               int    `gorm:"primaryKey"`
	Title            string `json:"title"`
	Description      string `json:"description"`
	PatientHistoryID int    `json:"patientHistoryId"`
}

PastIllness ...

type PastIllnessType

type PastIllnessType struct {
	gorm.Model
	ID    int    `gorm:"primaryKey" json:"id"`
	Title string `json:"title"`
	Count int64  `json:"count"`
}

PastIllnessType ...

type PastInjury

type PastInjury struct {
	gorm.Model
	ID               int        `gorm:"primaryKey"`
	Description      string     `json:"description"`
	InjuryDate       *time.Time `json:"injuryDate"`
	PatientHistoryID int        `json:"patientHistoryID"`
}

PastInjury ...

type PastOptSurgery

type PastOptSurgery struct {
	gorm.Model
	ID               int    `gorm:"primaryKey"`
	Title            string `json:"title"`
	Description      string `json:"description"`
	PatientHistoryID int    `json:"patientHistoryID"`
}

PastOptSurgery ...

type PastSurgery

type PastSurgery struct {
	gorm.Model
	ID               int        `gorm:"primaryKey"`
	Description      string     `json:"description"`
	SurgeryDate      *time.Time `json:"injuryDate"`
	PatientHistoryID int        `json:"patientHistoryID"`
}

PastSurgery ...

type Patient

type Patient struct {
	gorm.Model
	ID                     int            `gorm:"primaryKey"`
	FirstName              string         `json:"firstName" gorm:"not null;"`
	LastName               string         `json:"lastName" gorm:"not null;"`
	FullName               string         `json:"fullName"`
	Gender                 string         `json:"gender"`
	PhoneNo                string         `json:"phoneNo" gorm:"size:100;not null;"`
	PhoneNo2               string         `json:"phoneNo2" gorm:"size:100;not null;"`
	TelNo                  string         `json:"telNo"`
	HomePhone              string         `json:"homePhone"`
	Email                  string         `json:"email" gorm:"size:100;not null;"`
	DateOfBirth            time.Time      `json:"dateOfBirth"`
	IDNo                   string         `json:"idNo"`
	IDType                 string         `json:"idType"`
	MartialStatus          string         `json:"martialStatus"`
	Occupation             string         `json:"occupation"`
	Credit                 *bool          `json:"credit"`
	CreditCompany          *string        `json:"creditCompany"`
	EmergencyContactName   string         `json:"emergencyContactName"`
	EmergencyContactRel    string         `json:"emergencyContactRel"`
	EmergencyContactPhone  string         `json:"emergencyContactPhone"`
	EmergencyContactPhone2 string         `json:"emergencyContactPhone2"`
	EmergencyContactMemo   string         `json:"emergencyContactMemo"`
	Country                string         `json:"country"`
	City                   string         `json:"city"`
	SubCity                string         `json:"subCity"`
	Region                 string         `json:"region"`
	Woreda                 string         `json:"woreda"`
	Zone                   string         `json:"zone"`
	Kebele                 string         `json:"kebele"`
	HouseNo                string         `json:"houseNo"`
	Memo                   string         `json:"memo"`
	CardNo                 string         `json:"cardNo"`
	PaperRecord            bool           `json:"paperRecord"`
	PaperRecordDocumentID  *int           `json:"paperRecordDocumentId"`
	PaperRecordDocument    *File          `json:"paperRecordDocument"`
	Documents              []File         `json:"documents" gorm:"many2many:patient_documents"`
	PatientHistory         PatientHistory `json:"patientHistory"`
	Appointments           []Appointment  `json:"appointments"`
	Document               string         `gorm:"type:tsvector"`
	Count                  int64          `json:"count"`
}

Patient ...

func (*Patient) AfterCreate

func (r *Patient) AfterCreate(tx *gorm.DB) error

AfterCreate ...

func (*Patient) AfterUpdate

func (r *Patient) AfterUpdate(tx *gorm.DB) (err error)

AfterUpdate ...

type PatientChart

type PatientChart struct {
	gorm.Model
	ID                        int                      `gorm:"primaryKey"`
	AppointmentID             int                      `json:"appointmentId"`
	VitalSigns                VitalSigns               `json:"vitalSigns"`
	PhysicalExamFindings      []PhysicalExamFinding    `json:"physicalExamFindings"`
	PhysicalExamFindingNote   *string                  `json:"physicalExamFindingNote"`
	OpthalmologyExam          OpthalmologyExam         `json:"opthalmologyExam"`
	SurgicalProcedure         SurgicalProcedure        `json:"surgicalProcedure"`
	Treatment                 Treatment                `json:"treatment"`
	ChiefComplaints           []ChiefComplaint         `json:"chiefComplaints"`
	ChiefComplaintsNote       *string                  `json:"chiefComplaintNote"`
	BloodPressure             *string                  `json:"bloodPressure"`
	HpiNote                   *string                  `json:"hpiNote"`
	DiagnosisNote             *string                  `json:"diagnosisNote"`
	DifferentialDiagnosisNote *string                  `json:"differentialDiagnosisNote"`
	RightSummarySketch        *string                  `json:"rightSummarySketch"`
	LeftSummarySketch         *string                  `json:"leftSummarySketch"`
	SummaryNote               *string                  `json:"summaryNote"`
	StickieNote               *string                  `json:"stickieNote"`
	MedicalRecommendation     *string                  `json:"medicalRecommendation"`
	SickLeave                 *string                  `json:"sickLeave"`
	IllnessType               *string                  `json:"illnessType"`
	MedicalPrescriptionOrder  MedicalPrescriptionOrder `json:"medicalPrescriptionOrder"`
	EyewearPrescriptionOrder  EyewearPrescriptionOrder `json:"eyewearPrescriptionOrder"`
	DiagnosticProcedureOrder  DiagnosticProcedureOrder `json:"diagnosticProcedureOrder"`
	SurgicalOrder             SurgicalOrder            `json:"surgicalOrder"`
	TreatmentOrder            TreatmentOrder           `json:"treatmentOrder"`
	ReferralOrder             ReferralOrder            `json:"referralOrder"`
	FollowUpOrder             FollowUpOrder            `json:"followUpOrder"`
	LabOrder                  LabOrder                 `json:"labOrder"`
	Diagnoses                 []PatientDiagnosis       `json:"diagnoses"`
	Locked                    *bool                    `json:"locked"`
	LockedDate                *time.Time               `json:"lockedDate"`
	LockedByID                *int                     `json:"lockedById"`
	LockedBy                  *User                    `json:"lockedBy"`
	Amendments                []Amendment              `json:"amendments"`
	OldPatientChartId         int                      `json:"oldPatientChartId"`
}

PatientChart ...

func (*PatientChart) AfterCreate

func (r *PatientChart) AfterCreate(tx *gorm.DB) error

AfterCreate ...

type PatientDiagnosis

type PatientDiagnosis struct {
	gorm.Model
	ID                     int     `gorm:"primaryKey"`
	PatientChartID         int     `json:"patientChartId"`
	CategoryCode           *string `json:"categoryCode"`
	DiagnosisCode          *string `json:"diagnosisCode"`
	FullCode               *string `json:"fullCode"`
	AbbreviatedDescription *string `json:"abbreviatedDescription"`
	FullDescription        string  `json:"fullDescription"`
	CategoryTitle          *string `json:"categoryTitle"`
	Location               string  `json:"location"`
	Differential           bool    `json:"differential"`
	Count                  int64   `json:"count"`
}

PatientDiagnosis ...

type PatientEncounterLimit

type PatientEncounterLimit struct {
	gorm.Model
	ID             int   `gorm:"primaryKey"`
	UserID         int   `json:"userId" gorm:"uniqueIndex"`
	User           User  `json:"user"`
	MondayLimit    int   `json:"mondayLimit"`
	TuesdayLimit   int   `json:"tuesdayLimit"`
	WednesdayLimit int   `json:"wednesdayLimit"`
	ThursdayLimit  int   `json:"thursdayLimit"`
	FridayLimit    int   `json:"fridayLimit"`
	SaturdayLimit  int   `json:"saturdayLimit"`
	SundayLimit    int   `json:"sundayLimit"`
	Overbook       int   `json:"overbook"`
	Count          int64 `json:"count"`
}

PatientEncounterLimit ...

type PatientHistory

type PatientHistory struct {
	gorm.Model
	ID                   int                   `gorm:"primaryKey" json:"id"`
	PatientID            int                   `json:"patientId" gorm:"uniqueIndex"`
	ReviewOfSystems      []ReviewOfSystem      `json:"reviewOfSystems"`
	ReviewOfSystemsNote  *string               `json:"reviewOfSystemsNote"`
	PastIllnesses        []PastIllness         `json:"pastIllnesses"`
	PastInjuries         []PastInjury          `json:"pastInjuries"`
	PastHospitalizations []PastHospitalization `json:"pastHospitalizations"`
	PastSurgeries        []PastSurgery         `json:"pastSurgeries"`
	FamilyIllnesses      []FamilyIllness       `json:"familyIllnesses"`
	Lifestyles           []Lifestyle           `json:"lifestyles"`
	Allergies            []Allergy             `json:"allergies"`
}

PatientHistory ...

type PatientQueue

type PatientQueue struct {
	gorm.Model
	ID        int            `gorm:"primaryKey" json:"id"`
	QueueName string         `json:"queueName" gorm:"uniqueIndex"`
	Queue     datatypes.JSON `json:"queue"`
	QueueType QueueType      `json:"queueType"`
}

PatientQueue ...

type Payment

type Payment struct {
	gorm.Model
	ID        int           `gorm:"primaryKey"`
	InvoiceNo string        `json:"invoiceNo"`
	Status    PaymentStatus `json:"status" sql:"payment_status"`
	BillingID int           `json:"billingId"`
	Billing   Billing       `json:"billing"`
}

Payment ...

type PaymentStatus

type PaymentStatus string

PaymentStatus ...

const (
	PaidPaymentStatus            PaymentStatus = "PAID"
	NotPaidPaymentStatus         PaymentStatus = "NOTPAID"
	WaiverRequestedPaymentStatus PaymentStatus = "PAYMENT_WAIVER_REQUESTED"
)

Payment statuses ...

func (*PaymentStatus) Scan

func (p *PaymentStatus) Scan(value interface{}) error

Scan ...

func (PaymentStatus) Value

func (p PaymentStatus) Value() (driver.Value, error)

Value ...

type PaymentWaiver

type PaymentWaiver struct {
	gorm.Model
	ID        int     `gorm:"primaryKey"`
	PaymentID int     `json:"paymentId" gorm:"unique"`
	Payment   Payment `json:"payment"`
	UserID    int     `json:"userID"`
	User      User    `json:"user"`
	PatientID int     `json:"patientId"`
	Patient   Patient `json:"patient"`
	Approved  *bool   `json:"approved"`
	Count     int64   `json:"count"`
}

PaymentWaiver ...

type Pharmacy

type Pharmacy struct {
	gorm.Model
	ID      int    `gorm:"primaryKey"`
	Title   string `json:"title" gorm:"uniqueIndex"`
	Address string `json:"address"`
	Region  string `json:"region"`
	Country string `json:"country"`
	Phone   string `json:"phone"`
	InHouse bool   `json:"inHouse"`
	Count   int64  `json:"count"`
	Active  bool   `json:"active"`
}

Pharmacy is a repository for the pharmacy domain.

type PhysicalExamFinding

type PhysicalExamFinding struct {
	gorm.Model
	ID             int          `gorm:"primaryKey" json:"id"`
	PatientChartID int          `json:"patientChartId" gorm:"uniqueIndex"`
	ExamCategoryID int          `json:"examCategoryId"`
	ExamCategory   ExamCategory `json:"examCategory"`
	Abnormal       bool         `string:"abnormal"`
	Note           *string      `json:"note"`
	Count          int64        `json:"count"`
}

PhysicalExamFinding ...

type Pupils

type Pupils struct {
	gorm.Model
	ID             int     `gorm:"primaryKey"`
	RightPupils    *string `json:"rightPupils"`
	LeftPupils     *string `json:"leftPupils"`
	Note           *string `json:"note"`
	PatientChartID int     `json:"patientChartId"`
}

Pupils ...

type PupilsRepository

type PupilsRepository struct {
	DB *gorm.DB
}

func ProvidePupilsRepository

func ProvidePupilsRepository(DB *gorm.DB) PupilsRepository

type QueueDestination

type QueueDestination struct {
	gorm.Model
	ID    int    `gorm:"primaryKey" json:"id"`
	Title string `json:"title" gorm:"uniqueIndex"`
	Count int64  `json:"count"`
}

QueueDestination ...

type QueueSubscription

type QueueSubscription struct {
	gorm.Model
	ID            int            `gorm:"primaryKey" json:"id"`
	UserID        int            `json:"userId" gorm:"uniqueIndex"`
	User          User           `json:"user"`
	Subscriptions []PatientQueue `json:"subscriptions" gorm:"many2many:user_queue_subscriptions;"`
}

QueueSubscription ....

type QueueType

type QueueType string

QueueType ...

const (
	UserQueue       QueueType = "USER"
	DiagnosticQueue QueueType = "DIAGNOSTIC"
	LabQueue        QueueType = "LAB"
	TreatmentQueue  QueueType = "TREATMENT"
	SurgicalQueue   QueueType = "SURGICAL"
	PreExamQueue    QueueType = "PREEXAM"
	PreOperation    QueueType = "PREOPERATION"
)

Queue Types ...

type Referral

type Referral struct {
	gorm.Model
	ID              int            `gorm:"primaryKey"`
	ReferralOrderID int            `json:"referralOrderId"`
	PatientChartID  int            `json:"patientChartId"`
	Reason          string         `json:"reason"`
	ReferredToID    *int           `json:"referredToId"`
	ReferredToName  string         `json:"referredToName"`
	Status          ReferralStatus `json:"status"`
	Type            ReferralType   `json:"type"`
	ReceptionNote   string         `json:"receptionNote"`
	Count           int64          `json:"count"`
}

Referral ...

type ReferralOrder

type ReferralOrder struct {
	gorm.Model
	ID             int                 `gorm:"primaryKey"`
	PatientChartID int                 `json:"patientChartId"`
	PatientID      int                 `json:"patientId"`
	FirstName      string              `json:"firstName"`
	LastName       string              `json:"lastName"`
	PhoneNo        string              `json:"phoneNo"`
	UserName       string              `json:"userName"`
	OrderedByID    int                 `json:"orderedById"`
	OrderedBy      User                `json:"orderedBy"`
	Status         ReferralOrderStatus `json:"status"`
	Referrals      []Referral          `json:"referrals"`
	Emergency      *bool               `json:"emergency"`
	Document       string              `gorm:"type:tsvector"`
	Count          int64               `json:"count"`
}

ReferralOrder ...

type ReferralOrderStatus

type ReferralOrderStatus string

ReferralOrderStatus ...

const (
	ReferralOrderStatusOrdered   ReferralOrderStatus = "ORDERED"
	ReferralOrderStatusCompleted ReferralOrderStatus = "COMPLETED"
)

ReferralOrderStatus statuses ...

type ReferralStatus

type ReferralStatus string

ReferralStatus ...

type ReferralType

type ReferralType string

ReferralType ...

type ReviewOfSystem

type ReviewOfSystem struct {
	gorm.Model
	ID               int           `gorm:"primaryKey" json:"id"`
	PatientHistoryID int           `json:"patientHistoryId"`
	SystemSymptomID  int           `json:"systemSymptomId"`
	SystemSymptom    SystemSymptom `json:"systemSymptom"`
	Note             *string       `json:"note"`
	Count            int64         `json:"count"`
}

ReviewOfSystem ...

type Room

type Room struct {
	gorm.Model
	ID    int    `gorm:"primaryKey"`
	Title string `json:"title" gorm:"unique"`
	Count int64  `json:"count"`
}

Room ...

type SlitLampExam

type SlitLampExam struct {
	gorm.Model
	ID                   int     `gorm:"primaryKey"`
	RightConjunctiva     *string `json:"rightConjunctiva"`
	LeftConjunctiva      *string `json:"leftConjunctiva"`
	RightCornea          *string `json:"rightCornea"`
	LeftCornea           *string `json:"leftCornea"`
	RightCorneaSketch    *string `json:"rightCorneaSketch"`
	LeftCorneaSketch     *string `json:"leftCorneaSketch"`
	LeftSclera           *string `json:"leftSclera"`
	RightSclera          *string `json:"rightSclera"`
	RightAnteriorChamber *string `json:"rightAnteriorChamber"`
	LeftAnteriorChamber  *string `json:"leftAnteriorChamber"`
	RightIris            *string `json:"rightIris"`
	LeftIris             *string `json:"leftIris"`
	RightLens            *string `json:"rightLens"`
	LeftLens             *string `json:"leftLens"`
	RightLensSketch      *string `json:"rightLensSketch"`
	LeftLensSketch       *string `json:"leftLensSketch"`
	RightVitreos         *string `json:"rightVitreos"`
	LeftVitreos          *string `json:"leftVitreos"`
	Note                 *string `json:"note"`
	PatientChartID       int     `json:"patientChartId"`
}

SlitLampExam ...

type Supply

type Supply struct {
	gorm.Model
	ID       int       `gorm:"primaryKey" json:"id"`
	Title    string    `json:"title"`
	Active   bool      `json:"active"`
	Billings []Billing `json:"billings" gorm:"many2many:supply_billings"`
	Count    int64     `json:"count"`
}

Supply ...

type SurgeryStatus

type SurgeryStatus string

SurgeryStatus ...

const (
	SurgeryStatusOrdered   SurgeryStatus = "ORDERED"
	SurgeryStatusCompleted SurgeryStatus = "COMPLETED"
)

SurgicalProcedureOrder statuses ...

type SurgicalOrder

type SurgicalOrder struct {
	gorm.Model
	ID                 int                 `gorm:"primaryKey"`
	PatientChartID     int                 `json:"patientChartId"`
	PatientID          int                 `json:"patientId"`
	FirstName          string              `json:"firstName"`
	LastName           string              `json:"lastName"`
	PhoneNo            string              `json:"phoneNo"`
	UserName           string              `json:"userName"`
	OrderedByID        int                 `json:"orderedById"`
	OrderedBy          User                `json:"orderedBy"`
	Status             SurgicalOrderStatus `json:"status"`
	SurgicalProcedures []SurgicalProcedure `json:"surgicalProcedures"`
	Emergency          *bool               `json:"emergency"`
	Document           string              `gorm:"type:tsvector"`
	Count              int64               `json:"count"`
}

SurgicalOrder ...

type SurgicalOrderStatus

type SurgicalOrderStatus string

SurgicalOrderStatus ...

const (
	SurgicalOrderStatusOrdered   SurgicalOrderStatus = "ORDERED"
	SurgicalOrderStatusCompleted SurgicalOrderStatus = "COMPLETED"
)

SurgicalOrderStatus statuses ...

type SurgicalProcedure

type SurgicalProcedure struct {
	gorm.Model
	ID              int `gorm:"primaryKey"`
	SurgicalOrderID int `json:"surgicalOrderId"`
	PatientChartID  int `json:"patientChartId"`

	// Preasnesthetic
	Respiratory                  *string    `json:"respiratory"`
	Cardiovascular               *string    `json:"cardiovascular"`
	Abdomen                      *string    `json:"abdomen"`
	Gus                          *string    `json:"gus"`
	Ismss                        *string    `json:"ismss"`
	Cns                          *string    `json:"cns"`
	PreanestheticAllergies       *bool      `json:"preanestheticAllergies"`
	PreanestheticAllergiesNote   *string    `json:"preanestheticAllergiesNote"`
	PhysicalBloodPressure        *string    `json:"physicalBloodPressure"`
	PhysicalPr                   *string    `json:"physicalPr"`
	PhysicalRr                   *string    `json:"physicalRr"`
	PhysicalSaO2                 *string    `json:"physicalSaO2"`
	PhysicalTemperature          *string    `json:"physicalTemperature"`
	PhysicalWeight               *string    `json:"physicalWeight"`
	PhysicalHeent                *string    `json:"physicalHeent"`
	PhysicalArtificalDenture     *bool      `json:"physicalArtificalDenture"`
	PhysicalArtificalDentureNote *string    `json:"physicalArtificalDentureNote"`
	PhysicalLgs                  *string    `json:"physicalLgs"`
	PhysicalChest                *string    `json:"physicalChest"`
	PhysicalCvs                  *string    `json:"physicalCvs"`
	PhysicalAbdomen              *string    `json:"physicalAbdomen"`
	PhysicalGus                  *string    `json:"physicalGus"`
	PhysicalIs                   *string    `json:"physicalIs"`
	PhysicalMss                  *string    `json:"physicalMss"`
	PhysicalCns                  *string    `json:"physicalCns"`
	WbcActive                    *bool      `json:"wbcActive"`
	WbcResults                   *string    `json:"wbcResults"`
	WbcDate                      *time.Time `json:"wbcDate"`
	HgbhctActive                 *bool      `json:"hgbhctActive"`
	HgbhctResults                *string    `json:"hgbhctResults"`
	HgbhctDate                   *time.Time `json:"hgbhctDate"`
	PltActive                    *bool      `json:"pltActive"`
	PltResults                   *string    `json:"pltResults"`
	PltDate                      *time.Time `json:"pltDate"`
	CoagulationPtActive          *bool      `json:"coagulationPtActive"`
	CoagulationPtResults         *string    `json:"coagulationPtResults"`
	CoagulationPtDate            *time.Time `json:"coagulationPtDate"`
	CoagulationPttActive         *bool      `json:"coagulationPttActive"`
	CoagulationPttResults        *string    `json:"coagulationPttResults"`
	CoagulationPttDate           *time.Time `json:"coagulationPttDate"`
	CoagulationInrActive         *bool      `json:"coagulationInrActive"`
	CoagulationInrResults        *string    `json:"coagulationInrResults"`
	CoagulationInrDate           *time.Time `json:"coagulationInrDate"`
	SerumAlbuminActive           *bool      `json:"serumAlbuminActive"`
	SerumAlbuminResults          *string    `json:"serumAlbuminResults"`
	SerumAlbuminDate             *time.Time `json:"serumAlbuminDate"`
	TotalProteinActive           *bool      `json:"totalProteinActive"`
	TotalProteinResults          *string    `json:"totalProteinResults"`
	TotalProteinDate             *time.Time `json:"totalProteinDate"`
	BilirubinTotalActive         *bool      `json:"bilirubinTotalActive"`
	BilirubinTotalResults        *string    `json:"bilirubinTotalResults"`
	BilirubinTotalDate           *time.Time `json:"bilirubinTotalDate"`
	BilirubinDirectActive        *bool      `json:"bilirubinDirectActive"`
	BilirubinDirectResults       *string    `json:"bilirubinDirectResults"`
	BilirubinDirectDate          *time.Time `json:"bilirubinDirectDate"`
	AstsgotActive                *bool      `json:"astsgotActive"`
	AstsgotResults               *string    `json:"astsgotResults"`
	AstsgotDate                  *time.Time `json:"astsgotDate"`
	AltsgptActive                *bool      `json:"altsgptActive"`
	AltsgptResults               *string    `json:"altsgptResults"`
	AltsgptDate                  *time.Time `json:"altsgptDate"`
	AlpActive                    *bool      `json:"alpActive"`
	AlpResults                   *string    `json:"alpResults"`
	AlpDate                      *time.Time `json:"alpDate"`
	RenalCrActive                *bool      `json:"renalCrActive"`
	RenalCrResults               *string    `json:"renalCrResults"`
	RenalCrDate                  *time.Time `json:"renalCrDate"`
	RenalBunActive               *bool      `json:"renalBunActive"`
	RenalBunResults              *string    `json:"renalBunResults"`
	RenalBunDate                 *time.Time `json:"renalBunDate"`
	ThyroidFreeT3Active          *bool      `json:"thyroidFreeT3Active"`
	ThyroidFreeT3Results         *string    `json:"thyroidFreeT3Results"`
	ThyroidFreeT3Date            *time.Time `json:"thyroidFreeT3Date"`
	ThyroidTotalT4Active         *bool      `json:"thyroidTotalT4Active"`
	ThyroidTotalT4Results        *string    `json:"thyroidTotalT4Results"`
	ThyroidTotalT4Date           *time.Time `json:"thyroidTotalT4Date"`
	ThyroidTshActive             *bool      `json:"thyroidTshActive"`
	ThyroidTshResults            *string    `json:"thyroidTshResults"`
	ThyroidTshDate               *time.Time `json:"thyroidTshDate"`
	ElectrolytesNaPlusActive     *bool      `json:"electrolytesNaPlusActive"`
	ElectrolytesNaPlusResults    *string    `json:"electrolytesNaPlusResults"`
	ElectrolytesNaPlusDate       *time.Time `json:"electrolytesNaPlusDate"`
	ElectrolytesKPlusActive      *bool      `json:"electrolytesKPlusActive"`
	ElectrolytesKPlusResults     *string    `json:"electrolytesKPlusResults"`
	ElectrolytesKPlusDate        *time.Time `json:"electrolytesKPlusDate"`
	ElectrolytesClMinusActive    *bool      `json:"electrolytesClMinusActive"`
	ElectrolytesClMinusResults   *string    `json:"electrolytesClMinusResults"`
	ElectrolytesClMinusDate      *time.Time `json:"electrolytesClMinusDate"`
	ElectrolytesCa2PlusActive    *bool      `json:"electrolytesCa2PlusActive"`
	ElectrolytesCa2PlusResults   *string    `json:"electrolytesCa2PlusResults"`
	ElectrolytesCa2PlusDate      *time.Time `json:"electrolytesCa2PlusDate"`
	ElectrolytesMg2PlusActive    *bool      `json:"electrolytesMg2PlusActive"`
	ElectrolytesMg2PlusResults   *string    `json:"electrolytesMg2PlusResults"`
	ElectrolytesMg2PlusDate      *time.Time `json:"electrolytesMg2PlusDate"`
	ElectrolytesPMinusActive     *bool      `json:"electrolytesPMinusActive"`
	ElectrolytesPMinusResults    *string    `json:"electrolytesPMinusResults"`
	ElectrolytesPMinusDate       *time.Time `json:"electrolytesPMinusDate"`
	Asa1                         *bool      `json:"asa1"`
	Asa2                         *bool      `json:"asa2"`
	Asa3                         *bool      `json:"asa3"`
	Asa4                         *bool      `json:"asa4"`
	Asa5                         *bool      `json:"asa5"`
	Opv1                         *bool      `json:"opv1"`
	Opv2                         *bool      `json:"opv2"`
	Opv3                         *bool      `json:"opv3"`
	Opv4                         *bool      `json:"opv4"`
	BleedingTendancy             *bool      `json:"bleedingTendancy"`
	BleedingTendancyNote         *string    `json:"bleedingTendancyNote"`
	Dm                           *bool      `json:"dm"`
	DmNote                       *string    `json:"dmNote"`
	Hypertension                 *bool      `json:"hypertension"`
	HypertensionNote             *string    `json:"hypertensionNote"`
	Cardiac                      *bool      `json:"cardiac"`
	CardiacNote                  *string    `json:"cardiacNote"`
	PreanestheticAsthma          *bool      `json:"preanestheticAsthma"`
	PreanestheticAsthmaNote      *string    `json:"preanestheticAsthmaNote"`
	Rvi                          *bool      `json:"rvi"`
	RviNote                      *string    `json:"rviNote"`
	Renal                        *bool      `json:"renal"`
	RenalNote                    *string    `json:"renalNote"`

	PreanestheticPerformedBy *int    `json:"preanestheticPerformedBy"`
	FitForSurgery            *bool   `json:"fitForSurgery"`
	FitForSurgeryNote        *string `json:"fitForSurgeryNote"`
	PreanestheticDocuments   []File  `json:"preanestheticDocuments" gorm:"many2many:surgical_procedure_preanesthetic_documents"`

	// Pre-operation
	RightCorrected        *string `json:"rightCorrected"`
	LeftCorrected         *string `json:"leftCorrected"`
	RightIop              *string `json:"rightIop"`
	LeftIop               *string `json:"leftIop"`
	RightAnteriorSegment  *string `json:"rightAnteriorSegment"`
	LeftAnteriorSegment   *string `json:"leftAnteriorSegment"`
	RightPosteriorSegment *string `json:"rightPosteriorSegment"`
	LeftPosteriorSegment  *string `json:"leftPosteriorSegment"`
	RightBiometry         *string `json:"rightBiometry"`
	LeftBiometry          *string `json:"leftBiometry"`
	Diabetes              *string `json:"diabetes"`
	Hpn                   *string `json:"hpn"`
	Asthma                *string `json:"asthma"`
	CardiacDisease        *string `json:"cardiacDisease"`
	Allergies             *string `json:"allergies"`
	BloodPressure         *string `json:"bloodPressure"`
	BloodSugar            *string `json:"bloodSugar"`
	URIAnalysis           *string `json:"uriAnalysis"`

	// Intra-operation
	PerformOnEye         string  `json:"performOnEye"`
	La                   *bool   `json:"la"`
	Ga                   *bool   `json:"ga"`
	Retrobulbar          *bool   `json:"retrobulbar"`
	Peribulbar           *bool   `json:"peribulbar"`
	Subtenones           *bool   `json:"subtenones"`
	Topical              *bool   `json:"topical"`
	ConjFlapLimbal       *bool   `json:"conjFlapLimbal"`
	ConjFlapFornix       *bool   `json:"conjFlapFornix"`
	SectionLimbal        *bool   `json:"sectionLimbal"`
	SectionCorneral      *bool   `json:"sectionCorneral"`
	SectionScleralTunnel *bool   `json:"sectionScleralTunnel"`
	CapsulotomyLinear    *bool   `json:"capsulotomyLinear"`
	CapsulotomyCanOpener *bool   `json:"capsulotomyCanOpener"`
	CapsulotomyCcc       *bool   `json:"capsulotomyCcc"`
	IolPlacementBag      *bool   `json:"iolPlacementBag"`
	IolSulcus            *bool   `json:"iolSulcus"`
	IolBagSulcus         *bool   `json:"iolBagSulcus"`
	IrodectpmyNone       *bool   `json:"irodectpmyNone"`
	IrodectpmyPl         *bool   `json:"irodectpmyPl"`
	IrodectpmySl         *bool   `json:"irodectpmySl"`
	Sphincterectomy      *bool   `json:"sphincterectomy"`
	LensExtractionIcce   *bool   `json:"lensExtractionIcce"`
	LensExtractionEcce   *bool   `json:"lensExtractionEcce"`
	LensExtractionPhaco  *bool   `json:"lensExtractionPhaco"`
	SutureNone           *bool   `json:"sutureNone"`
	SutureContinuous     *bool   `json:"sutureContinuous"`
	SutureInterrupted    *bool   `json:"sutureInterrupted"`
	Drapes               *bool   `json:"drapes"`
	Ringer               *bool   `json:"ringer"`
	Bss                  *bool   `json:"bss"`
	Air                  *bool   `json:"air"`
	Hpmc                 *bool   `json:"hpmc"`
	Healon               *bool   `json:"healon"`
	Pilo                 *bool   `json:"pilo"`
	Adrenalin            *bool   `json:"adrenalin"`
	Antibiotic           *bool   `json:"antibiotic"`
	Steroid              *bool   `json:"steroid"`
	Suture80             *bool   `json:"suture80"`
	Suture90             *bool   `json:"suture90"`
	Suture100            *bool   `json:"suture100"`
	IrrigatingSolution   *string `json:"irrigatingSolution"`
	Visco                *string `json:"visco"`
	Interacameral        *string `json:"interacameral"`
	Subconj              *string `json:"subconj"`
	Suture               *string `json:"suture"`
	Silk                 *bool   `json:"silk"`
	Nylon                *bool   `json:"nylon"`
	PcTear               *bool   `json:"pcTear"`
	VitreousLoss         *bool   `json:"vitreousLoss"`
	DescematesStrip      *bool   `json:"descematesStrip"`
	EndothelialDamage    *bool   `json:"endothelialDamage"`
	NucluesDrop          *bool   `json:"nucluesDrop"`
	IridoDialysis        *bool   `json:"iridoDialysis"`
	IrisDamage           *bool   `json:"irisDamage"`
	RetainedCortex       *bool   `json:"retainedCortex"`
	Hyphema              *bool   `json:"hyphema"`
	ComplicationsOthers  *string `json:"complicationsOthers"`
	ComplicationsNote    *string `json:"complicationsNote"`
	Vitrectomy           *string `json:"vitrectomy"`
	TypeOfIolAc          *bool   `json:"typeOfIolAc"`
	TypeOfIolPc          *bool   `json:"typeOfIolPc"`
	TypeOfIol            *string `json:"typeOfIol"`
	IolModel             *string `json:"iolModel"`
	Company              *string `json:"company"`
	Aclol                *string `json:"aclol"`
	AclolPlanned         *bool   `json:"aclolPlanned"`
	AclolUnplanned       *bool   `json:"aclolUnplanned"`
	Unplanned            *string `json:"unplanned"`

	// PPV Intra-Op
	TwentyG                   *bool `json:"twentyG"`
	TwentyThreeG              *bool `json:"twentyThreeG"`
	TwentyFiveG               *bool `json:"twentyFiveG"`
	Tca                       *bool `json:"tca"`
	BrilliantBlue             *bool `json:"brilliantBlue"`
	Ilmp                      *bool `json:"ilmp"`
	MembranePeeling           *bool `json:"membranePeeling"`
	MembraneSegmentation      *bool `json:"membraneSegmentation"`
	MembraneDeliniation       *bool `json:"membraneDeliniation"`
	Retinotomy                *bool `json:"retinotomy"`
	Retinectomy               *bool `json:"retinectomy"`
	Fax                       *bool `json:"fax"`
	Pfcl                      *bool `json:"pfcl"`
	SiliconOilInjection       *bool `json:"siliconOilInjection"`
	SiliconOilExchange        *bool `json:"siliconOilExchange"`
	SiliconOilPfclExchange    *bool `json:"siliconOilPfclExchange"`
	SiliconOilOneThousandCsk  *bool `json:"siliconOilOneThousandCsk"`
	SiliconOilFiveThousandCsk *bool `json:"siliconOilFiveThousandCsk"`
	Endolaser                 *bool `json:"endolaser"`
	AtBreaks                  *bool `json:"atBreaks"`
	ThreeSixyDegree           *bool `json:"threeSixyDegree"`
	Prp                       *bool `json:"prp"`
	CryopexyAtBreaks          *bool `json:"cryopexyAtBreaks"`
	Endodiathermy             *bool `json:"endodiathermy"`
	EncirclingBand            *bool `json:"encirclingBand"`
	SclerotomyStitches        *bool `json:"sclerotomyStitches"`

	// PPV Complications
	ComplicationChrodialEffusion         *bool `json:"complicationChrodialEffusion"`
	ComplicationIntraocilarHemorrhage    *bool `json:"complicationIntraocilarHemorrhage"`
	ComplicationSuprachorodialHemorrhage *bool `json:"complicationSuprachorodialHemorrhage"`
	ComplicationIatrogenicBreaks         *bool `json:"complicationIatrogenicBreaks"`
	ComplicationRetinalDetachment        *bool `json:"complicationRetinalDetachment"`
	ComplicationLensTouch                *bool `json:"complicationLensTouch"`
	ComplicationPfcl                     *bool `json:"complicationPfcl"`
	ComplicationSubretialPfcl            *bool `json:"complicationSubretialPfcl"`
	ComplicationSubretialOil             *bool `json:"complicationSubretialOil"`
	ComplicationMacularFold              *bool `json:"complicationMacularFold"`

	AdditionalNotes     *string `json:"additionalNotes"`
	SpecialInstructions *string `json:"specialInstructions"`
	Treatment           *string `json:"treatment"`
	AssistantName       *string `json:"assistantName"`

	SurgicalProcedureTypeID    int                   `json:"surgicalProcedureTypeId"`
	SurgicalProcedureType      SurgicalProcedureType `json:"surgicalProcedureType"`
	SurgicalProcedureTypeTitle string                `json:"surgicalProcedureTypeTitle"`
	Payments                   []Payment             `json:"payments" gorm:"many2many:surgery_payments;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
	Status                     SurgeryStatus         `json:"status"`
	OrderNote                  string                `json:"orderNote"`
	ReceptionNote              string                `json:"receptionNote"`
	Count                      int64                 `json:"count"`
}

SurgicalProcedure ...

type SurgicalProcedureType

type SurgicalProcedureType struct {
	gorm.Model
	ID       int       `gorm:"primaryKey" json:"id"`
	Title    string    `json:"title"`
	Active   bool      `json:"active"`
	Billings []Billing `json:"billings" gorm:"many2many:surgical_procedure_type_billings"`
	Supplies []Supply  `json:"supplies" gorm:"many2many:surgical_procedure_supplies"`
	Count    int64     `json:"count"`
}

SurgicalProcedureType ...

type System

type System struct {
	gorm.Model
	ID     int    `json:"id" gorm:"primaryKey"`
	Title  string `json:"title"`
	Count  int64  `json:"count"`
	Active bool   `json:"active"`
}

System ...

type SystemSymptom

type SystemSymptom struct {
	gorm.Model
	ID       int    `gorm:"primaryKey" json:"id"`
	Title    string `json:"title"`
	Count    int64  `json:"count"`
	Active   bool   `json:"active"`
	SystemID int    `json:"systemId"`
	System   System `json:"system"`
}

SystemSymptom

type Treatment

type Treatment struct {
	gorm.Model
	ID                 int             `gorm:"primaryKey"`
	TreatmentOrderID   int             `json:"treatmentOrderId"`
	PatientChartID     int             `json:"patientChartId"`
	Note               string          `json:"note"`
	Result             string          `json:"result"`
	RightEyeText       string          `json:"rightEyeText"`
	LeftEyeText        string          `json:"leftEyeText"`
	GeneralText        string          `json:"generalText"`
	TreatmentTypeID    int             `json:"treatmentTypeId"`
	TreatmentType      TreatmentType   `json:"treatmentType"`
	TreatmentTypeTitle string          `json:"treatmentTypeTitle"`
	Payments           []Payment       `json:"payments" gorm:"many2many:treatment_payments;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
	ReceptionNote      string          `json:"receptionNote"`
	Status             TreatmentStatus `json:"status"`
	Count              int64           `json:"count"`
}

Treatment ...

type TreatmentOrder

type TreatmentOrder struct {
	gorm.Model
	ID             int                  `gorm:"primaryKey"`
	PatientChartID int                  `json:"patientChartId"`
	PatientID      int                  `json:"patientId"`
	FirstName      string               `json:"firstName"`
	LastName       string               `json:"lastName"`
	PhoneNo        string               `json:"phoneNo"`
	UserName       string               `json:"userName"`
	OrderedByID    int                  `json:"orderedById"`
	OrderedBy      User                 `json:"orderedBy"`
	Status         TreatmentOrderStatus `json:"status"`
	Treatments     []Treatment          `json:"treatments"`
	Emergency      *bool                `json:"emergency"`
	Document       string               `gorm:"type:tsvector"`
	Count          int64                `json:"count"`
}

TreatmentOrder ...

type TreatmentOrderStatus

type TreatmentOrderStatus string

TreatmentOrderStatus ...

const (
	TreatmentOrderStatusOrdered   TreatmentOrderStatus = "ORDERED"
	TreatmentOrderStatusCompleted TreatmentOrderStatus = "COMPLETED"
)

TreatmentOrderStatus statuses ...

type TreatmentStatus

type TreatmentStatus string

TreatmentStatus ...

const (
	TreatmentStatusOrdered   TreatmentStatus = "ORDERED"
	TreatmentStatusCompleted TreatmentStatus = "COMPLETED"
)

SurgicalProcedureOrder statuses ...

type TreatmentType

type TreatmentType struct {
	gorm.Model
	ID       int       `gorm:"primaryKey" json:"id"`
	Title    string    `json:"title"`
	Status   string    `json:"status"`
	Billings []Billing `json:"billings" gorm:"many2many:treatment_type_billings"`
	Supplies []Supply  `json:"supplies" gorm:"many2many:treatment_supplies"`
	Active   bool      `json:"active"`
	Count    int64     `json:"count"`
}

TreatmentType ...

type User

type User struct {
	gorm.Model
	ID int `gorm:"primaryKey"`

	FirstName string `json:"firstName"`
	LastName  string `json:"lastName"`

	Email    string `json:"email" gorm:"uniqueIndex"`
	Password string `json:"password"`

	OldUserName string `json:"oldUserName"`

	UserTypes []UserType `gorm:"many2many:user_type_roles;" json:"userTypes"`

	Appointments []Appointment `json:"appointments"`

	Active bool `json:"active"`

	SignatureID *int  `json:"signatureId"`
	Signature   *File `json:"signature"`

	ProfilePicID *int  `json:"profilePicId"`
	ProfilePic   *File `json:"profilePic"`

	// Confirm
	ConfirmSelector string
	ConfirmVerifier string
	Confirmed       bool

	// Lock
	AttemptCount int
	LastAttempt  *time.Time
	Locked       *time.Time

	// Recover
	RecoverSelector    string
	RecoverVerifier    string
	RecoverTokenExpiry *time.Time

	// OAuth2
	OAuth2UID          string
	OAuth2Provider     string
	OAuth2AccessToken  string
	OAuth2RefreshToken string
	OAuth2Expiry       *time.Time

	// 2fa
	TOTPSecretKey      string
	SMSPhoneNumber     string
	SMSSeedPhoneNumber string
	RecoveryCodes      string

	Document string `gorm:"type:tsvector"`
	Count    int64  `json:"count"`
}

User ...

func (*User) CheckPassword

func (r *User) CheckPassword(password1 string, password2 string) error

CheckPassword checks user password

func (*User) CheckPasswordEquality

func (r *User) CheckPasswordEquality(password1 string, password2 string) bool

HashPassword encrypts user password

func (*User) HashPassword

func (r *User) HashPassword() error

HashPassword encrypts user password

type UserType

type UserType struct {
	gorm.Model
	ID    int    `gorm:"primaryKey"`
	Title string `json:"title" gorm:"uniqueIndex"`
	Users []User `gorm:"many2many:user_type_roles;"`
	Count int64  `json:"count"`
}

UserType ...

type VisitType

type VisitType struct {
	gorm.Model
	ID    int    `gorm:"primaryKey"`
	Title string `json:"title" gorm:"unique"`
}

VisitType ...

type VisualAcuity

type VisualAcuity struct {
	gorm.Model
	ID                       int     `gorm:"primaryKey"`
	RightDistanceUncorrected *string `json:"rightDistanceUncorrected"`
	LeftDistanceUncorrected  *string `json:"leftDistanceUncorrected"`
	RightDistancePinhole     *string `json:"rightDistancePinhole"`
	LeftDistancePinhole      *string `json:"leftDistancePinhole"`
	RightDistanceCorrected   *string `json:"rightDistanceCorrected"`
	LeftDistanceCorrected    *string `json:"leftDistanceCorrected"`
	RightNearUncorrected     *string `json:"rightNearUncorrected"`
	LeftNearUncorrected      *string `json:"leftNearUncorrected"`
	RightNearPinhole         *string `json:"rightNearPinhole"`
	LeftNearPinhole          *string `json:"leftNearPinhole"`
	RightNearCorrected       *string `json:"rightNearCorrected"`
	LeftNearCorrected        *string `json:"leftNearCorrected"`
	PatientChartID           int     `json:"patientChartId" gorm:"unique"`
}

VisualAcuity ...

type VitalSigns

type VitalSigns struct {
	gorm.Model
	ID             int `gorm:"primaryKey"`
	PatientChartID int `json:"patientChartId" gorm:"uniqueIndex"`

	Temperature            *float64 `json:"temperature"`
	Pulse                  *float64 `json:"pulse"`
	BloodPressureSystolic  *float64 `json:"bloodPressureSystolic"`
	BloodPressureDiastolic *float64 `json:"bloodPressureDiastolic"`
	RespiratoryRate        *float64 `json:"respiratoryRate"`
	OxygenSaturation       *float64 `json:"oxygenSaturation"`
	Height                 *float64 `json:"height"`
	Weight                 *float64 `json:"weight"`
	Bmi                    *float64 `json:"bmi"`

	// Visual Acuity
	RightDistanceUncorrected *string `json:"rightDistanceUncorrected"`
	LeftDistanceUncorrected  *string `json:"leftDistanceUncorrected"`
	RightDistancePinhole     *string `json:"rightDistancePinhole"`
	LeftDistancePinhole      *string `json:"leftDistancePinhole"`
	RightDistanceCorrected   *string `json:"rightDistanceCorrected"`
	LeftDistanceCorrected    *string `json:"leftDistanceCorrected"`
	RightNearUncorrected     *string `json:"rightNearUncorrected"`
	LeftNearUncorrected      *string `json:"leftNearUncorrected"`
	RightNearPinhole         *string `json:"rightNearPinhole"`
	LeftNearPinhole          *string `json:"leftNearPinhole"`
	RightNearCorrected       *string `json:"rightNearCorrected"`
	LeftNearCorrected        *string `json:"leftNearCorrected"`

	// IOP
	RightIop         *string `json:"rightIop"`
	LeftIop          *string `json:"leftIop"`
	RightApplanation *string `json:"rightApplanation"`
	LeftApplanation  *string `json:"leftApplanation"`
	RightTonopen     *string `json:"rightTonopen"`
	LeftTonopen      *string `json:"leftTonopen"`
	RightDigital     *string `json:"rightDigital"`
	LeftDigital      *string `json:"leftDigital"`
	RightNoncontact  *string `json:"rightNoncontact"`
	LeftNoncontact   *string `json:"leftNoncontact"`

	// Auto Refraction
	RightDistanceSph   *string `json:"rightDistanceSph"`
	LeftDistanceSph    *string `json:"leftDistanceSph"`
	RightDistanceAxis  *string `json:"rightDistanceAxis"`
	LeftDistanceAxis   *string `json:"leftDistanceAxis"`
	RightDistanceCyl   *string `json:"rightDistanceCyl"`
	LeftDistanceCyl    *string `json:"leftDistanceCyl"`
	RightNearSph       *string `json:"rightNearSph"`
	LeftNearSph        *string `json:"leftNearSph"`
	RightNearCyl       *string `json:"rightNearCyl"`
	LeftNearCyl        *string `json:"leftNearCyl"`
	RightNearAxis      *string `json:"rightNearAxis"`
	LeftNearAxis       *string `json:"leftNearAxis"`
	RightLensMeterSph  *string `json:"rightLensMeterSph"`
	LeftLensMeterSph   *string `json:"leftLensMeterSph"`
	RightLensMeterAxis *string `json:"rightLensMeterAxis"`
	LeftLensMeterAxis  *string `json:"leftLensMeterAxis"`
	RightLensMeterCyl  *string `json:"rightLensMeterCyl"`
	LeftLensMeterCyl   *string `json:"leftLensMeterCyl"`
}

VitalSigns ...

Source Files

Jump to

Keyboard shortcuts

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