本文整理汇总了PHP中CPatient::getTagIPP方法的典型用法代码示例。如果您正苦于以下问题:PHP CPatient::getTagIPP方法的具体用法?PHP CPatient::getTagIPP怎么用?PHP CPatient::getTagIPP使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CPatient
的用法示例。
在下文中一共展示了CPatient::getTagIPP方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: createDomain
/**
* Create domains
*
* @return bool
*/
protected function createDomain()
{
$ds = $this->ds;
$groups = $ds->loadList("SELECT * FROM groups_mediboard");
$tab = array("CPatient", "CSejour");
foreach ($groups as $_group) {
$group_id = $_group["group_id"];
$group_configs = $ds->loadHash("SELECT * FROM groups_config WHERE object_id = '{$group_id}'");
foreach ($tab as $object_class) {
if ($object_class == "CPatient") {
$tag_group = CPatient::getTagIPP($group_id);
if (!$group_configs || !array_key_exists("ipp_range_min", $group_configs)) {
continue;
}
$range_min = $group_configs["ipp_range_min"];
$range_max = $group_configs["ipp_range_max"];
} else {
$tag_group = CSejour::getTagNDA($group_id);
if (!$group_configs || !array_key_exists("nda_range_min", $group_configs)) {
continue;
}
$range_min = $group_configs["nda_range_min"];
$range_max = $group_configs["nda_range_max"];
}
if (!$tag_group) {
continue;
}
// Insert domain
$query = "INSERT INTO `domain` (`domain_id`, `incrementer_id`, `actor_id`, `actor_class`, `tag`)\n VALUES (NULL, NULL, NULL, NULL, '{$tag_group}');";
$ds->query($query);
$domain_id = $ds->insertId();
// Insert group domain
$query = "INSERT INTO `group_domain` (`group_domain_id`, `group_id`, `domain_id`, `object_class`, `master`)\n VALUES (NULL, '{$group_id}', '{$domain_id}', '{$object_class}', '1');";
$ds->query($query);
// Select incrementer for this group
$select = "SELECT *\n FROM `incrementer`\n LEFT JOIN `domain` ON `incrementer`.`incrementer_id` = `domain`.`incrementer_id`\n LEFT JOIN `group_domain` ON `domain`.`domain_id` = `group_domain`.`domain_id`\n WHERE `incrementer`.`object_class` = '{$object_class}'\n AND `group_domain`.`group_id` = '{$group_id}';";
$incrementer = $ds->loadHash($select);
$incrementer_id = $incrementer["incrementer_id"];
if ($incrementer_id) {
// Update domain with incrementer_id
$query = "UPDATE `domain`\n SET `incrementer_id` = '{$incrementer_id}'\n WHERE `domain_id` = '{$domain_id}';";
$ds->query($query);
// Update incrementer
if (!array_key_exists("nda_range_min", $group_configs) || !$range_max || $range_min === null) {
continue;
}
$query = "UPDATE `incrementer`\n SET `range_min` = '{$range_min}', `range_max` = '{$range_max}'\n WHERE `incrementer_id` = '{$incrementer_id}';";
$ds->query($query);
}
}
}
// Update constraints to stick to the event
return true;
}
示例2: onAfterStore
/**
* @see parent::onAfterStore()
*/
function onAfterStore(CMbObject $mbObject)
{
if (!$this->isHandled($mbObject)) {
return false;
}
if (!$mbObject->_id || !$this->create) {
return false;
}
$group_id = $mbObject->_id;
$object_class = array("CSejour", "CPatient");
global $dPconfig;
$original_value = $dPconfig["eai"]["use_domain"];
$dPconfig["eai"]["use_domain"] = "0";
foreach ($object_class as $_class) {
switch ($_class) {
case "CSejour":
$tag_group = CSejour::getTagNDA($group_id);
break;
case "CPatient":
$tag_group = CPatient::getTagIPP($group_id);
break;
default:
$tag_group = null;
}
if (!$tag_group) {
continue;
}
$domain = new CDomain();
$domain->tag = $tag_group;
if ($domain->store()) {
continue;
}
$group_domain = new CGroupDomain();
$group_domain->group_id = $group_id;
$group_domain->domain_id = $domain->_id;
$group_domain->object_class = $_class;
$group_domain->master = "1";
$group_domain->store();
}
$dPconfig["eai"]["use_domain"] = "{$original_value}";
return true;
}
示例3: importFile
/**
* import the patient file
*
* @param string $file path to the file
* @param int $start start int
* @param int $count number of iterations
* @param resource $file_import file for report
*
* @return null
*/
function importFile($file, $start, $count, $file_import)
{
$fp = fopen($file, 'r');
$csv_file = new CCSVFile($fp);
$csv_file->column_names = $csv_file->readLine();
if ($start == 0) {
$start++;
} elseif ($start > 1) {
$csv_file->jumpLine($start);
}
$group_id = CGroups::loadCurrent()->_id;
$treated_line = 0;
while ($treated_line < $count) {
$treated_line++;
$patient = new CPatient();
$_patient = $csv_file->readLine(true);
if (!$_patient) {
CAppUI::stepAjax('Importation terminée', UI_MSG_OK);
CApp::rip();
}
$patient->bind($_patient);
$patient->loadFromIPP($group_id);
if ($patient->_id) {
$start++;
continue;
}
$nom = $_patient['nom'] ? $_patient['nom'] : $_patient['nom_jeune_fille'];
if (!$patient->nom) {
if ($patient->nom_jeune_fille) {
$patient->nom = $patient->nom_jeune_fille;
} else {
CMbDebug::log("Ligne #{$start} : Pas de nom");
$start++;
continue;
}
}
$naissance = null;
if ($patient->naissance) {
$naissance = preg_replace('/(\\d{2})\\/(\\d{2})\\/(\\d{4})/', '\\3-\\2-\\1', $patient->naissance);
$patient->naissance = $naissance;
}
$patient->repair();
if (!$patient->naissance) {
CMbDebug::log($_patient);
CMbDebug::log("Ligne #{$start} : Date de naissance invalide ({$_patient['naissance']})");
$start++;
continue;
}
$patient->loadMatchingPatient();
if (!$patient->_id) {
$patient->bind($_patient);
$patient->nom = $nom;
$patient->naissance = $naissance;
$patient->tel = preg_replace("/[^0-9]/", "", $patient->tel);
$patient->tel_autre = preg_replace("/[^0-9]/", "", $patient->tel_autre);
$patient->sexe = strtolower($patient->sexe);
$patient->repair();
if ($msg = $patient->store()) {
CMbDebug::log($patient, null, true);
CMbDebug::log("Ligne #{$start} :{$msg}");
$start++;
continue;
}
}
$ipp = CIdSante400::getMatch($patient->_class, CPatient::getTagIPP($group_id), $patient->_IPP, $patient->_id);
if ($ipp->_id && $ipp->id400 != $patient->_IPP) {
CMbDebug::log("Ligne #{$start} : Ce patient possède déjà un IPP ({$ipp->id400})");
$start++;
continue;
}
if (!$ipp->_id) {
if ($msg = $ipp->store()) {
CMbDebug::log("Ligne #{$start} :{$msg}");
$start++;
continue;
}
}
CAppUI::setMsg('CPatient-msg-create', UI_MSG_OK);
}
echo CAppUI::getMsg();
}
示例4: onBeforeMerge
/**
* @see parent::onBeforeMerge
*/
function onBeforeMerge(CMbObject $mbObject)
{
if (!parent::onBeforeMerge($mbObject)) {
return;
}
// Si pas en mode alternatif
if (!CAppUI::conf("alternative_mode")) {
throw new CMbException("no_alternative_mode");
}
$patient = $mbObject;
$patient_elimine = new CPatient();
$patient_elimine->load(reset($mbObject->_merging));
// Si Client
if (!CAppUI::conf('sip server')) {
$mbObject->_fusion = array();
foreach (CGroups::loadGroups() as $_group) {
/** @var CInteropSender $sender */
$sender = $mbObject->_eai_sender_guid ? CMbObject::loadFromGuid($mbObject->_eai_sender_guid) : null;
if ($sender && $sender->group_id == $_group->_id) {
continue;
}
$patient->_IPP = null;
$patient->loadIPP($_group->_id);
$patient1_ipp = $patient->_IPP;
$patient_elimine->_IPP = null;
$patient_elimine->loadIPP($_group->_id);
$patient2_ipp = $patient_elimine->_IPP;
// Passage en trash des IPP des patients
$tap_IPP = CPatient::getTagIPP($_group->_id);
if (!$tap_IPP) {
continue;
}
$idexPatient = new CIdSante400();
$idexPatient->tag = $tap_IPP;
$idexPatient->object_class = "CPatient";
$idexPatient->object_id = $patient->_id;
$idexsPatient = $idexPatient->loadMatchingList();
$idexPatientElimine = new CIdSante400();
$idexPatientElimine->tag = $tap_IPP;
$idexPatientElimine->object_class = "CPatient";
$idexPatientElimine->object_id = $patient_elimine->_id;
$idexsPatientElimine = $idexPatientElimine->loadMatchingList();
$idexs = array_merge($idexsPatient, $idexsPatientElimine);
$idexs_changed = array();
if (count($idexs) > 1) {
foreach ($idexs as $_idex) {
// On continue pour ne pas mettre en trash l'IPP du patient que l'on garde
if ($_idex->id400 == $patient1_ipp) {
continue;
}
$old_tag = $_idex->tag;
$_idex->tag = CAppUI::conf('dPpatients CPatient tag_ipp_trash') . $tap_IPP;
$_idex->last_update = CMbDT::dateTime();
if (!($msg = $_idex->store())) {
if ($_idex->object_id == $patient_elimine->_id) {
$idexs_changed[$_idex->_id] = $old_tag;
}
}
}
}
if (!$patient1_ipp && !$patient2_ipp) {
continue;
}
$mbObject->_fusion[$_group->_id] = array("patientElimine" => $patient_elimine, "patient1_ipp" => $patient1_ipp, "patient2_ipp" => $patient2_ipp, "idexs_changed" => $idexs_changed);
}
}
$this->sendFormatAction("onBeforeMerge", $mbObject);
}
示例5: array
/**
* Liaison des object Hprim21 aux objets métiers
*
* @category Hprim21
* @package Mediboard
* @author SARL OpenXtrem <dev@openxtrem.com>
* @license GNU General Public License; see http://www.gnu.org/licenses/gpl.html
* @version SVN: $Id: httpreq_link_hprim_objects.php 21867 2014-02-03 08:18:27Z nicolasld $
* @link http://www.mediboard.org
*/
CCanDo::checkRead();
CApp::setTimeLimit(240);
$date_limite = CMbDT::date("- 1 month");
$qte_limite = 1000;
$tag_ipp = CPatient::getTagIPP();
$tag_sejour = CSejour::getTagNDA();
// Gestion des médecins
$hprimMedecin = new CHprim21Medecin();
$where = array();
$where["user_id"] = "IS NULL";
/** @var CHprim21Medecin[] $listHprimMedecins */
$listHprimMedecins = $hprimMedecin->loadList($where);
$total = count($listHprimMedecins);
// Liaison à un médecin existant
$nouv = 0;
foreach ($listHprimMedecins as $_medecin) {
$_medecin->loadRefExchange();
$echg_hprim = $_medecin->_ref_echange_hprim21;
$medecin = new CMediusers();
$ljoin = array();
示例6: updateFormFields
/**
* Update the form (derived) fields plain fields
*
* @return void
*/
function updateFormFields()
{
parent::updateFormFields();
$this->_view = $this->libelle ? $this->libelle : $this->nom;
$this->_type_echange = $this->_class;
$this->_self_tag = $this->getTag($this->group_id);
$this->_tag_patient = CPatient::getTagIPP($this->group_id);
$this->_tag_sejour = CSejour::getTagNDA($this->group_id);
$this->_tag_consultation = CConsultation::getObjectTag($this->group_id);
$this->_tag_mediuser = CMediusers::getObjectTag($this->group_id);
$this->_tag_service = CService::getObjectTag($this->group_id);
$this->_tag_chambre = CChambre::getObjectTag($this->group_id);
$this->_tag_lit = CLit::getObjectTag($this->group_id);
$this->_tag_movement = CMovement::getObjectTag($this->group_id);
$this->_tag_visit_number = CSmp::getObjectTag($this->group_id);
}
示例7: elseif
if ($filter->_date_min) {
$query .= $ds->prepare(" AND plageconsult.date >= ?", $filter->_date_min);
}
if ($filter->_date_max) {
$query .= $ds->prepare(" AND plageconsult.date <= ?", $filter->_date_max);
}
if ($filter->_user_id) {
$query .= $ds->prepare(" AND users_mediboard.user_id = ?", $filter->_user_id);
}
if ($filter->_function_id) {
$query .= $ds->prepare(" AND functions_mediboard.function_id = ?", $filter->_function_id);
}
$query .= "\n GROUP BY consultation.adresse_par_prat_id\n ORDER BY total DESC\n LIMIT {$page}, {$limit};";
$list = $ds->loadHashList($query);
} elseif ($compute_mode == "correspondants") {
$tag = CPatient::getTagIPP();
if ($tag) {
$query = "SELECT\n medecin.medecin_id,\n COUNT(DISTINCT(patients.patient_id)) AS total\n\n FROM patients\n LEFT JOIN id_sante400 ON id_sante400.object_id = patients.patient_id AND id_sante400.object_class = 'CPatient'\n LEFT JOIN correspondant ON correspondant.patient_id = patients.patient_id\n LEFT JOIN medecin ON medecin.medecin_id = correspondant.medecin_id\n WHERE\n id_sante400.tag = ?1 AND\n correspondant.medecin_id IS NOT NULL\n GROUP BY correspondant.medecin_id\n ORDER BY total DESC\n LIMIT {$page}, {$limit};";
$query_corresp = $ds->prepare($query, $tag);
$query = "SELECT\n patients.medecin_traitant,\n COUNT(DISTINCT(patients.patient_id)) AS total\n\n FROM patients\n LEFT JOIN id_sante400 ON id_sante400.object_id = patients.patient_id AND id_sante400.object_class = 'CPatient'\n WHERE\n id_sante400.tag = ?1 AND\n patients.medecin_traitant IS NOT NULL\n GROUP BY patients.medecin_traitant\n ORDER BY total DESC\n LIMIT {$page}, {$limit};";
$query_traitant = $ds->prepare($query, $tag);
} else {
$query_corresp = "SELECT\n medecin.medecin_id,\n COUNT(DISTINCT(patients.patient_id)) AS total\n\n FROM patients\n LEFT JOIN correspondant ON correspondant.patient_id = patients.patient_id\n LEFT JOIN medecin ON medecin.medecin_id = correspondant.medecin_id\n WHERE\n correspondant.medecin_id IS NOT NULL\n GROUP BY correspondant.medecin_id\n ORDER BY total DESC\n LIMIT {$page}, {$limit};";
$query = "SELECT\n patients.medecin_traitant,\n COUNT(DISTINCT(patients.patient_id)) AS total\n\n FROM patients\n WHERE\n patients.medecin_traitant IS NOT NULL\n GROUP BY patients.medecin_traitant\n ORDER BY total DESC\n LIMIT {$page}, {$limit};";
$query_traitant = $ds->prepare($query, $tag);
}
$list_corresp = $ds->loadHashList($query_corresp);
$list_traitant = $ds->loadHashList($query_traitant);
foreach ($list_traitant as $_medecin_id => $_count) {
if (array_key_exists($_medecin_id, $list_corresp)) {
$list_corresp[$_medecin_id] += $_count;
示例8: importFile
/**
* import the patient file
*
* @param string $file path to the file
* @param int $start start int
* @param int $count number of iterations
* @param resource $file_import file for report
*
* @return null
*/
function importFile($file, $start, $count, $file_import)
{
$fp = fopen($file, 'r');
$patient = new CPatient();
$patient_specs = CModelObjectFieldDescription::getSpecList($patient);
CModelObjectFieldDescription::addBefore($patient->_specs["_IPP"], $patient_specs);
/** @var CMbFieldSpec[] $_patient_specs */
$_patient_specs = CModelObjectFieldDescription::getArray($patient_specs);
echo count($_patient_specs) . " traits d'import";
//0 = first line
if ($start == 0) {
$start++;
}
$line_nb = 0;
while ($line = fgetcsv($fp, null, ";")) {
$patient = new CPatient();
if ($line_nb >= $start && $line_nb < $start + $count) {
$line_rapport = "ligne {$line_nb} - ";
//foreach SPECS, first load
foreach ($_patient_specs as $key => $_specs) {
$field = $_specs->fieldName;
$data = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $line[$key]);
//specific cleanups
if ($_specs instanceof CPhoneSpec) {
$data = preg_replace('/\\D/', '', $data);
}
if ($field == "sexe") {
$data = strtolower($data);
}
if ($field == "deces" && $data == "0000-00-00") {
$data = null;
}
$patient->{$field} = $data;
}
$line_rapport .= "Patient {$patient->nom} {$patient->prenom} ({$patient->naissance})";
//clone and IPP
$IPP = $patient->_IPP;
$patient->_generate_IPP = false;
$patient_full = new CPatient();
$patient_full->extendsWith($patient);
// load by ipp if basic didn't find.
if (!$patient->_id) {
$patient->loadFromIPP();
if ($patient->_id) {
$line_rapport .= " (trouvé par IPP)";
}
}
//load patient with basics
if (!$patient->_id) {
$patient->_IPP = null;
$patient->loadMatchingPatient();
if ($patient->_id) {
$line_rapport .= " (trouvé par matching)";
}
}
//update fields if import have more data
foreach ($patient->getPlainFields() as $field => $value) {
if (!$patient->{$field}) {
$patient->{$field} = $patient_full->{$field};
}
}
// fields created by store, let the store do the job for these
$patient->civilite = "guess";
//found
if ($patient->_id) {
//check IPP
$patient->loadIPP();
//update
$patient->store();
if (!$patient->_IPP) {
$idex = CIdSante400::getMatch($patient->_class, CPatient::getTagIPP(), $IPP, $patient->_id);
$idex->last_update = CMbDT::dateTime();
$idex->store();
if ($idex->_id) {
$line_rapport .= ", IPP créé : {$IPP}";
}
echo "<tr style=\"color:#c98000\"><td>{$line_nb}</td><td>patient [{$patient->nom} {$patient->prenom}] déjà existant (MAJ ipp : {$idex->id400})</td></tr>";
} else {
$line_rapport .= " déjà existant";
if ($patient->_IPP != $IPP) {
mbLog($patient->_view . " [ipp: " . $patient->_IPP . " / ipp_import:" . $IPP);
$line_rapport .= " [IPP du fichier: {$IPP} / ipp en base: {$patient->_IPP} ]";
}
$line_rapport .= " [IPP en base et fichier identiques]";
echo "<tr style=\"color:#c98000\"><td>{$line_nb}</td><td>patient [{$patient->nom} {$patient->prenom}] déjà existant (ipp : {$patient->_IPP})</td></tr>";
}
} else {
$result = $patient->store();
if (!$result) {
$line_rapport .= " créé avec succes";
//.........这里部分代码省略.........
示例9: onAfterStore
/**
* Trigger after event store
*
* @param CMbObject $mbObject Object
*
* @return void
*/
function onAfterStore(CMbObject $mbObject)
{
if (!$this->isHandled($mbObject)) {
return false;
}
/** @var CInteropReceiver $receiver */
$receiver = $mbObject->_receiver;
$receiver->getInternationalizationCode($this->transaction);
$code = null;
// Création/MAJ d'un correspondant patient
if ($mbObject instanceof CCorrespondantPatient) {
if (!$mbObject->patient_id) {
return;
}
$mbObject = $mbObject->loadRefPatient();
$mbObject->_receiver = $receiver;
$code = "A31";
} elseif ($mbObject instanceof CIdSante400) {
$idex = $mbObject;
// Concerne pas les patients / Pas en mode modification
if ($idex->object_class != "CPatient" || !$idex->_old->_id) {
return;
}
// Pas un tag IPP
if ($idex->tag != CPatient::getTagIPP()) {
return;
}
// Vraiment une modif de l'idex ?
if ($idex->id400 == $idex->_old->id400) {
return;
}
$code = "A47";
$patient = new CPatient();
$patient->load($idex->object_id);
$patient->_receiver = $receiver;
$patient->_patient_elimine = clone $patient;
// Affecte le nouvel IPP au patient
$patient->_IPP = $idex->id400;
// Affecte l'ancien IPP au "patient éliminé"
$patient->_patient_elimine->_IPP = $idex->_old->id400;
if (!$this->isMessageSupported($this->transaction, $this->message, $code, $receiver)) {
return;
}
$this->sendITI($this->profil, $this->transaction, $this->message, $code, $patient);
return;
} else {
if ($mbObject->_naissance) {
return;
}
switch ($mbObject->_ref_current_log->type) {
case "create":
$code = "A28";
break;
case "store":
// Patient lié
if ($mbObject->fieldModified("patient_link_id")) {
$code = "A24";
break;
}
// Annulation de la liaison avec le patient lié
if ($mbObject->_old->patient_link_id && !$mbObject->patient_link_id) {
$code = "A37";
break;
}
if ($receiver->_configs["send_patient_with_visit"]) {
/** @var CPatient $mbObject */
$sejour = $mbObject->loadRefsSejours(array("entree_reelle" => "IS NOT NULL"));
if (count($sejour) < 1) {
$code = null;
break;
}
}
if ($receiver->_configs["send_patient_with_current_admit"]) {
// On charge seulement le séjour courant pour le patient
$sejours = $mbObject->getCurrSejour(null, $receiver->group_id);
if (!$sejours) {
break;
}
$sejour = reset($sejours);
if (!$sejour->_id) {
break;
}
$mbObject->_ref_sejour = $sejour;
}
// Dans tous les autres cas il s'agit d'une modification
$code = $receiver->_configs["send_update_patient_information"] == "A08" ? "A08" : "A31";
break;
default:
$code = null;
}
}
if (!$code) {
return;
//.........这里部分代码省略.........
示例10: CSmartyDP
$smarty = new CSmartyDP();
// Pour l'établissement courant
if ($view_current) {
$etab = CGroups::loadCurrent();
$current_group = $etab->_id;
$res_current_etab = array();
$where = array();
$ljoin = array();
// - Nombre de séjours
$tag_NDA = CSejour::getTagNDA($current_group);
$where["tag"] = " = '{$tag_NDA}'";
$where["object_class"] = " = 'CSejour'";
$idex = new CIdSante400();
$res_current_etab["CSejour-_NDA"] = $idex->countList($where);
// - Patients IPP
$tag_ipp = CPatient::getTagIPP($current_group);
$where["tag"] = " = '{$tag_ipp}'";
$where["object_class"] = " = 'CPatient'";
$idex = new CIdSante400();
$res_current_etab["CPatient-_IPP"] = $idex->countList($where);
// - Nombre de consultations
$where = array();
$consultation = new CConsultation();
$ljoin["plageconsult"] = "consultation.plageconsult_id = plageconsult.plageconsult_id";
$ljoin["users_mediboard"] = "plageconsult.chir_id = users_mediboard.user_id";
$ljoin["functions_mediboard"] = "users_mediboard.function_id = functions_mediboard.function_id";
$where["functions_mediboard.group_id"] = " = '{$current_group}'";
$res_current_etab["CConsultation"] = $consultation->countList($where, null, $ljoin);
// - Lits
$ljoin = array();
$where = array();