/**
  * Retourne un HealthCareFacility
  *
  * @return CCDAPOCD_MT000040_HealthCareFacility
  */
 function setHealthCareFacility()
 {
     $healt = new CCDAPOCD_MT000040_HealthCareFacility();
     $valeur = self::$cda_factory->healt_care;
     $ce = new CCDACE();
     $ce->setCode($valeur["code"]);
     $ce->setCodeSystem($valeur["codeSystem"]);
     $ce->setDisplayName($valeur["displayName"]);
     $healt->setCode($ce);
     return $healt;
 }
 /**
  * Retourne le code associé au sexe de la personne
  *
  * @param String $sexe String
  *
  * @return CCDACE
  */
 function getAdministrativeGenderCode($sexe)
 {
     $ce = new CCDACE();
     $ce->setCode(mb_strtoupper($sexe));
     $ce->setCodeSystem("2.16.840.1.113883.5.1");
     switch ($sexe) {
         case "f":
             $ce->setDisplayName("Féminin");
             break;
         case "m":
             $ce->setDisplayName("Masculin");
             break;
         default:
             $ce->setCode("U");
             $ce->setDisplayName("Inconnu");
     }
     return $ce;
 }
 /**
  * Création d'une organisation
  *
  * @param CMediUsers $user CMediUsers
  *
  * @return CCDAPOCD_MT000040_Organization
  */
 function setOrganization($user)
 {
     $factory = self::$cda_factory;
     $organization = new CCDAPOCD_MT000040_Organization();
     $user->loadRefFunction();
     $etablissement = $user->_ref_function->loadRefGroup();
     $this->setIdEtablissement($organization, $etablissement);
     $ii = new CCDAII();
     $ii->setRoot($factory->root);
     $organization->appendId($ii);
     $insdustry = $factory->industry_code;
     $ce = new CCDACE();
     $ce->setCode($insdustry["code"]);
     $ce->setDisplayName($insdustry["displayName"]);
     $ce->setCodeSystem($insdustry["codeSystem"]);
     $organization->setStandardIndustryClassCode($ce);
     if ($etablissement->raison_sociale) {
         $name = $etablissement->raison_sociale;
     } else {
         $name = $etablissement->text;
     }
     $on = new CCDAON();
     $on->setData($name);
     $organization->appendName($on);
     $tel = new CCDATEL();
     $tel->setValue("tel:{$etablissement->tel}");
     $organization->appendTelecom($tel);
     $ad = new CCDAAD();
     $street = new CCDA_adxp_streetAddressLine();
     $street->setData($etablissement->adresse);
     $street2 = new CCDA_adxp_streetAddressLine();
     $street2->setData($etablissement->cp . " " . $etablissement->ville);
     $ad->append("streetAddressLine", $street);
     $ad->append("streetAddressLine", $street2);
     $organization->appendAddr($ad);
     return $organization;
 }
 /**
  * Création d'un clinicalDocument
  *
  * @return CCDAPOCD_MT000040_ClinicalDocument
  */
 function setClinicalDocument()
 {
     $factory = self::$cda_factory;
     $participation = parent::$participation;
     $actRelationship = parent::$actRelationship;
     //déclaration du document
     $clinicaldocument = new CCDAPOCD_MT000040_ClinicalDocument();
     /**
      * Création de l'entête
      */
     //Création de l'Id du document
     $ii = new CCDAII();
     $ii->setRoot($factory->id_cda);
     $clinicaldocument->setId($ii);
     //création du typeId
     $clinicaldocument->setTypeId();
     //Ajout du realmCode FR
     $cs = new CCDACS();
     $cs->setCode($factory->realm_code);
     $clinicaldocument->appendRealmCode($cs);
     //Ajout du code langage fr-FR
     $cs = new CCDACS();
     $cs->setCode($factory->langage);
     $clinicaldocument->setLanguageCode($cs);
     //Ajout de la confidentialité du document
     $confidentialite = $factory->confidentialite;
     $ce = new CCDACE();
     $ce->setCode($confidentialite["code"]);
     $ce->setCodeSystem($confidentialite["codeSystem"]);
     $ce->setDisplayName($confidentialite["displayName"]);
     $clinicaldocument->setConfidentialityCode($ce);
     //Ajout de la date de création du document
     $ts = new CCDATS();
     $ts->setValue($this->getTimeToUtc($factory->date_creation));
     $clinicaldocument->setEffectiveTime($ts);
     //Ajout du numéro de version
     $int = new CCDAINT();
     $int->setValue($factory->version);
     $clinicaldocument->setVersionNumber($int);
     //Ajout de l'identifiant du lot
     $ii = new CCDAII();
     $ii->setRoot($factory->id_cda_lot);
     $clinicaldocument->setSetId($ii);
     //Ajout du nom du document
     $st = new CCDAST();
     $st->setData($factory->nom);
     $clinicaldocument->setTitle($st);
     //Ajout du code du document (Jeux de valeurs)
     $ce = new CCDACE();
     $code = $factory->code;
     $ce->setCode($code["code"]);
     $ce->setCodeSystem($code["codeSystem"]);
     $ce->setDisplayName($code["displayName"]);
     $clinicaldocument->setCode($ce);
     /**
      * Déclaration Template
      */
     //conformité HL7
     foreach ($factory->templateId as $_templateId) {
         $clinicaldocument->appendTemplateId($_templateId);
     }
     /**
      * Création des éléments obligatoire constituant le document
      */
     //Ajout des patients
     $clinicaldocument->appendRecordTarget($participation->setRecordTarget());
     //Ajout de l'établissement
     $clinicaldocument->setCustodian($participation->setCustodian());
     //Ajout des auteurs
     $clinicaldocument->appendAuthor($participation->setAuthor());
     //Ajout de l'auteur legal
     $clinicaldocument->setLegalAuthenticator($participation->setLegalAuthenticator());
     //Ajout des actes médicaux(ccam et cim10)
     $clinicaldocument->appendDocumentationOf($actRelationship->setDocumentationOF());
     //Ajout de la rencontre(Contexte : séjour, consultation, opération)
     $clinicaldocument->setComponentOf($actRelationship->setComponentOf());
     //Ajout du document parent
     $clinicaldocument->appendRelatedDocument($actRelationship->appendRelatedDocument());
     /**
      * Création du corp du document
      */
     $clinicaldocument->setComponent($actRelationship->setComponent2());
     return $clinicaldocument;
 }