@@ 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 |