function __construct() { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- parent::__construct(); $this->sqlWhereExtra = ''; }
function patientVisit() { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- $bFormPassed = true; $CI =& get_instance(); $cSchema = new muser_schema(); $cSchema->loadUFSchemaViaAttachTypeUserTabName(CENUM_CONTEXT_VOLUNTEER, 'Patient Visit', $lTableID, true); $cSchema->loadDDLValues($lTableID); $bPassed = pvVerifyPersonServed($CI, $cSchema, $lTableID); $bFormPassed = $bFormPassed && $bPassed; $bPassed = pvVerifyLocation($CI, $cSchema, $lTableID); $bFormPassed = $bFormPassed && $bPassed; $bPassed = pvVerifyActivity($CI, $cSchema, $lTableID); $bFormPassed = $bFormPassed && $bPassed; $bPassed = pvVerifyInterventions($CI, $cSchema, $lTableID); $bFormPassed = $bFormPassed && $bPassed; return $bFormPassed; }
function cloneAttendance($cloneOpts) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- global $glUserID; $cschema = new muser_schema(); $cschema->loadUFSchemaSingleTable($cloneOpts->lATableID); $atable =& $cschema->schema[$cloneOpts->lATableID]; // build the personalized field list $strUFields = ''; $lNumMulti = 0; $multi = array(); if ($atable->lNumFields > 0) { foreach ($atable->fields as $afield) { if ($afield->enumFieldType != CS_FT_HEADING) { $strUFields .= ', ' . $afield->strFieldNameInternal . "\n"; } if ($afield->enumFieldType == CS_FT_DDLMULTI) { $multi[$lNumMulti] = new stdClass(); $mddl =& $multi[$lNumMulti]; $mddl->lFieldID = $afield->lFieldID; ++$lNumMulti; } } } $strFP = $atable->strFieldPrefix; $sqlBase = "INSERT INTO {$atable->strDataTableName}\n (\n {$strFP}" . "_bRetired,\n {$strFP}" . "_lOriginID,\n {$strFP}" . "_dteOrigin,\n {$strFP}" . "_lLastUpdateID,\n {$strFP}" . "_dteLastUpdate,\n {$strFP}" . "_dteAttendance,\n {$strFP}" . "_dDuration,\n {$strFP}" . "_strCaseNotes\n {$strUFields},\n {$strFP}" . "_lEnrollID,\n {$strFP}" . "_lForeignKey\n )\n\n SELECT\n '0' AS bRetired,\n {$glUserID} AS lOriginID,\n NOW() AS dteOrigin,\n {$glUserID} AS lLastUpdateID,\n NOW() AS dteLastUpdate,\n '{$cloneOpts->mdteAttendance}' AS dteAttendance,\n {$strFP}" . "_dDuration,\n {$strFP}" . "_strCaseNotes\n {$strUFields}, "; $arecIDs = array(); foreach ($cloneOpts->clients as $IDs) { if (!$cloneOpts->bSkipDups || !$this->bClientAsAttendanceOnDate($IDs->lClientID, $cloneOpts->mdteAttendance, $atable->strFieldPrefix, $atable->strDataTableName, $atable->strDataTableFID)) { $sqlStr = $sqlBase . "{$IDs->lEnrollID} AS lEnrollID,\n {$IDs->lClientID} AS lForeignKey\n FROM {$atable->strDataTableName}\n WHERE {$atable->strDataTableKeyID}={$cloneOpts->lARecID};"; $query = $this->db->query($sqlStr); $arecIDs[] = $this->db->insert_id(); } } // clone multi-entry ddls if ($lNumMulti > 0 && count($arecIDs) > 0) { // load the multi values foreach ($multi as $mddl) { $mddl->selectValues = $this->loadMultiViaARec($mddl->lFieldID, $cloneOpts->lATableID, $cloneOpts->lARecID); if (count($mddl->selectValues) > 0) { foreach ($arecIDs as $aID) { $this->cloneARecMDDL($mddl->selectValues, $aID, $mddl->lFieldID, $cloneOpts->lATableID); } } } } }
function strPrePostReport($sRpt) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- $ufSchema = new muser_schema(); $ufSchema->loadUFSchema(); if (CB_AAYHF) { $ufSchema->tableInfoViaUserTableName('Demographics', $demoTableInfo); $lDTableID = $demoTableInfo->lTableID; $ufSchema->fieldInfoViaUserFieldName($lDTableID, 'Race', $demoTableInfo->fiRace); $ufSchema->fieldInfoViaUserFieldName($lDTableID, 'Ethnicity', $demoTableInfo->fiEthnicity); $ufSchema->fieldInfoViaUserFieldName($lDTableID, 'Age Range', $demoTableInfo->fiAgeRange); $ufSchema->fieldInfoViaUserFieldName($lDTableID, 'Current Grade Level', $demoTableInfo->fiGradeLevel); } else { $demoTableInfo = null; } $cClientSearch = new mclient_search(); $strOut = ''; $lPPTestID = $sRpt->lPPTestID; $strBetween = $sRpt->strBetween; // load test and questions $this->loadPPTestsViaPPTID($lPPTestID); $pptest =& $this->pptests[0]; $this->loadQuestionsViaPPTID($lPPTestID); $strOut .= $this->strPrePostRptHeader($sRpt, $demoTableInfo); // individual questions $strTmpTableName = 'tmp_scores'; $strTmpClientPopTableName = 'tmp_client_pop'; $this->buildScoringTempTable($strTmpTableName); $this->populateScoringTempTable($strTmpTableName, $lPPTestID, $strBetween); // all clients for this test and testing window $cClientSearch->createClientPopulationTempTable($strTmpClientPopTableName); $strInner = "INNER JOIN {$strTmpTableName} ON cr_lKeyID = tmp_lClientID "; $strWhere = ''; $cClientSearch->populateClientPopulationTable($strTmpClientPopTableName, $strWhere, $strInner); $this->generatePerQuestionScores($strTmpTableName, $strTmpClientPopTableName); $strOut .= $this->strQResultsDetail('Test Results, By Question'); return $strOut; }