/**
  * Création de l'actrelationship Component
  *
  * @return CCDAPOCD_MT000040_Component2
  */
 function setComponent2()
 {
     $component2 = new CCDAPOCD_MT000040_Component2();
     if (parent::$cda_factory->level == 1) {
         $component2->setNonXMLBody(parent::$act->setNonXMLBody());
     } else {
         $component2->setStructuredBody(parent::$act->setStructuredBody());
     }
     return $component2;
 }
 /**
  * Fonction permettant de tester la classe
  *
  * @return array
  */
 function test()
 {
     $tabTest = parent::test();
     /**
      * Test avec un Id incorrect
      */
     $ii = new CCDAII();
     $ii->setRoot("4TESTTEST");
     $this->setId($ii);
     $tabTest[] = $this->sample("Test avec un Id incorrect", "Document invalide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un Id correct
      */
     $ii->setRoot("1.2.250.1.213.1.1.9");
     $this->setId($ii);
     $tabTest[] = $this->sample("Test avec un Id correct", "Document invalide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un code incorrect
      */
     $ce = new CCDACE();
     $ce->setCode(" ");
     $this->setCode($ce);
     $tabTest[] = $this->sample("Test avec un code incorrect", "Document invalide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un code correct
      */
     $ce->setCode("SYNTH");
     $this->setCode($ce);
     $tabTest[] = $this->sample("Test avec un code correct", "Document invalide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec deux templateId correcte
      */
     $ii = new CCDAII();
     $ii->setRoot("1.2.5");
     $this->appendTemplateId($ii);
     $tabTest[] = $this->sample("Test avec deux templateId correct", "Document invalide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec trois templateId correcte
      */
     $ii = new CCDAII();
     $ii->setRoot("1.2.5.6");
     $this->appendTemplateId($ii);
     $tabTest[] = $this->sample("Test avec trois templateId correct", "Document invalide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un author correcte
      */
     $auth = new CCDAPOCD_MT000040_Author();
     $ts = new CCDATS();
     $ts->setValue("24141331462095.812975314545697850652375076363185459409261232419230495159675586");
     $auth->setTime($ts);
     $assigned = new CCDAPOCD_MT000040_AssignedAuthor();
     $ii = new CCDAII();
     $ii->setRoot("1.2.5");
     $assigned->appendId($ii);
     $auth->setAssignedAuthor($assigned);
     $this->appendAuthor($auth);
     $tabTest[] = $this->sample("Test avec un author correct", "Document invalide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un custodian correcte
      */
     $custo = new CCDAPOCD_MT000040_Custodian();
     $assign = new CCDAPOCD_MT000040_AssignedCustodian();
     $custoOrg = new CCDAPOCD_MT000040_CustodianOrganization();
     $ii = new CCDAII();
     $ii->setRoot("1.25.2");
     $custoOrg->appendId($ii);
     $assign->setRepresentedCustodianOrganization($custoOrg);
     $custo->setAssignedCustodian($assign);
     $this->setCustodian($custo);
     $tabTest[] = $this->sample("Test avec un custodian correct", "Document invalide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un recordTarget correcte
      */
     $reco = new CCDAPOCD_MT000040_RecordTarget();
     $rolePatient = new CCDAPOCD_MT000040_PatientRole();
     $ii = new CCDAII();
     $ii->setRoot("1.2.250.1.213.1.1.9");
     $rolePatient->appendId($ii);
     $reco->setPatientRole($rolePatient);
     $this->appendRecordTarget($reco);
     $tabTest[] = $this->sample("Test avec un recordTarget correct", "Document invalide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un effectiveTime incorrect
      */
     $ts = new CCDATS();
     $ts->setValue("TEST");
     $this->setEffectiveTime($ts);
     $tabTest[] = $this->sample("Test avec un effectiveTime incorrect", "Document invalide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un effectiveTime correct
      */
     $ts->setValue("75679245900741.869627871786625715081550660290154484483335306381809807748522068");
     $this->setEffectiveTime($ts);
     $tabTest[] = $this->sample("Test avec un effectiveTime correct", "Document invalide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un confidentialityCode incorrect
      */
     $ce = new CCDACE();
     $ce->setCode(" ");
     $this->setConfidentialityCode($ce);
     $tabTest[] = $this->sample("Test avec un confidentialityCode incorrect", "Document invalide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un confidentialityCode correct
      */
     $ce->setCode("TEST");
     $this->setConfidentialityCode($ce);
     $tabTest[] = $this->sample("Test avec un confidentialityCode correct", "Document invalide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un component correcte
      */
     $comp = new CCDAPOCD_MT000040_Component2();
     $nonXML = new CCDAPOCD_MT000040_NonXMLBody();
     $ed = new CCDAED();
     $ed->setLanguage("TEST");
     $nonXML->setText($ed);
     $comp->setNonXMLBody($nonXML);
     $this->setComponent($comp);
     $tabTest[] = $this->sample("Test avec un component correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un classCode correcte
      */
     $this->setClassCode();
     $tabTest[] = $this->sample("Test avec un classCode correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un moodCode correcte
      */
     $this->setMoodCode();
     $tabTest[] = $this->sample("Test avec un moodCode correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un title correct
      */
     $st = new CCDAST();
     $st->setData("TEST");
     $this->setTitle($st);
     $tabTest[] = $this->sample("Test avec un title correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un languageCode incorrect
      */
     $cs = new CCDACS();
     $cs->setCode(" ");
     $this->setLanguageCode($cs);
     $tabTest[] = $this->sample("Test avec un languageCode incorrect", "Document invalide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un languageCode correct
      */
     $cs->setCode("TEST");
     $this->setLanguageCode($cs);
     $tabTest[] = $this->sample("Test avec un languageCode correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un setId incorrect
      */
     $ii = new CCDAII();
     $ii->setRoot("4TESTTEST");
     $this->setSetId($ii);
     $tabTest[] = $this->sample("Test avec un setId incorrect", "Document invalide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un setId correct
      */
     $ii->setRoot("1.25.4");
     $this->setSetId($ii);
     $tabTest[] = $this->sample("Test avec un setId correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un versionNumber incorrect
      */
     $int = new CCDAINT();
     $int->setValue("10.25");
     $this->setVersionNumber($int);
     $tabTest[] = $this->sample("Test avec un versionNumber incorrect", "Document invalide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un versionNumber correct
      */
     $int->setValue("10");
     $this->setVersionNumber($int);
     $tabTest[] = $this->sample("Test avec un versionNumber correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un copyTime incorrect
      */
     $ts = new CCDATS();
     $ts->setValue("TEST");
     $this->setCopyTime($ts);
     $tabTest[] = $this->sample("Test avec un copyTime incorrect", "Document invalide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un copyTime correct
      */
     $ts->setValue("75679245900741.869627871786625715081550660290154484483335306381809807748522068");
     $this->setCopyTime($ts);
     $tabTest[] = $this->sample("Test avec un copyTime correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un dataEnterer correct
      */
     $data = new CCDAPOCD_MT000040_DataEnterer();
     $assign = new CCDAPOCD_MT000040_AssignedEntity();
     $ii = new CCDAII();
     $ii->setRoot("1.2.5");
     $assign->appendId($ii);
     $data->setAssignedEntity($assign);
     $this->setDataEnterer($data);
     $tabTest[] = $this->sample("Test avec un dataEnterer correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un informant correct
      */
     $infor = new CCDAPOCD_MT000040_Informant12();
     $assigned = new CCDAPOCD_MT000040_AssignedEntity();
     $ii = new CCDAII();
     $ii->setRoot("1.2.5");
     $assigned->appendId($ii);
     $infor->setAssignedEntity($assigned);
     $this->appendInformant($infor);
     $tabTest[] = $this->sample("Test avec un informant correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un informationRecipient correct
      */
     $inforReci = new CCDAPOCD_MT000040_InformationRecipient();
     $inten = new CCDAPOCD_MT000040_IntendedRecipient();
     $inten->setTypeId();
     $inforReci->setIntendedRecipient($inten);
     $this->appendInformationRecipient($inforReci);
     $tabTest[] = $this->sample("Test avec un informationRecipient correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un legalAuthenticator correct
      */
     $legal = new CCDAPOCD_MT000040_LegalAuthenticator();
     $ts = new CCDATS();
     $ts->setValue("24141331462095.812975314545697850652375076363185459409261232419230495159675586");
     $legal->setTime($ts);
     $cs = new CCDACS();
     $cs->setCode("TEST");
     $legal->setSignatureCode($cs);
     $assigned = new CCDAPOCD_MT000040_AssignedEntity();
     $ii = new CCDAII();
     $ii->setRoot("1.2.5");
     $assigned->appendId($ii);
     $legal->setAssignedEntity($assigned);
     $tabTest[] = $this->sample("Test avec un legalAuthenticator correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un authenticator correct
      */
     $authen = new CCDAPOCD_MT000040_Authenticator();
     $ts = new CCDATS();
     $ts->setValue("24141331462095.812975314545697850652375076363185459409261232419230495159675586");
     $authen->setTime($ts);
     $cs = new CCDACS();
     $cs->setCode("TEST");
     $authen->setSignatureCode($cs);
     $assigned = new CCDAPOCD_MT000040_AssignedEntity();
     $ii = new CCDAII();
     $ii->setRoot("1.2.5");
     $assigned->appendId($ii);
     $authen->setAssignedEntity($assigned);
     $tabTest[] = $this->sample("Test avec un authenticator correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un participant correct
      */
     $part = new CCDAPOCD_MT000040_Participant1();
     $associated = new CCDAPOCD_MT000040_AssociatedEntity();
     $associated->setClassCode("RoleClassPassive");
     $part->setAssociatedEntity($associated);
     $part->setTypeCode("CST");
     $this->appendParticipant($part);
     $tabTest[] = $this->sample("Test avec un participant correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un inFulfillmentOf correct
      */
     $inFull = new CCDAPOCD_MT000040_InFulfillmentOf();
     $ord = new CCDAPOCD_MT000040_Order();
     $ii = new CCDAII();
     $ii->setRoot("1.2.5");
     $ord->appendId($ii);
     $inFull->setOrder($ord);
     $this->appendInFulfillmentOf($inFull);
     $tabTest[] = $this->sample("Test avec un inFulfillmentOf correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un documentationOf correct
      */
     $doc = new CCDAPOCD_MT000040_DocumentationOf();
     $event = new CCDAPOCD_MT000040_ServiceEvent();
     $event->setMoodCode();
     $doc->setServiceEvent($event);
     $this->appendDocumentationOf($doc);
     $tabTest[] = $this->sample("Test avec un documentationOf correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un relatedDocument correct
      */
     $rela = new CCDAPOCD_MT000040_RelatedDocument();
     $parent = new CCDAPOCD_MT000040_ParentDocument();
     $ii = new CCDAII();
     $ii->setRoot("1.2.5");
     $parent->appendId($ii);
     $rela->setParentDocument($parent);
     $rela->setTypeCode("RPLC");
     $this->appendRelatedDocument($rela);
     $tabTest[] = $this->sample("Test avec un relatedDocument correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un authorization correct
      */
     $autho = new CCDAPOCD_MT000040_Authorization();
     $pocConsent = new CCDAPOCD_MT000040_Consent();
     $cs = new CCDACS();
     $cs->setCode(" ");
     $pocConsent->setStatusCode($cs);
     $autho->setConsent($pocConsent);
     $autho->setTypeCode();
     $cs->setCode("TEST");
     $pocConsent->setStatusCode($cs);
     $autho->setConsent($pocConsent);
     $this->appendAuthorization($autho);
     $tabTest[] = $this->sample("Test avec un authorization correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     /**
      * Test avec un componentOf correct
      */
     $compOf = new CCDAPOCD_MT000040_Component1();
     $encou = new CCDAPOCD_MT000040_EncompassingEncounter();
     $ivl_ts = new CCDAIVL_TS();
     $hi = new CCDAIVXB_TS();
     $hi->setValue("75679245900741.869627871786625715081550660290154484483335306381809807748522068");
     $ivl_ts->setHigh($hi);
     $encou->setEffectiveTime($ivl_ts);
     $compOf->setEncompassingEncounter($encou);
     $this->setComponentOf($compOf);
     $tabTest[] = $this->sample("Test avec un componentOf correct", "Document valide");
     /*-------------------------------------------------------------------------------------*/
     return $tabTest;
 }