本文整理汇总了PHP中Patient::getPatientAgeByDOB方法的典型用法代码示例。如果您正苦于以下问题:PHP Patient::getPatientAgeByDOB方法的具体用法?PHP Patient::getPatientAgeByDOB怎么用?PHP Patient::getPatientAgeByDOB使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Patient
的用法示例。
在下文中一共展示了Patient::getPatientAgeByDOB方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: checkAge
public function checkAge($pid, $immu_id)
{
$DOB = $this->patient->getPatientDOBByPid($pid);
$age = $this->patient->getPatientAgeByDOB($DOB);
$range = $this->getPreventiveCareAgeRangeById($immu_id);
if ($age['DMY']['years'] >= $range['age_start'] && $age['DMY']['years'] <= $range['age_end']) {
return true;
} else {
return false;
}
}
示例2: get_PatientTokensData
public function get_PatientTokensData($pid, $allNeededInfo, $tokens)
{
$patientData = $this->getAllPatientData($pid);
$age = $this->patient->getPatientAgeByDOB($patientData['DOB']);
$patienInformation = array('[PATIENT_NAME]' => $patientData['fname'], '[PATIENT_ID]' => $pid, '[PATIENT_FULL_NAME]' => $this->patient->getPatientFullNameByPid($patientData['pid']), '[PATIENT_LAST_NAME]' => $patientData['lname'], '[PATIENT_SEX]' => $patientData['sex'], '[PATIENT_BIRTHDATE]' => $patientData['DOB'], '[PATIENT_MARITAL_STATUS]' => $patientData['marital_status'], '[PATIENT_SOCIAL_SECURITY]' => $patientData['SS'], '[PATIENT_EXTERNAL_ID]' => $patientData['pubpid'], '[PATIENT_DRIVERS_LICENSE]' => $patientData['drivers_license'], '[PATIENT_ADDRESS]' => $patientData['address'], '[PATIENT_CITY]' => $patientData['city'], '[PATIENT_STATE]' => $patientData['state'], '[PATIENT_COUNTRY]' => $patientData['country'], '[PATIENT_ZIPCODE]' => $patientData['zipcode'], '[PATIENT_HOME_PHONE]' => $patientData['home_phone'], '[PATIENT_MOBILE_PHONE]' => $patientData['mobile_phone'], '[PATIENT_WORK_PHONE]' => $patientData['work_phone'], '[PATIENT_EMAIL]' => $patientData['email'], '[PATIENT_MOTHERS_NAME]' => $patientData['mothers_name'], '[PATIENT_GUARDIANS_NAME]' => $patientData['guardians_name'], '[PATIENT_EMERGENCY_CONTACT]' => $patientData['emer_contact'], '[PATIENT_EMERGENCY_PHONE]' => $patientData['emer_phone'], '[PATIENT_PROVIDER]' => $this->user->getUserFullNameById($patientData['provider']), '[PATIENT_PHARMACY]' => $patientData['pharmacy'], '[PATIENT_AGE]' => $age['DMY']['years'], '[PATIENT_OCCUPATION]' => $patientData['occupation'], '[PATIENT_EMPLOYEER]' => $patientData['employer_name'], '[PATIENT_RACE]' => $patientData['race'], '[PATIENT_ETHNICITY]' => $patientData['ethnicity'], '[PATIENT_LENGUAGE]' => $patientData['lenguage'], '[PATIENT_REFERRAL]' => $patientData['referral'], '[PATIENT_REFERRAL_DATE]' => $patientData['referral_date'], '[PATIENT_TABACCO]' => 'tabaco', '[PATIENT_ALCOHOL]' => 'alcohol', '[PATIENT_BALANCE]' => '$' . $this->fees->getPatientBalanceByPid($pid), '[PATIENT_PRIMARY_PLAN]' => $patientData['primary_plan_name'], '[PATIENT_PRIMARY_EFFECTIVE_DATE]' => $patientData['primary_effective_date'], '[PATIENT_PRIMARY_SUBSCRIBER]' => $patientData['primary_subscriber_title'] . $patientData['primary_subscriber_fname'] . ' ' . $patientData['primary_subscriber_mname'] . ' ' . $patientData['primary_subscriber_lname'], '[PATIENT_PRIMARY_POLICY_NUMBER]' => $patientData['primary_policy_number'], '[PATIENT_PRIMARY_GROUP_NUMBER]' => $patientData['primary_group_number'], '[PATIENT_PRIMARY_SUBSCRIBER_STREET]' => $patientData['primary_subscriber_street'], '[PATIENT_PRIMARY_SUBSCRIBER_CITY]' => $patientData['primary_subscriber_city'], '[PATIENT_PRIMARY_SUBSCRIBER_STATE]' => $patientData['primary_subscriber_state'], '[PATIENT_PRIMARY_SUBSCRIBER_COUNTRY]' => $patientData['primary_subscriber_country'], '[PATIENT_PRIMARY_SUBSCRIBER_ZIPCODE]' => $patientData['primary_subscriber_zip_code'], '[PATIENT_PRIMARY_SUBSCRIBER_RELATIONSHIP]' => $patientData['primary_subscriber_relationship'], '[PATIENT_PRIMARY_SUBSCRIBER_PHONE]' => $patientData['primary_subscriber_phone'], '[PATIENT_PRIMARY_SUBSCRIBER_EMPLOYER]' => $patientData['primary_subscriber_employer'], '[PATIENT_PRIMARY_SUBSCRIBER_EMPLOYER_CITY]' => $patientData['primary_subscriber_employer_city'], '[PATIENT_PRIMARY_SUBSCRIBER_EMPLOYER_STATE]' => $patientData['primary_subscriber_employer_state'], '[PATIENT_PRIMARY_SUBSCRIBER_EMPLOYER_COUNTRY]' => $patientData['primary_subscriber_employer_country'], '[PATIENT_PRIMARY_SUBSCRIBER_EMPLOYER_ZIPCODE]' => $patientData['primary_subscriber_zip_code'], '[PATIENT_SECONDARY_PLAN]' => $patientData['secondary_plan_name'], '[PATIENT_SECONDARY_EFFECTIVE_DATE]' => $patientData['secondary_effective_date'], '[PATIENT_SECONDARY_SUBSCRIBER]' => $patientData['secondary_subscriber_title'] . $patientData['primary_subscriber_fname'] . ' ' . $patientData['primary_subscriber_mname'] . ' ' . $patientData['primary_subscriber_lname'], '[PATIENT_SECONDARY_POLICY_NUMBER]' => $patientData['secondary_policy_number'], '[PATIENT_SECONDARY_GROUP_NUMBER]' => $patientData['secondary_group_number'], '[PATIENT_SECONDARY_SUBSCRIBER_STREET]' => $patientData['secondary_subscriber_street'], '[PATIENT_SECONDARY_SUBSCRIBER_CITY]' => $patientData['secondary_subscriber_city'], '[PATIENT_SECONDARY_SUBSCRIBER_STATE]' => $patientData['secondary_subscriber_state'], '[PATIENT_SECONDARY_SUBSCRIBER_COUNTRY]' => $patientData['secondary_subscriber_country'], '[PATIENT_SECONDARY_SUBSCRIBER_ZIPCODE]' => $patientData['secondary_subscriber_zip_code'], '[PATIENT_SECONDARY_SUBSCRIBER_RELATIONSHIP]' => $patientData['secondary_subscriber_relationship'], '[PATIENT_SECONDARY_SUBSCRIBER_PHONE]' => $patientData['secondary_subscriber_phone'], '[PATIENT_SECONDARY_SUBSCRIBER_EMPLOYER]' => $patientData['secondary_subscriber_employer'], '[PATIENT_SECONDARY_SUBSCRIBER_EMPLOYER_CITY]' => $patientData['secondary_subscriber_employer_city'], '[PATIENT_SECONDARY_SUBSCRIBER_EMPLOYER_STATE]' => $patientData['secondary_subscriber_employer_state'], '[PATIENT_SECONDARY_SUBSCRIBER_EMPLOYER_COUNTRY]' => $patientData['secondary_subscriber_employer_country'], '[PATIENT_SECONDARY_SUBSCRIBER_EMPLOYER_ZIPCODE]' => $patientData['secondary_subscriber_zip_code'], '[PATIENT_TERTIARY_PLAN]' => $patientData['tertiary_plan_name'], '[PATIENT_TERTIARY_EFFECTIVE_DATE]' => $patientData['tertiary_effective_date'], '[PATIENT_TERTIARY_SUBSCRIBER]' => $patientData['tertiary_subscriber_title'] . $patientData['primary_subscriber_fname'] . ' ' . $patientData['primary_subscriber_mname'] . ' ' . $patientData['primary_subscriber_lname'], '[PATIENT_TERTIARY_POLICY_NUMBER]' => $patientData['tertiary_policy_number'], '[PATIENT_TERTIARY_GROUP_NUMBER]' => $patientData['tertiary_group_number'], '[PATIENT_TERTIARY_SUBSCRIBER_STREET]' => $patientData['tertiary_subscriber_street'], '[PATIENT_TERTIARY_SUBSCRIBER_CITY]' => $patientData['tertiary_subscriber_city'], '[PATIENT_TERTIARY_SUBSCRIBER_STATE]' => $patientData['tertiary_subscriber_state'], '[PATIENT_TERTIARY_SUBSCRIBER_COUNTRY]' => $patientData['tertiary_subscriber_country'], '[PATIENT_TERTIARY_SUBSCRIBER_ZIPCODE]' => $patientData['tertiary_subscriber_zip_code'], '[PATIENT_TERTIARY_SUBSCRIBER_RELATIONSHIP]' => $patientData['tertiary_subscriber_relationship'], '[PATIENT_TERTIARY_SUBSCRIBER_PHONE]' => $patientData['tertiary_subscriber_phone'], '[PATIENT_TERTIARY_SUBSCRIBER_EMPLOYER]' => $patientData['tertiary_subscriber_employer'], '[PATIENT_TERTIARY_SUBSCRIBER_EMPLOYER_CITY]' => $patientData['tertiary_subscriber_employer_city'], '[PATIENT_TERTIARY_SUBSCRIBER_EMPLOYER_STATE]' => $patientData['tertiary_subscriber_employer_state'], '[PATIENT_TERTIARY_SUBSCRIBER_EMPLOYER_COUNTRY]' => $patientData['tertiary_subscriber_employer_country'], '[PATIENT_TERTIARY_SUBSCRIBER_EMPLOYER_ZIPCODE]' => $patientData['tertiary_subscriber_zip_code']);
$pos = 0;
foreach ($tokens as $tok) {
if ($allNeededInfo[$pos] == '' || $allNeededInfo[$pos] == null) {
$allNeededInfo[$pos] = $patienInformation[$tok];
}
$pos = $pos + 1;
}
return $allNeededInfo;
}
示例3: get_PatientTokensData
public function get_PatientTokensData($pid, $allNeededInfo, $tokens)
{
$patientData = $this->getAllPatientData($pid);
$age = $this->patient->getPatientAgeByDOB($patientData['DOB']);
$user = new User();
$patienInformation = ['[PATIENT_NAME]' => $patientData['fname'], '[PATIENT_ID]' => $patientData['pid'], '[PATIENT_FULL_NAME]' => $this->patient->getPatientFullNameByPid($patientData['pid']), '[PATIENT_LAST_NAME]' => $patientData['lname'], '[PATIENT_SEX]' => $patientData['sex'], '[PATIENT_BIRTHDATE]' => $patientData['DOB'], '[PATIENT_MARITAL_STATUS]' => $patientData['marital_status'], '[PATIENT_SOCIAL_SECURITY]' => $patientData['SS'], '[PATIENT_EXTERNAL_ID]' => $patientData['pubpid'], '[PATIENT_DRIVERS_LICENSE]' => $patientData['drivers_license'], '[PATIENT_ADDRESS]' => $patientData['address'], '[PATIENT_CITY]' => $patientData['city'], '[PATIENT_STATE]' => $patientData['state'], '[PATIENT_COUNTRY]' => $patientData['country'], '[PATIENT_ZIPCODE]' => $patientData['zipcode'], '[PATIENT_HOME_PHONE]' => $patientData['home_phone'], '[PATIENT_MOBILE_PHONE]' => $patientData['mobile_phone'], '[PATIENT_WORK_PHONE]' => $patientData['work_phone'], '[PATIENT_EMAIL]' => $patientData['email'], '[PATIENT_MOTHERS_NAME]' => $patientData['mothers_name'], '[PATIENT_GUARDIANS_NAME]' => $patientData['guardians_name'], '[PATIENT_EMERGENCY_CONTACT]' => $patientData['emer_contact'], '[PATIENT_EMERGENCY_PHONE]' => $patientData['emer_phone'], '[PATIENT_PROVIDER]' => is_numeric($patientData['provider']) ? $user->getUserFullNameById($patientData['provider']) : '', '[PATIENT_PHARMACY]' => $patientData['pharmacy'], '[PATIENT_AGE]' => $age['DMY']['years'], '[PATIENT_OCCUPATION]' => $patientData['occupation'], '[PATIENT_EMPLOYEER]' => $patientData['employer_name'], '[PATIENT_RACE]' => $patientData['race'], '[PATIENT_ETHNICITY]' => $patientData['ethnicity'], '[PATIENT_LENGUAGE]' => $patientData['language'], '[PATIENT_PICTURE]' => '<img src="' . $patientData['image'] . '" style="width:100px;height:100px">', '[PATIENT_QRCODE]' => '<img src="' . $patientData['qrcode'] . '" style="width:100px;height:100px">', '[PATIENT_TABACCO]' => 'tabaco', '[PATIENT_ALCOHOL]' => 'alcohol'];
unset($user);
foreach ($tokens as $i => $tok) {
if (isset($patienInformation[$tok]) && ($allNeededInfo[$i] == '' || $allNeededInfo[$i] == null)) {
$allNeededInfo[$i] = $patienInformation[$tok];
}
}
return $allNeededInfo;
}
示例4: getEncounterSummary
public function getEncounterSummary(stdClass $params)
{
$this->setEid($params->eid);
$this->db->setSQL("SELECT e.*,\n\t\t\t\t\t\t\t\t p.fname,\n\t\t\t\t\t\t\t\t p.mname,\n\t\t\t\t\t\t\t\t p.lname,\n\t\t\t\t\t\t\t\t p.DOB,\n\t\t\t\t\t\t\t\t p.sex\n\t\t\t\t\t\t\t FROM encounters AS e\n\t\t\t\t\t LEFT JOIN patient_demographics AS p ON e.pid = p.pid\n\t\t\t\t\t\t\tWHERE e.eid = '{$params->eid}'");
$e = $this->db->fetchRecord(PDO::FETCH_ASSOC);
$e['name'] = Person::fullname($e['fname'], $e['mname'], $e['lname']);
$e['pic'] = $this->patient->getPatientPhotoSrcIdByPid($e['pid']);
$e['age'] = $this->patient->getPatientAgeByDOB($e['DOB']);
$this->addEncounterHistoryEvent('Encounter viewed');
if (!empty($e)) {
return array('success' => true, 'encounter' => $e);
} else {
return array('success' => false, 'error' => "Encounter ID {$params->eid} not found");
}
}
示例5: get_PatientTokensData
public function get_PatientTokensData($pid, $allNeededInfo, $tokens)
{
// Code reference: Relationship codes as specified by HL7. v2: Added 'Household' concept
// https://phinvads.cdc.gov/vads/ViewValueSet.action?id=6FD34BBC-617F-DD11-B38D-00188B398520#
$patientContact = new PatientContacts();
$contactSelf = $patientContact->getContactByType($pid, 'SEL');
$contactGuardian = $patientContact->getContactByType($pid, 'GRD');
$contactMother = $patientContact->getContactByType($pid, 'MTH');
$contactEmergency = $patientContact->getContactByType($pid, 'EMC');
$contactEmployer = $patientContact->getContactByType($pid, 'EMR');
$patientData = $this->getAllPatientData($pid);
$age = $this->patient->getPatientAgeByDOB($patientData['DOB']);
$user = new User();
$patienInformation = ['[PATIENT_NAME]' => $patientData['fname'], '[PATIENT_ID]' => $patientData['pid'], '[PATIENT_FULL_NAME]' => $this->patient->getPatientFullNameByPid($patientData['pid']), '[PATIENT_LAST_NAME]' => $patientData['lname'], '[PATIENT_SEX]' => $patientData['sex'], '[PATIENT_BIRTHDATE]' => $patientData['DOB'], '[PATIENT_MARITAL_STATUS]' => $patientData['marital_status'], '[PATIENT_SOCIAL_SECURITY]' => $patientData['SS'], '[PATIENT_EXTERNAL_ID]' => $patientData['pubpid'], '[PATIENT_DRIVERS_LICENSE]' => $patientData['drivers_license'], '[PATIENT_ADDRESS]' => isset($contactSelf['street_mailing_address']) ? $contactSelf['street_mailing_address'] : '', '[PATIENT_CITY]' => isset($contactSelf['city']) ? $contactSelf['city'] : '', '[PATIENT_STATE]' => isset($contactSelf['state']) ? $contactSelf['state'] : '', '[PATIENT_COUNTRY]' => isset($contactSelf['country']) ? $contactSelf['country'] : '', '[PATIENT_ZIPCODE]' => isset($contactSelf['zip']) ? $contactSelf['zip'] : '', '[PATIENT_HOME_PHONE]' => isset($contactSelf['phone_local_number']) ? $contactSelf['phone_use_code'] . '-' . $contactSelf['phone_area_code'] . '-' . $contactSelf['phone_local_number'] : '', '[PATIENT_MOBILE_PHONE]' => isset($contactSelf['phone_local_number']) ? $contactSelf['phone_use_code'] . '-' . $contactSelf['phone_area_code'] . '-' . $contactSelf['phone_local_number'] : '', '[PATIENT_WORK_PHONE]' => isset($contactSelf['phone_local_number']) ? $contactSelf['phone_use_code'] . '-' . $contactSelf['phone_area_code'] . '-' . $contactSelf['phone_local_number'] : '', '[PATIENT_EMAIL]' => '', '[PATIENT_MOTHERS_NAME]' => isset($contactMother['first_name']) ? Person::fullname($contactMother['first_name'], $contactMother['middle_name'], $contactMother['last_name']) : '', '[PATIENT_GUARDIANS_NAME]' => isset($contactGuardian['first_name']) ? Person::fullname($contactGuardian['first_name'], $contactGuardian['middle_name'], $contactGuardian['last_name']) : '', '[PATIENT_EMERGENCY_CONTACT]' => isset($contactEmergency['first_name']) ? Person::fullname($contactEmergency['first_name'], $contactEmergency['middle_name'], $contactEmergency['last_name']) : '', '[PATIENT_EMERGENCY_PHONE]' => isset($contactEmergency['phone_local_number']) ? $contactEmergency['phone_use_code'] . '-' . $contactEmergency['phone_area_code'] . '-' . $contactEmergency['phone_local_number'] : '', '[PATIENT_PROVIDER]' => is_numeric($patientData['provider']) ? $user->getUserFullNameById($patientData['provider']) : '', '[PATIENT_PHARMACY]' => $patientData['pharmacy'], '[PATIENT_AGE]' => $age['DMY']['years'], '[PATIENT_OCCUPATION]' => $patientData['occupation'], '[PATIENT_EMPLOYEER]' => isset($contactEmployer['first_name']) ? Person::fullname($contactEmployer['first_name'], $contactEmployer['middle_name'], $contactEmployer['last_name']) : '', '[PATIENT_RACE]' => $patientData['race'], '[PATIENT_ETHNICITY]' => $patientData['ethnicity'], '[PATIENT_LENGUAGE]' => $patientData['language'], '[PATIENT_PICTURE]' => '<img src="' . $patientData['image'] . '" style="width:100px;height:100px">', '[PATIENT_QRCODE]' => '<img src="' . $patientData['qrcode'] . '" style="width:100px;height:100px">', '[PATIENT_TABACCO]' => 'tabaco', '[PATIENT_ALCOHOL]' => 'alcohol'];
unset($user);
foreach ($tokens as $i => $tok) {
if (isset($patienInformation[$tok]) && ($allNeededInfo[$i] == '' || $allNeededInfo[$i] == null)) {
$allNeededInfo[$i] = $patienInformation[$tok];
}
}
return $allNeededInfo;
}
示例6: setPID
/**
* @return Segments
* @throws Exception
*/
private function setPID()
{
$this->patient = $this->p->load($this->patient)->one();
if ($this->patient == false) {
throw new \Exception('Error: Patient not found during setPID, Record # ' . $this->patient);
}
$this->patient = (object) $this->patient;
$this->patient->age = Patient::getPatientAgeByDOB($this->patient->DOB);
$pid = $this->hl7->addSegment('PID');
$pid->setValue('1', 1);
// if($this->notEmpty($this->patient->pubpid)){
// $pid->setValue('2.3', $this->patient->pubpid);
// }else if($this->notEmpty($this->patient->pid)){
// $pid->setValue('2.3', $this->patient->pid);
// }
// if($this->notEmpty($this->patient->pubpid)){
// $pid->setValue('3.1', $this->patient->pubpid);
if ($this->notEmpty($this->patient->pid)) {
$pid->setValue('3.1', $this->patient->pid);
}
$pid->setValue('3.4', 'GaiaEHR');
$pid->setValue('3.5', 'MR');
// IDNumber Type (HL70203) MR = Medical Record
if ($this->patient->age['DMY']['years'] == 0) {
// $pid->setValue('5.1.1', '', 0);
$pid->setValue('5.7', 'S', 1);
} else {
if ($this->notEmpty($this->patient->lname)) {
$pid->setValue('5.1.1', $this->patient->lname);
}
if ($this->notEmpty($this->patient->fname)) {
$pid->setValue('5.2', $this->patient->fname);
}
if ($this->notEmpty($this->patient->mname)) {
$pid->setValue('5.3', $this->patient->mname);
}
$pid->setValue('5.7', 'L');
}
// This has to be taken on Patient Contacts
$filters = new stdClass();
$filters->filter[0] = new stdClass();
$filters->filter[1] = new stdClass();
$filters->filter[0]->property = 'pid';
$filters->filter[0]->value = $this->patient->pid;
$filters->filter[1]->property = 'relationship';
$filters->filter[1]->value = 'MTH';
$ContactRecord = $this->PatientContacts->load($filters)->one();
if ($this->notEmpty($ContactRecord)) {
$pid->setValue('6.1', $ContactRecord['first_name'] . ' ' . $ContactRecord['middle_name'] . ' ' . $ContactRecord['last_name']);
$pid->setValue('6.2', $ContactRecord['first_name'] . ' ' . $ContactRecord['middle_name'] . ' ' . $ContactRecord['last_name']);
}
if ($this->notEmpty($this->patient->DOB)) {
$pid->setValue('7.1', $this->date($this->patient->DOB));
}
if ($this->notEmpty($this->patient->sex)) {
$pid->setValue('8', $this->patient->sex);
}
if ($this->notEmpty($this->patient->alias)) {
$pid->setValue('9.2', $this->patient->alias);
}
if ($this->notEmpty($this->patient->race)) {
$pid->setValue('10.1', $this->patient->race);
$pid->setValue('10.2', $this->hl7->race($this->patient->race));
//Race Text
$pid->setValue('10.3', 'CDCREC');
// Race Name of Coding System
}
// Patient Address taken Patient Contact (SELF)
$filters = new stdClass();
$filters->filter[0] = new stdClass();
$filters->filter[1] = new stdClass();
$filters->filter[0]->property = 'pid';
$filters->filter[0]->value = $this->patient->pid;
$filters->filter[1]->property = 'relationship';
$filters->filter[1]->value = 'SEL';
$ContactRecord = $this->PatientContacts->load($filters)->one();
if ($this->notEmpty($ContactRecord['street_mailing_address'])) {
if ($this->notEmpty($ContactRecord['street_mailing_address'])) {
$pid->setValue('11.1.1', $ContactRecord['street_mailing_address']);
}
if ($this->notEmpty($ContactRecord['city'])) {
$pid->setValue('11.3', $ContactRecord['city']);
}
if ($this->notEmpty($ContactRecord['state'])) {
$pid->setValue('11.4', $ContactRecord['state']);
}
if ($this->notEmpty($ContactRecord['zip'])) {
$pid->setValue('11.5', $ContactRecord['zip']);
}
if ($this->notEmpty($ContactRecord['country'])) {
$pid->setValue('11.6', $ContactRecord['country']);
}
if ($this->notEmpty($ContactRecord['street_mailing_address'])) {
$pid->setValue('11.7', 'L');
// Address Type L = Legal Address
}
//.........这里部分代码省略.........
示例7: setPID
/**
* @return Segments
* @throws Exception
*/
private function setPID()
{
$this->patient = $this->p->load($this->patient)->one();
if ($this->patient == false) {
throw new \Exception('Error: Patient not found during setPID, Record # ' . $this->patient);
}
$this->patient = (object) $this->patient;
$this->patient->age = Patient::getPatientAgeByDOB($this->patient->DOB);
$pid = $this->hl7->addSegment('PID');
$pid->setValue('1', 1);
if ($this->notEmpty($this->patient->pubpid)) {
$pid->setValue('2.3', $this->patient->pubpid);
}
if ($this->notEmpty($this->patient->pid)) {
$pid->setValue('3.1', $this->patient->pid);
}
$pid->setValue('3.5', 'MR');
// IDNumber Type (HL70203) MR = Medical Record
if ($this->patient->age['DMY']['years'] == 0) {
// $pid->setValue('5.1.1', '', 0);
$pid->setValue('5.7', 'S', 1);
} else {
if ($this->notEmpty($this->patient->lname)) {
$pid->setValue('5.1.1', $this->patient->lname);
}
if ($this->notEmpty($this->patient->fname)) {
$pid->setValue('5.2', $this->patient->fname);
}
if ($this->notEmpty($this->patient->mname)) {
$pid->setValue('5.3', $this->patient->mname);
}
$pid->setValue('5.7', 'L');
}
if ($this->notEmpty($this->patient->mothers_name)) {
$pid->setValue('6.2', $this->patient->mothers_name);
}
if ($this->notEmpty($this->patient->DOB)) {
$pid->setValue('7.1', $this->date($this->patient->DOB));
}
if ($this->notEmpty($this->patient->sex)) {
$pid->setValue('8', $this->patient->sex);
}
if ($this->notEmpty($this->patient->alias)) {
$pid->setValue('9.2', $this->patient->alias);
}
if ($this->notEmpty($this->patient->race)) {
$pid->setValue('10.1', $this->patient->race);
$pid->setValue('10.2', $this->hl7->race($this->patient->race));
//Race Text
$pid->setValue('10.3', 'CDCREC');
// Race Name of Coding System
}
if ($this->notEmpty($this->patient->address)) {
$pid->setValue('11.1.1', $this->patient->address);
}
if ($this->notEmpty($this->patient->city)) {
$pid->setValue('11.3', $this->patient->city);
}
if ($this->notEmpty($this->patient->state)) {
$pid->setValue('11.4', $this->patient->state);
}
if ($this->notEmpty($this->patient->zipcode)) {
$pid->setValue('11.5', $this->patient->zipcode);
}
if ($this->notEmpty($this->patient->country)) {
$pid->setValue('11.6', $this->patient->country);
}
if ($this->notEmpty($this->patient->address)) {
$pid->setValue('11.7', 'P');
// Address Type P = Permanent
}
$pid->setValue('11.9', '25025');
if ($this->notEmpty($this->patient->home_phone)) {
$phone = $this->phone($this->patient->home_phone);
$pid->setValue('13.2', 'PRN');
// PhoneNumber‐Home
$pid->setValue('13.6', $phone['zip']);
// Area/City Code
$pid->setValue('13.7', $phone['number']);
// LocalNumber
}
// if($this->notEmpty($this->patient->work_phone)){
// $phone = $this->phone($this->patient->work_phone);
// $PID->setValue('13.2', 'PRN'); // PhoneNumber‐Home
// $PID->setValue('13.6', $phone['zip']); // Area/City Code
// $PID->setValue('13.7', $phone['number']); // LocalNumber
// }
if ($this->notEmpty($this->patient->language)) {
$pid->setValue('15.1', $this->patient->language);
}
if ($this->notEmpty($this->patient->marital_status)) {
$pid->setValue('16.1', $this->patient->marital_status);
// EthnicGroup Identifier
$pid->setValue('16.2', $this->hl7->marital($this->patient->marital_status));
// EthnicGroup Text
$pid->setValue('16.3', 'CDCREC');
//.........这里部分代码省略.........