2024-11-19 17:29:58 +08:00
# include "datamanager.h"
2024-11-20 15:28:10 +08:00
# include <QDebug>
2024-11-20 16:41:20 +08:00
# include <QCoreApplication>
# include <QFile>
2024-11-21 17:15:39 +08:00
DataManager : : DataManager ( QObject * parent ) : QObject ( parent )
2024-11-19 17:29:58 +08:00
{
2024-11-20 15:28:10 +08:00
init ( ) ;
2024-11-19 17:29:58 +08:00
} ;
DataManager : : ~ DataManager ( )
{
}
DataManager & DataManager : : instance ( )
{
static DataManager dataManager ;
return dataManager ;
}
void DataManager : : init ( )
{
2024-11-20 16:41:20 +08:00
QString sFileName = QCoreApplication : : applicationDirPath ( ) + " /medicalRecode.db " ;
//bool bexist = QFile::exists(sFileName);
//if(bexist)
{
SqlCore : : init ( " QSQLITE " , " user " , " passdwd " , sFileName ) ;
}
2024-11-20 15:28:10 +08:00
initTable ( ) ;
2024-11-19 17:29:58 +08:00
}
void DataManager : : initTable ( )
{
2024-11-20 16:41:20 +08:00
//病例信息
{
/*
病 历 管 理
检 查 号
类 型 : 住 院 或 门 诊
姓 名
性 别 男 女
出 生 日 期
年 龄
左 右 利 Laterality 左 右
检 查 日 期 inspection
其 他 信 息
*/
2024-11-20 15:28:10 +08:00
2024-11-20 16:41:20 +08:00
QMap < QString , QString > map ;
2024-11-20 17:23:22 +08:00
map . insert ( " f_CheckNum " , " TEXT PRIMARY KEY " ) ;
2024-11-25 15:55:16 +08:00
map . insert ( " f_Type " , " TEXT NOT NULL " ) ;
map . insert ( " f_Name " , " TEXT NOT NULL " ) ;
map . insert ( " f_Sex " , " TEXT NOT NULL " ) ;
map . insert ( " f_Birthday " , " TEXT NOT NULL " ) ;
map . insert ( " f_Year " , " TEXT NOT NULL " ) ;
map . insert ( " f_Laterality " , " TEXT NOT NULL " ) ;
map . insert ( " f_InspectDate " , " TEXT NOT NULL " ) ;
map . insert ( " f_Other " , " TEXT NOT NULL " ) ;
2024-11-20 16:41:20 +08:00
SqlGenerate sqlGener ;
QString sql = sqlGener . createTable ( " t_RecodManage " , map ) ;
qDebug ( ) < < sql < < endl ;
m_sqlcore . execute ( sql ) ;
}
//医院信息
{
/*
医 院 名 称
用 户 名 称
科 室
用 户 密 码
用 户 人 数
确 认 密 码
数 据 名 称
*/
QMap < QString , QString > map ;
2024-11-29 13:59:49 +08:00
map . insert ( " f_Id " , " TEXT PRIMARY KEY " ) ;
map . insert ( " f_HostpitalName " , " TEXT " ) ;
2024-11-25 15:55:16 +08:00
map . insert ( " f_UserName " , " TEXT NOT NULL " ) ;
map . insert ( " f_Section " , " TEXT NOT NULL " ) ;
map . insert ( " f_UserPasswd " , " TEXT NOT NULL " ) ;
map . insert ( " f_UserNum " , " TEXT NOT NULL " ) ;
map . insert ( " f_RePasswd " , " TEXT NOT NULL " ) ;
map . insert ( " f_DataName " , " TEXT NOT NULL " ) ;
2024-11-20 15:28:10 +08:00
2024-11-20 16:41:20 +08:00
SqlGenerate sqlGener ;
QString sql = sqlGener . createTable ( " t_Hostpital " , map ) ;
qDebug ( ) < < sql < < endl ;
m_sqlcore . execute ( sql ) ;
}
2024-11-20 15:28:10 +08:00
2024-11-19 17:29:58 +08:00
}
2024-11-20 17:13:38 +08:00
//更新医院信息
bool DataManager : : updateHospitalInfo ( QString sHostpitalName ,
QString UserName ,
QString sSection ,
QString UserPasswd ,
QString UserNum ,
QString RePasswd ,
QString DataName )
{
QMap < QString , QVariant > map ;
2024-11-29 13:59:49 +08:00
map . insert ( " f_Id " , 0 ) ;
2024-11-20 17:13:38 +08:00
map . insert ( " f_HostpitalName " , sHostpitalName ) ;
map . insert ( " f_UserName " , UserName ) ;
map . insert ( " f_Section " , sSection ) ;
map . insert ( " f_UserPasswd " , UserPasswd ) ;
map . insert ( " f_UserNum " , UserNum ) ;
map . insert ( " f_RePasswd " , RePasswd ) ;
map . insert ( " f_DataName " , DataName ) ;
SqlGenerate sqlGener ;
QString sql = sqlGener . insertData ( " t_Hostpital " , map ) ;
qDebug ( ) < < sql < < endl ;
2024-11-21 17:15:39 +08:00
return m_sqlcore . execute ( sql ) ;
2024-11-20 17:13:38 +08:00
}
2024-11-29 13:59:49 +08:00
bool DataManager : : HospitalInfo ( QString & sHostpitalName ,
QString & UserName ,
QString & sSection ,
QString & UserPasswd ,
QString & UserNum ,
QString & RePasswd ,
QString & DataName )
{
QStringList listName ;
listName < < " f_HostpitalName " ;
listName < < " f_UserName " ;
listName < < " f_Section " ;
listName < < " f_UserPasswd " ;
listName < < " f_UserNum " ;
listName < < " f_RePasswd " ;
listName < < " f_DataName " ;
SqlGenerate sqlGener ;
QString sql = sqlGener . selectWhere ( " t_Hostpital " , listName ) ;
bool ret = false ;
auto query ( m_sqlcore . select ( sql ) ) ;
if ( query . isNull ( ) )
{
return ret ;
}
while ( query - > next ( ) )
{
int i = 0 ;
sHostpitalName = query - > value ( i + + ) . toString ( ) ; ;
UserName = query - > value ( i + + ) . toString ( ) ;
sSection = query - > value ( i + + ) . toString ( ) ;
UserPasswd = query - > value ( i + + ) . toString ( ) ;
UserNum = query - > value ( i + + ) . toString ( ) ;
RePasswd = query - > value ( i + + ) . toString ( ) ;
DataName = query - > value ( i + + ) . toString ( ) ;
}
query - > finish ( ) ;
query - > clear ( ) ;
return true ;
}
2024-11-20 17:13:38 +08:00
bool DataManager : : updateMedicRecord (
QString CheckNum ,
QString Type ,
QString _Name ,
QString Sex ,
QString Birthday ,
QString Year ,
QString Laterality ,
2024-11-22 15:59:32 +08:00
QString InspectDate ,
2024-11-20 17:13:38 +08:00
QString Other )
{
QMap < QString , QVariant > map ;
map . insert ( " f_CheckNum " , CheckNum ) ;
map . insert ( " f_Type " , Type ) ;
map . insert ( " f_Name " , _Name ) ;
map . insert ( " f_Sex " , Sex ) ;
map . insert ( " f_Birthday " , Birthday ) ;
map . insert ( " f_Year " , Year ) ;
map . insert ( " f_Laterality " , Laterality ) ;
2024-11-22 15:59:32 +08:00
map . insert ( " f_InspectDate " , InspectDate ) ;
2024-11-20 17:13:38 +08:00
map . insert ( " f_Other " , Other ) ;
SqlGenerate sqlGener ;
2024-11-22 15:59:32 +08:00
QString sql = sqlGener . insertData ( " t_RecodManage " , map ) ;
2024-11-20 17:13:38 +08:00
qDebug ( ) < < sql < < endl ;
2024-11-21 17:15:39 +08:00
return m_sqlcore . execute ( sql ) ;
}
int DataManager : : getMedicRecordCount ( QString sName )
{
int ret = - 1 ;
2024-11-22 15:59:32 +08:00
QString querySql = QString ( " select count(*) from t_RecodManage where f_Name LIKE '% " ) + sName + " %'; " ;
2024-11-21 17:15:39 +08:00
//qDebug() << "querySql = " << querySql << endl;
auto query ( m_sqlcore . select ( querySql ) ) ;
if ( ! query . isNull ( ) )
{
if ( query - > first ( ) )
{
2024-11-22 17:20:33 +08:00
ret = query - > value ( 0 ) . toInt ( ) ;
2024-11-21 17:15:39 +08:00
}
query - > finish ( ) ;
query - > clear ( ) ;
}
return ret ;
2024-11-20 17:13:38 +08:00
}
2024-11-21 17:15:39 +08:00
uint DataManager : : getMedicRecordList ( const QString & fileName ,
QList < MedicRecord > & filesInfo ,
int & curPage ,
int perPageCnt )
{
uint ret = 0 ;
filesInfo . clear ( ) ;
QString tmpFileName = fileName ;
2024-11-22 17:20:33 +08:00
QString querySql = QString ( " SELECT f_CheckNum,f_Type,f_Name, f_Sex,f_Birthday,f_Year,f_Laterality,f_InspectDate,f_Other from t_RecodManage where f_Name LIKE '% " ) + tmpFileName + " %' " ;
2024-11-21 17:15:39 +08:00
querySql + = QString ( " LIMIT %1 offset %2; " ) . arg ( perPageCnt )
. arg ( curPage * perPageCnt ) ;
auto query ( m_sqlcore . select ( querySql ) ) ;
if ( query . isNull ( ) )
{
2024-11-20 17:13:38 +08:00
2024-11-21 17:15:39 +08:00
return 0 ;
}
while ( query - > next ( ) )
{
MedicRecord info ;
info . m_CheckNum = query - > value ( 0 ) . toString ( ) ;
info . m_Type = query - > value ( 1 ) . toString ( ) ;
info . m_Name = query - > value ( 2 ) . toString ( ) ;
info . m_Sex = query - > value ( 3 ) . toString ( ) ;
info . m_Birthday = query - > value ( 4 ) . toString ( ) ;
info . m_Year = query - > value ( 5 ) . toString ( ) ;
info . m_Laterality = query - > value ( 6 ) . toString ( ) ;
2024-11-22 17:20:33 +08:00
info . m_InspectDate = query - > value ( 7 ) . toString ( ) ;
info . m_Other = query - > value ( 8 ) . toString ( ) ;
2024-11-21 17:15:39 +08:00
filesInfo . append ( info ) ;
+ + ret ;
}
if ( ret > 0 )
{
+ + curPage ;
}
query - > finish ( ) ;
query - > clear ( ) ;
return ret ;
}
2024-11-25 15:55:16 +08:00
bool DataManager : : deleteNumRecode ( QString checkNum )
{
SqlGenerate sqlGener ;
QString sql = QString ( " delete from %1 where %2 " ) . arg ( " t_RecodManage " ) . arg ( " f_CheckNum = ' " + checkNum + " '; " ) ;
return m_sqlcore . execute ( sql ) ;
}