package models // MockUsers represents a mock database of users var MockUsers = []User{ { ID: "1", Email: "admin", Role: "expertise_doctor", Name: "Admin User", CreatedAt: "2025-01-01T00:00:00Z", UpdatedAt: "2025-01-01T00:00:00Z", }, { ID: "2", Email: "patient", Role: "patient", Name: "Patient User", CreatedAt: "2025-01-01T00:00:00Z", UpdatedAt: "2025-01-01T00:00:00Z", }, { ID: "3", Email: "doctor", Role: "ref_doctor", Name: "DR. HERWINDO RIDWAN, SP.OT", CreatedAt: "2025-01-01T00:00:00Z", UpdatedAt: "2025-01-01T00:00:00Z", }, { ID: "4", Email: "patient2", Role: "patient", Name: "Patient Two", CreatedAt: "2025-01-01T00:00:00Z", UpdatedAt: "2025-01-01T00:00:00Z", }, } // PatientData represents additional data for patients type PatientData struct { PatientID string `json:"patient_id"` UserID string `json:"user_id"` StudyIUID string `json:"study_iuid"` AccessionNumber string `json:"accession_number"` PatientName string `json:"patient_name"` ReferringPhysician string `json:"referring_physician"` } // MockPatients represents a mock database of patient data var MockPatients = []PatientData{ { PatientID: "00211622", UserID: "2", StudyIUID: "1.2.826.0.1.3680043.9.7307.1.20180713036", AccessionNumber: "CR.180713.036", PatientName: "DIDIT SUYATNA^R.10049.18", ReferringPhysician: "DR. HERWINDO RIDWAN, SP.OT", }, { PatientID: "MR00000359", UserID: "4", StudyIUID: "1.2.826.0.1.3680043.9.7307.1.202503196393.01", AccessionNumber: "CR.250319.6393.01", PatientName: "Bobon Santoso", ReferringPhysician: "DR. HERWINDO RIDWAN, SP.OT", }, } // FindUserByCredentials finds a user by email and password (mock authentication) func FindUserByCredentials(email, password string) *User { // In a real implementation, you would hash passwords // For the mock, we'll just match email and assume password is the same as email if password != email { return nil } for _, user := range MockUsers { if user.Email == email { return &user } } return nil } // FindPatientDataByUserID finds patient data by user ID func FindPatientDataByUserID(userID string) *PatientData { for _, patient := range MockPatients { if patient.UserID == userID { return &patient } } return nil } // FindStudiesByReferringPhysician returns all study IUIDs that belong to a referring physician func FindStudiesByReferringPhysician(physicianName string) []string { var studies []string for _, patient := range MockPatients { if patient.ReferringPhysician == physicianName { studies = append(studies, patient.StudyIUID) } } return studies }