//---------------------------------------------------------------------------
//注意：ReportApprove由用户界面操作触发执行!
//---------------------------------------------------------------------------
// String _opacsconnection; 	约定的输入变量名
// String _modalitytype; 		约定的输入变量名
// String _rightsitem;			约定的输入变量名
// String _message; 			约定的输出变量名
// int _rights; 				约定的输出变量名
// TADOQuery _qryStudy; 		外部已定义的对象
// TADOQuery _qryImage; 		外部已定义的对象
// TADOQuery _qryReport; 		外部已定义的对象
// TADOQuery _qryCustom; 		外部已定义的对象

//---------------------------------------------------------------------------
String _message = "";
int _rights = -1;

//---------------------------------------------------------------------------
bool IsReportOwner(int iStudyKey)
{
	String sCurrDoctor = GetConfigStr("SysLogon", "sLastDoctorName");
	String sApprover = _qryStudy.FieldByName("report_approver").AsString;
	String sDiagnostician = _qryStudy.FieldByName("report_diagnostician").AsString;
	////
	if (IsValidationOwner(iStudyKey)) // 复片医生
		return true;
		
	// 当存在审核医生时，以审核医生为负责人；否则以诊断医生为负责人
	if (sApprover != "")
	{
		if (sApprover == sCurrDoctor)
			return true;
	}
	else
	{
		if (sDiagnostician == sCurrDoctor)
			return true;
	}
		
	return false;
}

//---------------------------------------------------------------------------
int GetRights()
{
    int iStudyKey = _qryStudy.FieldByName("study_key").AsInteger;
    if (iStudyKey <= 0)
    {
		_message = "记录不存在！";
        return -1;
	}

	int iReportState = _qryStudy.FieldByName("report_state").AsInteger;
    if (iReportState > 2) // 已复核
    {
		_message = "报告已复核，不能审核！";
    	return -1;
    }

    if (IsReportOwner(iStudyKey))
    {
		_message = "这不是您的报告，不能审核！";
    	return 1;
    }

	return -1;
}

//---------------------------------------------------------------------------
// 主程序
//---------------------------------------------------------------------------
{
    _rights = GetRights();
}

//---------------------------------------------------------------------------