⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queryname.cpp

📁 CT工作站具有打印报告、病历管理、图像处理专家词库等功能
💻 CPP
字号:
// QueryName.cpp : implementation file
// 

#include "stdafx.h"
#include "bxt.h"
#include "QueryName.h"
#include "bxtDlg.h"
#include "Query.h"
#include "queryorder.h"
#include "RecordFile.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// QueryName dialog


QueryName::QueryName(CWnd* pParent /*=NULL*/)
	: CDialog(QueryName::IDD, pParent)
{
	//{{AFX_DATA_INIT(QueryName)
	m_name				= _T("");
	m_sex				= _T("");
	m_age1				= _T("");
	m_age2				= _T("");
	m_age3				= _T("");
	m_class				= _T("");
	m_id				= _T("");
	m_hospid			= _T("");
	m_illname			= _T("");
	m_checkpos			= _T("");
	m_check				= _T("");
	m_iQueryWay			= -1;
	//}}AFX_DATA_INIT
	m_pCfg				= ((CBxtApp *)(AfxGetApp()))->GetConfig();
	m_iQueryWay			= (m_pCfg->iUiType == UI_TYPE_SIMPLE) ? (1) : (0);
}

void
QueryName::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(QueryName)
	DDX_Text(pDX, IDC_EDIT1, m_name);
	DDX_Text(pDX, IDC_EDIT2, m_sex);
	DDX_Text(pDX, IDC_EDIT3, m_age1);
	DDX_Text(pDX, IDC_EDIT4, m_age2);
	DDX_Text(pDX, IDC_EDIT5, m_age3);
	DDX_Text(pDX, IDC_EDIT6, m_class);
	DDX_Text(pDX, IDC_EDIT7, m_id);
	DDX_Text(pDX, IDC_EDIT8, m_hospid);
	DDX_Text(pDX, IDC_EDIT9, m_illname);
	DDX_Text(pDX, IDC_EDIT10, m_checkpos);
	DDX_Text(pDX, IDC_EDIT11, m_check);
	DDX_Radio(pDX, IDC_RADIO_QUERY_CD, m_iQueryWay);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(QueryName, CDialog)
	//{{AFX_MSG_MAP(QueryName)
	ON_BN_CLICKED(IDC_BUTTON_QUERY, OnButtonQuery)
	//}}AFX_MSG_MAP
	ON_MESSAGE(WX_SETRESTRICT,		UmSetRestrict)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// QueryName message handlers

BOOL
QueryName::OnInitDialog() 
{
	CDialog::OnInitDialog();

	m_btnQuery.SubclassDlgItem(IDC_BUTTON_QUERY, this);
	m_btnQuery.SetIcon(IDI_ICON_QUERY, 96, 32);
	m_btnQuery.SetMouseOnColor(RGB(255, 0, 255));
	m_btnQuery.SetPressColor(RGB(0, 0, 255));
	m_btnQuery.SetWindowText("");

	if	(m_pCfg->iUiType == UI_TYPE_SIMPLE)
	{
		GetDlgItem(IDC_STATIC_FRAME)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_RADIO_QUERY_CD)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_RADIO_QUERY_DATABASE)->ShowWindow(SW_HIDE);
	}
	
	return	(TRUE);
}

void
QueryName::OnButtonQuery()
{
	UpdateData(TRUE);

	if	(m_pCfg->iUiType == UI_TYPE_SIMPLE || m_iQueryWay == 0)
	{
		SimpleQuery();
	}
	else
	{
		NormalQuery();
	}
}

BOOL
QueryName::MakeWhere()
{
	CString	sDateWhere	= ((CBxtDlg *)AfxGetMainWnd())->querytime->MakeDataSQL();
	CString	sWhere;
	INT		age1;
	INT		age2;
	INT		age3;
	INT		baselen;
	CHAR	buf[10];

//	->	Make Where
	sWhere	+=	"WHERE ";

	baselen	= sWhere.GetLength();
	if (!sDateWhere.IsEmpty())
	{
		sWhere += sDateWhere;
		sWhere += " AND ";
	}

	UpdateData(TRUE);

	// 年龄大于
	if	(!m_age1.IsEmpty())
	{
		age1	= atoi(m_age1);
		m_age1	= itoa(age1,buf,10);
		sWhere	+= " AGE>";
		sWhere	+= m_age1;
		sWhere	+= " AND ";
	}

	// 年龄等于
	if	(!m_age2.IsEmpty())
	{
		age2	= atoi(m_age2);
		m_age2	= itoa(age2,buf,10);
		sWhere	+= " AGE=";
		sWhere	+= m_age2;
		sWhere	+= " AND ";
	}

	// 年龄小于
	if	(!m_age3.IsEmpty())
	{
		age3	= atoi(m_age3);
		m_age3	= itoa(age3,buf,10);
		sWhere	+= " AGE<";
		sWhere	+= m_age3;
		sWhere	+= " AND ";
	}

	// 临床诊断
	if	(!m_check.IsEmpty())
	{
		sWhere	+= " CHECK='";
		sWhere	+= m_check;
		sWhere	+= "' AND ";
	}
	
	// 检查部位
	if	(!m_checkpos.IsEmpty())
	{
		sWhere	+= " CHECKPOS='";
		sWhere	+= m_checkpos;
		sWhere	+= "' AND ";
	}

	// 科别
	if	(!m_class.IsEmpty())
	{
		sWhere	+= " CLASS='";
		sWhere	+= m_class;
		sWhere	+= "' AND ";
	}
	
	// 住院号
	if	(!m_hospid.IsEmpty())
	{
		sWhere	+= " HOSPID='";
		sWhere	+= m_hospid;
		sWhere	+= "' AND ";
	}

	// CT编号
	if	(!m_id.IsEmpty())
	{
		sWhere	+= " ID='";
		sWhere	+= m_id;
		sWhere	+= "' AND ";
	}

	// 病名
	if	(!m_illname.IsEmpty())
	{
		sWhere	+= " ILLNAME='";
		sWhere	+= m_illname;
		sWhere	+= "' AND ";
	}

	// 姓名
	if	(!m_name.IsEmpty())
	{
		sWhere	+= " NAME='";
		sWhere	+= m_name;
		sWhere	+= "' AND ";
	}

	// 性别
	if	(!m_sex.IsEmpty())
	{
		sWhere	+= " SEX='";
		sWhere	+= m_sex;
		sWhere	+= "'";
		sWhere	+= " AND ";
	}
//	<-	Make Where

	UpdateData(FALSE);

	if	(sWhere.GetLength() == baselen)
		sWhere	= sWhere.Left(sWhere.GetLength() - 6);	// Get Rid Of "WHERE "
	else
		sWhere	= sWhere.Left(sWhere.GetLength() - 4);	// Get Rid Of "AND ";

	m_sWhere	= sWhere;
	return	(TRUE);
}

BOOL
QueryName::MakeOrder()
{
	CString		sOrder;

	sOrder		= (((CBxtDlg *)AfxGetMainWnd())->queryorder)->MakeSortSQL();
	if	(!sOrder.IsEmpty())
		sOrder	= "ORDER BY " + sOrder;
	m_sOrder	= sOrder;

	return	(TRUE);
}

BOOL
QueryName::SimpleQuery()
{
	CWnd	*pWnd	= ((CBxtDlg *)AfxGetMainWnd())->query;

	pWnd->SendMessage(WX_QUERY, (WPARAM)(FALSE), (LPARAM)(this));
	return	(FALSE);
}

BOOL
QueryName::NormalQuery()
{
	CWnd	*pWnd	= ((CBxtDlg *)AfxGetMainWnd())->query;

	MakeWhere();
	MakeOrder();
	pWnd->SendMessage(WX_SETORDER, 0, (LPARAM)(m_sOrder.GetBuffer(m_sOrder.GetLength())));
	pWnd->SendMessage(WX_SETWHERE, 0, (LPARAM)(m_sWhere.GetBuffer(m_sWhere.GetLength())));
	pWnd->SendMessage(WX_QUERY, (WPARAM)(TRUE), 0);
	
	return	(TRUE);
}

BOOL
QueryName::UmSetRestrict(WPARAM wParam, LPARAM lParam)
{
	CRecordFile*	pRf	= (CRecordFile *)(lParam);
	CHAR			buf[10];

	UpdateData(TRUE);

	pRf->ResetRestrict();

	if	(!m_name.IsEmpty())
	{
		pRf->m_Restrict.m_bResName		= TRUE;
		strcpy(pRf->m_Restrict.m_Record.m_sName, TO_CHAR(m_name));
	}

	if	(!m_sex.IsEmpty())
	{
		pRf->m_Restrict.m_bResSex		= TRUE;
		strcpy(pRf->m_Restrict.m_Record.m_sSex, TO_CHAR(m_sex));
	}

	if	(!m_age1.IsEmpty())
	{
		pRf->m_Restrict.m_bResAgeMin	= TRUE;
		pRf->m_Restrict.m_iAgeMin		= atoi(m_age1);
		m_age1	= itoa(pRf->m_Restrict.m_iAgeMin, buf, 10);
	}
		
	if	(!m_age2.IsEmpty())
	{
		pRf->m_Restrict.m_bResAgeEqu	= TRUE;
		pRf->m_Restrict.m_Record.m_iAge	= atoi(m_age2);
		m_age2	= itoa(pRf->m_Restrict.m_Record.m_iAge, buf, 10);
	}
		
	if	(!m_age3.IsEmpty())
	{
		pRf->m_Restrict.m_bResAgeMax	= TRUE;
		pRf->m_Restrict.m_iAgeMax		= atoi(m_age3);
		m_age3	= itoa(pRf->m_Restrict.m_iAgeMax, buf, 10);
	}
		
	if	(!m_class.IsEmpty())
	{
		pRf->m_Restrict.m_bResClass		= TRUE;
		strcpy(pRf->m_Restrict.m_Record.m_sClass, TO_CHAR(m_class));
	}

	if	(!m_id.IsEmpty())
	{
		pRf->m_Restrict.m_bResID		= TRUE;
		strcpy(pRf->m_Restrict.m_Record.m_sID, TO_CHAR(m_id));
	}

	if	(!m_hospid.IsEmpty())
	{
		pRf->m_Restrict.m_bResHospID	= TRUE;
		strcpy(pRf->m_Restrict.m_Record.m_sHospID, TO_CHAR(m_hospid));
	}

	if	(!m_illname.IsEmpty())
	{
		pRf->m_Restrict.m_bResIllName	= TRUE;
		strcpy(pRf->m_Restrict.m_Record.m_sIllName, TO_CHAR(m_illname));
	}

	if	(!m_checkpos.IsEmpty())
	{
		pRf->m_Restrict.m_bResCheckPos	= TRUE;
		strcpy(pRf->m_Restrict.m_Record.m_sCheckPos, TO_CHAR(m_checkpos));
	}

	if	(!m_check.IsEmpty())
	{
		pRf->m_Restrict.m_bResCheck		= TRUE;
		strcpy(pRf->m_Restrict.m_Record.m_sCheck, TO_CHAR(m_check));
	}

	UpdateData(FALSE);

	return	(TRUE);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -