commitd2ec8c0f07Author: mario <dev.mario@sismedika@gmail.com> Date: Thu May 15 15:42:33 2025 +0700 add: db tx commit and rollback implementation commit264435f67eAuthor: mario <dev.mario@sismedika@gmail.com> Date: Thu May 15 14:34:20 2025 +0700 fix: shortlink generation logic update/create commit047ab1937aAuthor: mario <dev.mario@sismedika@gmail.com> Date: Thu May 15 11:06:04 2025 +0700 fix: if multiple studies patient, show first study by default commitc13f834b92Author: mario <dev.mario@sismedika@gmail.com> Date: Thu May 15 09:46:32 2025 +0700 add: register and login with DB query AND some struct type correction commitdd4451c2a8Author: mario <dev.mario@sismedika@gmail.com> Date: Wed May 14 10:23:33 2025 +0700 new file structure & koneksi ke DB commit8289881df3Author: mario <dev.mario@sismedika@gmail.com> Date: Tue May 13 16:49:07 2025 +0700 edit: rm debug route commitdd784da232Author: mario <dev.mario@sismedika@gmail.com> Date: Tue May 13 15:44:11 2025 +0700 add: implement shortlink commit2687a761ccAuthor: mario <dev.mario@sismedika@gmail.com> Date: Tue May 13 11:47:19 2025 +0700 add new dummy doctor user commiteb67eaca46Author: mario <dev.mario@sismedika@gmail.com> Date: Tue May 13 11:46:28 2025 +0700 add: ref_doctor studylist filter commit0d4825d152Author: mario <dev.mario@sismedika@gmail.com> Date: Tue May 13 10:07:16 2025 +0700 edit study_iuids & accNum in patient jwt to array commit2d1f135fdaAuthor: mario <dev.mario@sismedika@gmail.com> Date: Tue May 13 09:52:45 2025 +0700 patient see their multiple studies commit13bb380f51Author: mario <dev.mario@sismedika@gmail.com> Date: Fri May 9 10:13:16 2025 +0700 add: cors handler route and readme commit6c9ab574ceAuthor: mario <dev.mario@sismedika@gmail.com> Date: Mon May 5 11:50:36 2025 +0700 add: login & token validation tapi belum connect ke DB commit297c9a6a01Author: mario <dev.mario@sismedika@gmail.com> Date: Mon Apr 28 15:37:02 2025 +0700 add readme.md commit9b8e0260f3Author: mario <dev.mario@sismedika@gmail.com> Date: Mon Apr 7 15:46:07 2025 +0700 connected-to-google commitf340bc5916Author: mario <dev.mario@sismedika.com> Date: Mon Apr 7 11:14:18 2025 +0700 init
113 lines
3.1 KiB
Go
113 lines
3.1 KiB
Go
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",
|
|
},
|
|
{
|
|
ID: "5",
|
|
Email: "doctor2",
|
|
Role: "ref_doctor",
|
|
Name: "Referring^Physician",
|
|
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"`
|
|
StudyIUIDs []string `json:"study_iuids"`
|
|
AccessionNumbers []string `json:"accession_numbers"`
|
|
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",
|
|
StudyIUIDs: []string{"1.2.826.0.1.3680043.9.7307.1.20180530066", "1.2.826.0.1.3680043.9.7307.1.20180713036"},
|
|
AccessionNumbers: []string{"CR.180530.066", "CR.180713.036"},
|
|
PatientName: "DIDIT SUYATNA^R.10049.18",
|
|
ReferringPhysician: "DR. HERWINDO RIDWAN, SP.OT",
|
|
},
|
|
{
|
|
PatientID: "MR00000359",
|
|
UserID: "4",
|
|
StudyIUIDs: []string{"1.2.826.0.1.3680043.9.7307.1.202503196393.01"},
|
|
AccessionNumbers: []string{"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.StudyIUIDs...)
|
|
}
|
|
}
|
|
return studies
|
|
}
|