| @@ 37-99 (lines=63) @@ | ||
| 34 | * | |
| 35 | * @author Julien Fastré <[email protected]> | |
| 36 | */ | |
| 37 | class SingleComponent extends AbstractComponent implements HasTypeCode | |
| 38 | { | |
| 39 | /** | |
| 40 | * | |
| 41 | * @var SingleComponent\Section[] | |
| 42 | */ | |
| 43 | private $sections = array(); | |
| 44 | ||
| 45 | /** | |
| 46 | * | |
| 47 | * @return SingleComponent\Section[] | |
| 48 | */ | |
| 49 | public function getSections() | |
| 50 |     { | |
| 51 | return $this->sections; | |
| 52 | } | |
| 53 | ||
| 54 | /** | |
| 55 | * | |
| 56 | * @param SingleComponent\Section[] $sections | |
| 57 | * @return $this | |
| 58 | */ | |
| 59 | public function setSections($sections) | |
| 60 |     { | |
| 61 | $this->sections = array(); | |
| 62 | ||
| 63 |         foreach ($sections as $section) { | |
| 64 | $this->addSection($section); | |
| 65 | } | |
| 66 | ||
| 67 | return $this; | |
| 68 | } | |
| 69 | ||
| 70 | /** | |
| 71 | * | |
| 72 | * @param \PHPHealth\CDA\Component\SingleComponent\Section $section | |
| 73 | * @return $this | |
| 74 | */ | |
| 75 | public function addSection(SingleComponent\Section $section) | |
| 76 |     { | |
| 77 | $this->sections[] = $section; | |
| 78 | ||
| 79 | return $this; | |
| 80 | } | |
| 81 | ||
| 82 | public function getTypeCode(): string | |
| 83 |     { | |
| 84 | return 'COMP'; | |
| 85 | } | |
| 86 | ||
| 87 | ||
| 88 | public function toDOMElement(\DOMDocument $doc): \DOMElement | |
| 89 |     { | |
| 90 | $component = $doc->createElement(CDA::NS_CDA.'component'); | |
| 91 | $component->setAttribute(CDA::NS_CDA.'typeCode', $this->getTypeCode()); | |
| 92 | ||
| 93 |         foreach ($this->getSections() as $section) { | |
| 94 | $component->appendChild($section->toDOMElement($doc)); | |
| 95 | } | |
| 96 | ||
| 97 | return $component; | |
| 98 | } | |
| 99 | } | |
| 100 | ||
| @@ 36-82 (lines=47) @@ | ||
| 33 | * | |
| 34 | * @author Julien Fastré <[email protected]> | |
| 35 | */ | |
| 36 | class XMLBodyComponent extends AbstractComponent implements HasClassCode | |
| 37 | { | |
| 38 | /** | |
| 39 | * | |
| 40 | * @var AbstractComponent[] | |
| 41 | */ | |
| 42 | private $components = array(); | |
| 43 | ||
| 44 | public function getComponents(): array | |
| 45 |     { | |
| 46 | return $this->components; | |
| 47 | } | |
| 48 | ||
| 49 | public function setComponents(array $components) | |
| 50 |     { | |
| 51 | $this->components = $components; | |
| 52 | ||
| 53 | return $this; | |
| 54 | } | |
| 55 | ||
| 56 | public function addComponent(SingleComponent $component) | |
| 57 |     { | |
| 58 | $this->components[] = $component; | |
| 59 | ||
| 60 | return $this; | |
| 61 | } | |
| 62 | ||
| 63 | public function getClassCode(): string | |
| 64 |     { | |
| 65 | return 'DOCBODY'; | |
| 66 | } | |
| 67 | ||
| 68 | ||
| 69 | public function toDOMElement(\DOMDocument $doc): \DOMElement | |
| 70 |     { | |
| 71 | $structuredBody = $doc->createElement(CDA::NS_CDA.'structuredBody'); | |
| 72 | $structuredBody->setAttribute(CDA::NS_CDA.'classCode', | |
| 73 | $this->getClassCode()); | |
| 74 | ||
| 75 | ||
| 76 |         foreach ($this->getComponents() as $component) { | |
| 77 | $structuredBody->appendChild($component->toDOMElement($doc)); | |
| 78 | } | |
| 79 | ||
| 80 | return $structuredBody; | |
| 81 | } | |
| 82 | } | |
| 83 | ||