Record* RecordFactory::createRecord(QString serializedRecord){ QStringList temp = serializedRecord.split(Record::RECORD_DELIMITER); int recordType = temp.at(0).toInt(); temp.pop_front(); switch (recordType){ case RECORD_TYPES::CONSULTATION: return createConsultation(temp); break; case RECORD_TYPES::PATIENT: return createPatient(temp); break; case RECORD_TYPES::FOLLOW_UP: return createFollowUp(temp); break; case RECORD_TYPES::ASSISTANT: return createAssistant(temp); break; case RECORD_TYPES::PHYSICIAN: return createPhysician(temp); break; case RECORD_TYPES::ADMINISTRATOR: return createSysAdmin(temp); break; } return NULL; }
int entry_MD(MD m, char * reader){ char name[50]; patient p; if(sscanf(reader,"%*s %[^\n]",name) != 1) return 0; p = createPatient(name); if(p == NULL) return 0; insertPatientMD(m,p); return 1; }
void PatientManager::readDatabase() { QList<Patient> patients = DatabaseAccess().db()->findPatients(); emit progressStarted(patients.size()); QHash<int, int> oldIds = d->patientIdHash; QList<Patient::Ptr> newPatientList; foreach (Patient data, patients) { int index = d->patientIdHash.value(data.id, -1); oldIds.remove(data.id); if (index == -1) { Patient::Ptr p = createPatient(data); loadData(p); emit patientAdded(d->patients.size()-1, p); } else { loadData(d->patients[index]); } emit progressValue(d->patients.size()); }