You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
219 lines
6.7 KiB
219 lines
6.7 KiB
<?php |
|
|
|
/** |
|
* PatientReporter.php |
|
* |
|
* @package OpenEMR |
|
* @link https://www.open-emr.org |
|
* @author Jerry Padgett <sjpadgett@gmail.com> |
|
* @copyright Copyright (c) 2016-2017 Jerry Padgett <sjpadgett@gmail.com> |
|
* @license https://github.com/openemr/openemr/blob/master/LICENSE GNU General Public License 3 |
|
*/ |
|
|
|
/** import supporting libraries */ |
|
require_once("verysimple/Phreeze/Reporter.php"); |
|
|
|
/** |
|
* This is an example Reporter based on the Patient object. The reporter object |
|
* allows you to run arbitrary queries that return data which may or may not fith within |
|
* the data access API. This can include aggregate data or subsets of data. |
|
* |
|
* Note that Reporters are read-only and cannot be used for saving data. |
|
* |
|
* @package Openemr::Model::DAO |
|
* @author ClassBuilder |
|
* @version 1.0 |
|
*/ |
|
class PatientReporter extends Reporter |
|
{ |
|
// the properties in this class must match the columns returned by GetCustomQuery(). |
|
public $Id; |
|
public $Title; |
|
public $Language; |
|
public $Financial; |
|
public $Fname; |
|
public $Lname; |
|
public $Mname; |
|
public $Dob; |
|
public $Street; |
|
public $PostalCode; |
|
public $City; |
|
public $State; |
|
public $CountryCode; |
|
public $DriversLicense; |
|
public $Ss; |
|
public $Occupation; |
|
public $PhoneHome; |
|
public $PhoneBiz; |
|
public $PhoneContact; |
|
public $PhoneCell; |
|
public $PharmacyId; |
|
public $Status; |
|
public $ContactRelationship; |
|
public $Date; |
|
public $Sex; |
|
public $Referrer; |
|
public $Referrerid; |
|
public $Providerid; |
|
public $RefProviderid; |
|
public $Email; |
|
public $EmailDirect; |
|
public $Ethnoracial; |
|
public $Race; |
|
public $Ethnicity; |
|
public $Religion; |
|
public $Interpretter; |
|
public $Migrantseasonal; |
|
public $FamilySize; |
|
public $MonthlyIncome; |
|
public $BillingNote; |
|
public $Homeless; |
|
public $FinancialReview; |
|
public $Pubpid; |
|
public $Pid; |
|
public $Genericname1; |
|
public $Genericval1; |
|
public $Genericname2; |
|
public $Genericval2; |
|
public $HipaaMail; |
|
public $HipaaVoice; |
|
public $HipaaNotice; |
|
public $HipaaMessage; |
|
public $HipaaAllowsms; |
|
public $HipaaAllowemail; |
|
public $Squad; |
|
public $Fitness; |
|
public $ReferralSource; |
|
public $Usertext1; |
|
public $Usertext2; |
|
public $Usertext3; |
|
public $Usertext4; |
|
public $Usertext5; |
|
public $Usertext6; |
|
public $Usertext7; |
|
public $Usertext8; |
|
public $Userlist1; |
|
public $Userlist2; |
|
public $Userlist3; |
|
public $Userlist4; |
|
public $Userlist5; |
|
public $Userlist6; |
|
public $Userlist7; |
|
public $Pricelevel; |
|
public $Regdate; |
|
public $Contrastart; |
|
public $CompletedAd; |
|
public $AdReviewed; |
|
public $Vfc; |
|
public $Mothersname; |
|
public $Guardiansname; |
|
public $AllowImmRegUse; |
|
public $AllowImmInfoShare; |
|
public $AllowHealthInfoEx; |
|
public $AllowPatientPortal; |
|
public $DeceasedDate; |
|
public $DeceasedReason; |
|
public $SoapImportStatus; |
|
public $CmsportalLogin; |
|
public $CareTeam; |
|
public $County; |
|
public $Industry; |
|
|
|
/* |
|
* GetCustomQuery returns a fully formed SQL statement. The result columns |
|
* must match with the properties of this reporter object. |
|
* |
|
* @see Reporter::GetCustomQuery |
|
* @param Criteria $criteria |
|
* @return string SQL statement |
|
*/ |
|
static function GetCustomQuery($criteria) |
|
{ |
|
$sql = "select |
|
`patient_data`.`id` as Id |
|
,`patient_data`.`title` as Title |
|
,`patient_data`.`language` as Language |
|
,`patient_data`.`financial` as Financial |
|
,`patient_data`.`fname` as Fname |
|
,`patient_data`.`lname` as Lname |
|
,`patient_data`.`mname` as Mname |
|
,`patient_data`.`DOB` as Dob |
|
,`patient_data`.`street` as Street |
|
,`patient_data`.`postal_code` as PostalCode |
|
,`patient_data`.`city` as City |
|
,`patient_data`.`state` as State |
|
,`patient_data`.`country_code` as CountryCode |
|
,`patient_data`.`drivers_license` as DriversLicense |
|
,`patient_data`.`ss` as Ss |
|
,`patient_data`.`occupation` as Occupation |
|
,`patient_data`.`phone_home` as PhoneHome |
|
,`patient_data`.`phone_biz` as PhoneBiz |
|
,`patient_data`.`phone_contact` as PhoneContact |
|
,`patient_data`.`phone_cell` as PhoneCell |
|
,`patient_data`.`pharmacy_id` as PharmacyId |
|
,`patient_data`.`status` as Status |
|
,`patient_data`.`contact_relationship` as ContactRelationship |
|
,`patient_data`.`date` as Date |
|
,`patient_data`.`sex` as Sex |
|
,`patient_data`.`referrer` as Referrer |
|
,`patient_data`.`referrerID` as Referrerid |
|
,`patient_data`.`providerID` as Providerid |
|
,`patient_data`.`ref_providerID` as RefProviderid |
|
,`patient_data`.`email` as Email |
|
,`patient_data`.`email_direct` as EmailDirect |
|
,`patient_data`.`ethnoracial` as Ethnoracial |
|
,`patient_data`.`race` as Race |
|
,`patient_data`.`ethnicity` as Ethnicity |
|
,`patient_data`.`religion` as Religion |
|
,`patient_data`.`family_size` as FamilySize |
|
,`patient_data`.`pubpid` as Pubpid |
|
,`patient_data`.`pid` as Pid |
|
,`patient_data`.`hipaa_mail` as HipaaMail |
|
,`patient_data`.`hipaa_voice` as HipaaVoice |
|
,`patient_data`.`hipaa_notice` as HipaaNotice |
|
,`patient_data`.`hipaa_message` as HipaaMessage |
|
,`patient_data`.`hipaa_allowsms` as HipaaAllowsms |
|
,`patient_data`.`hipaa_allowemail` as HipaaAllowemail |
|
,`patient_data`.`regdate` as Regdate |
|
,`patient_data`.`mothersname` as Mothersname |
|
,`patient_data`.`guardiansname` as Guardiansname |
|
,`patient_data`.`allow_imm_reg_use` as AllowImmRegUse |
|
,`patient_data`.`allow_imm_info_share` as AllowImmInfoShare |
|
,`patient_data`.`allow_health_info_ex` as AllowHealthInfoEx |
|
,`patient_data`.`allow_patient_portal` as AllowPatientPortal |
|
,`patient_data`.`care_team_provider` as CareTeam |
|
,`patient_data`.`county` as County |
|
from `patient_data`"; |
|
|
|
// the criteria can be used or you can write your own custom logic. |
|
// be sure to escape any user input with $criteria->Escape() |
|
$sql .= $criteria->GetWhere(); |
|
$sql .= $criteria->GetOrder(); |
|
|
|
if ($criteria->Pid_Equals == 0) { |
|
$sql = "DESCRIBE patient_data"; |
|
} |
|
|
|
return $sql; |
|
} |
|
|
|
/* |
|
* GetCustomCountQuery returns a fully formed SQL statement that will count |
|
* the results. This query must return the correct number of results that |
|
* GetCustomQuery would, given the same criteria |
|
* |
|
* @see Reporter::GetCustomCountQuery |
|
* @param Criteria $criteria |
|
* @return string SQL statement |
|
*/ |
|
static function GetCustomCountQuery($criteria) |
|
{ |
|
$sql = "select count(1) as counter from `patient_data`"; |
|
|
|
// the criteria can be used or you can write your own custom logic. |
|
// be sure to escape any user input with $criteria->Escape() |
|
$sql .= $criteria->GetWhere(); |
|
|
|
return $sql; |
|
} |
|
}
|
|
|