@andes/fhir 1.12.0 → 1.12.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/LICENSE +674 -674
  2. package/README.md +2 -2
  3. package/{src → dist}/data/patient.json +192 -192
  4. package/dist/helpers/patientFactory.d.ts +26 -0
  5. package/dist/{src/helpers → helpers}/patientFactory.js +35 -31
  6. package/dist/index.d.ts +15 -0
  7. package/dist/index.js +55 -52
  8. package/dist/lib/allergyIntolerance.d.ts +29 -0
  9. package/dist/{src/lib → lib}/allergyIntolerance.js +39 -40
  10. package/dist/lib/bundle.d.ts +14 -0
  11. package/dist/{src/lib → lib}/bundle.js +25 -26
  12. package/dist/lib/composition.d.ts +47 -0
  13. package/dist/{src/lib → lib}/composition.js +152 -152
  14. package/dist/lib/condition.d.ts +53 -0
  15. package/dist/{src/lib → lib}/condition.js +79 -80
  16. package/dist/lib/config.d.ts +9 -0
  17. package/dist/{src/lib → lib}/config.js +27 -21
  18. package/dist/lib/config.test.d.ts +1 -0
  19. package/dist/lib/config.test.js +19 -0
  20. package/dist/lib/device.d.ts +22 -0
  21. package/dist/{src/lib → lib}/device.js +38 -39
  22. package/dist/lib/device.test.d.ts +1 -0
  23. package/dist/lib/device.test.js +9 -0
  24. package/dist/lib/document-reference.d.ts +71 -0
  25. package/dist/{src/lib → lib}/document-reference.js +106 -107
  26. package/dist/lib/immunization.d.ts +44 -0
  27. package/dist/{src/lib → lib}/immunization.js +67 -68
  28. package/dist/lib/medication.d.ts +25 -0
  29. package/{src/lib/medication.ts → dist/lib/medication.js} +64 -61
  30. package/dist/lib/medicationRequest.d.ts +42 -0
  31. package/{src/lib/medicationRequest.ts → dist/lib/medicationRequest.js} +103 -100
  32. package/dist/lib/medicationStatement.d.ts +47 -0
  33. package/dist/{src/lib → lib}/medicationStatement.js +55 -56
  34. package/dist/lib/organization.d.ts +6 -0
  35. package/dist/lib/organization.js +93 -0
  36. package/dist/lib/patient.d.ts +14 -0
  37. package/dist/lib/patient.js +465 -0
  38. package/dist/lib/patient.test.d.ts +1 -0
  39. package/dist/{src/lib → lib}/patient.test.js +132 -113
  40. package/dist/lib/practitioner.d.ts +6 -0
  41. package/dist/lib/practitioner.js +186 -0
  42. package/dist/types/andes/organization.types.d.ts +39 -0
  43. package/dist/types/andes/organization.types.js +2 -0
  44. package/dist/types/andes/patient.types.d.ts +57 -0
  45. package/dist/types/andes/patient.types.js +2 -0
  46. package/dist/types/andes/practitioner.types.d.ts +72 -0
  47. package/dist/types/andes/practitioner.types.js +3 -0
  48. package/package.json +56 -45
  49. package/.circleci/config.yml +0 -72
  50. package/.editorconfig +0 -14
  51. package/.env.example +0 -2
  52. package/.gitattributes +0 -1
  53. package/.github/CODEOWNERS +0 -1
  54. package/.github/labeler.yml +0 -11
  55. package/.github/pull_request_template.md +0 -28
  56. package/.github/workflows/build_test.yml +0 -14
  57. package/.github/workflows/has_conflicts.yml +0 -13
  58. package/.vscode/settings.json +0 -2
  59. package/CHANGELOG.md +0 -351
  60. package/coverage/clover.xml +0 -209
  61. package/coverage/coverage-final.json +0 -5
  62. package/coverage/lcov-report/base.css +0 -224
  63. package/coverage/lcov-report/block-navigation.js +0 -87
  64. package/coverage/lcov-report/config.ts.html +0 -136
  65. package/coverage/lcov-report/device.ts.html +0 -193
  66. package/coverage/lcov-report/favicon.png +0 -0
  67. package/coverage/lcov-report/helpers/index.html +0 -116
  68. package/coverage/lcov-report/helpers/patientFactory.ts.html +0 -124
  69. package/coverage/lcov-report/index.html +0 -131
  70. package/coverage/lcov-report/lib/config.ts.html +0 -136
  71. package/coverage/lcov-report/lib/device.ts.html +0 -193
  72. package/coverage/lcov-report/lib/index.html +0 -146
  73. package/coverage/lcov-report/lib/patient.ts.html +0 -1318
  74. package/coverage/lcov-report/patient.ts.html +0 -1207
  75. package/coverage/lcov-report/prettify.css +0 -1
  76. package/coverage/lcov-report/prettify.js +0 -2
  77. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  78. package/coverage/lcov-report/sorter.js +0 -210
  79. package/coverage/lcov.info +0 -425
  80. package/dist/index.js.map +0 -1
  81. package/dist/src/data/patient.json +0 -192
  82. package/dist/src/helpers/patientFactory.js.map +0 -1
  83. package/dist/src/lib/allergyIntolerance.js.map +0 -1
  84. package/dist/src/lib/bundle.js.map +0 -1
  85. package/dist/src/lib/composition.js.map +0 -1
  86. package/dist/src/lib/condition.js.map +0 -1
  87. package/dist/src/lib/config.js.map +0 -1
  88. package/dist/src/lib/config.test.js +0 -13
  89. package/dist/src/lib/config.test.js.map +0 -1
  90. package/dist/src/lib/device.js.map +0 -1
  91. package/dist/src/lib/device.test.js +0 -10
  92. package/dist/src/lib/device.test.js.map +0 -1
  93. package/dist/src/lib/document-reference.js.map +0 -1
  94. package/dist/src/lib/immunization.js.map +0 -1
  95. package/dist/src/lib/medication.js +0 -65
  96. package/dist/src/lib/medication.js.map +0 -1
  97. package/dist/src/lib/medicationRequest.js +0 -103
  98. package/dist/src/lib/medicationRequest.js.map +0 -1
  99. package/dist/src/lib/medicationStatement.js.map +0 -1
  100. package/dist/src/lib/organization.js +0 -91
  101. package/dist/src/lib/organization.js.map +0 -1
  102. package/dist/src/lib/patient.js +0 -397
  103. package/dist/src/lib/patient.js.map +0 -1
  104. package/dist/src/lib/patient.test.js.map +0 -1
  105. package/dist/src/lib/practitioner.js +0 -161
  106. package/dist/src/lib/practitioner.js.map +0 -1
  107. package/index.ts +0 -30
  108. package/jest.config.js +0 -12
  109. package/release.config.js +0 -74
  110. package/src/helpers/patientFactory.ts +0 -13
  111. package/src/lib/allergyIntolerance.ts +0 -36
  112. package/src/lib/bundle.ts +0 -19
  113. package/src/lib/composition.ts +0 -153
  114. package/src/lib/condition.ts +0 -80
  115. package/src/lib/config.test.ts +0 -13
  116. package/src/lib/config.ts +0 -17
  117. package/src/lib/device.test.ts +0 -9
  118. package/src/lib/device.ts +0 -36
  119. package/src/lib/document-reference.ts +0 -102
  120. package/src/lib/immunization.ts +0 -64
  121. package/src/lib/medicationStatement.ts +0 -52
  122. package/src/lib/organization.ts +0 -89
  123. package/src/lib/patient.test.ts +0 -101
  124. package/src/lib/patient.ts +0 -411
  125. package/src/lib/practitioner.ts +0 -157
  126. package/tsconfig.test.json +0 -18
  127. package/tslint.json +0 -139
@@ -1,1318 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for lib/patient.ts</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../prettify.css" />
9
- <link rel="stylesheet" href="../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../index.html">All files</a> / <a href="index.html">lib</a> patient.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">55.3% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>99/179</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">31.78% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>41/129</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">41.93% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>13/31</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">55.95% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>94/168</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line medium'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a>
381
- <a name='L316'></a><a href='#L316'>316</a>
382
- <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a>
385
- <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a>
387
- <a name='L322'></a><a href='#L322'>322</a>
388
- <a name='L323'></a><a href='#L323'>323</a>
389
- <a name='L324'></a><a href='#L324'>324</a>
390
- <a name='L325'></a><a href='#L325'>325</a>
391
- <a name='L326'></a><a href='#L326'>326</a>
392
- <a name='L327'></a><a href='#L327'>327</a>
393
- <a name='L328'></a><a href='#L328'>328</a>
394
- <a name='L329'></a><a href='#L329'>329</a>
395
- <a name='L330'></a><a href='#L330'>330</a>
396
- <a name='L331'></a><a href='#L331'>331</a>
397
- <a name='L332'></a><a href='#L332'>332</a>
398
- <a name='L333'></a><a href='#L333'>333</a>
399
- <a name='L334'></a><a href='#L334'>334</a>
400
- <a name='L335'></a><a href='#L335'>335</a>
401
- <a name='L336'></a><a href='#L336'>336</a>
402
- <a name='L337'></a><a href='#L337'>337</a>
403
- <a name='L338'></a><a href='#L338'>338</a>
404
- <a name='L339'></a><a href='#L339'>339</a>
405
- <a name='L340'></a><a href='#L340'>340</a>
406
- <a name='L341'></a><a href='#L341'>341</a>
407
- <a name='L342'></a><a href='#L342'>342</a>
408
- <a name='L343'></a><a href='#L343'>343</a>
409
- <a name='L344'></a><a href='#L344'>344</a>
410
- <a name='L345'></a><a href='#L345'>345</a>
411
- <a name='L346'></a><a href='#L346'>346</a>
412
- <a name='L347'></a><a href='#L347'>347</a>
413
- <a name='L348'></a><a href='#L348'>348</a>
414
- <a name='L349'></a><a href='#L349'>349</a>
415
- <a name='L350'></a><a href='#L350'>350</a>
416
- <a name='L351'></a><a href='#L351'>351</a>
417
- <a name='L352'></a><a href='#L352'>352</a>
418
- <a name='L353'></a><a href='#L353'>353</a>
419
- <a name='L354'></a><a href='#L354'>354</a>
420
- <a name='L355'></a><a href='#L355'>355</a>
421
- <a name='L356'></a><a href='#L356'>356</a>
422
- <a name='L357'></a><a href='#L357'>357</a>
423
- <a name='L358'></a><a href='#L358'>358</a>
424
- <a name='L359'></a><a href='#L359'>359</a>
425
- <a name='L360'></a><a href='#L360'>360</a>
426
- <a name='L361'></a><a href='#L361'>361</a>
427
- <a name='L362'></a><a href='#L362'>362</a>
428
- <a name='L363'></a><a href='#L363'>363</a>
429
- <a name='L364'></a><a href='#L364'>364</a>
430
- <a name='L365'></a><a href='#L365'>365</a>
431
- <a name='L366'></a><a href='#L366'>366</a>
432
- <a name='L367'></a><a href='#L367'>367</a>
433
- <a name='L368'></a><a href='#L368'>368</a>
434
- <a name='L369'></a><a href='#L369'>369</a>
435
- <a name='L370'></a><a href='#L370'>370</a>
436
- <a name='L371'></a><a href='#L371'>371</a>
437
- <a name='L372'></a><a href='#L372'>372</a>
438
- <a name='L373'></a><a href='#L373'>373</a>
439
- <a name='L374'></a><a href='#L374'>374</a>
440
- <a name='L375'></a><a href='#L375'>375</a>
441
- <a name='L376'></a><a href='#L376'>376</a>
442
- <a name='L377'></a><a href='#L377'>377</a>
443
- <a name='L378'></a><a href='#L378'>378</a>
444
- <a name='L379'></a><a href='#L379'>379</a>
445
- <a name='L380'></a><a href='#L380'>380</a>
446
- <a name='L381'></a><a href='#L381'>381</a>
447
- <a name='L382'></a><a href='#L382'>382</a>
448
- <a name='L383'></a><a href='#L383'>383</a>
449
- <a name='L384'></a><a href='#L384'>384</a>
450
- <a name='L385'></a><a href='#L385'>385</a>
451
- <a name='L386'></a><a href='#L386'>386</a>
452
- <a name='L387'></a><a href='#L387'>387</a>
453
- <a name='L388'></a><a href='#L388'>388</a>
454
- <a name='L389'></a><a href='#L389'>389</a>
455
- <a name='L390'></a><a href='#L390'>390</a>
456
- <a name='L391'></a><a href='#L391'>391</a>
457
- <a name='L392'></a><a href='#L392'>392</a>
458
- <a name='L393'></a><a href='#L393'>393</a>
459
- <a name='L394'></a><a href='#L394'>394</a>
460
- <a name='L395'></a><a href='#L395'>395</a>
461
- <a name='L396'></a><a href='#L396'>396</a>
462
- <a name='L397'></a><a href='#L397'>397</a>
463
- <a name='L398'></a><a href='#L398'>398</a>
464
- <a name='L399'></a><a href='#L399'>399</a>
465
- <a name='L400'></a><a href='#L400'>400</a>
466
- <a name='L401'></a><a href='#L401'>401</a>
467
- <a name='L402'></a><a href='#L402'>402</a>
468
- <a name='L403'></a><a href='#L403'>403</a>
469
- <a name='L404'></a><a href='#L404'>404</a>
470
- <a name='L405'></a><a href='#L405'>405</a>
471
- <a name='L406'></a><a href='#L406'>406</a>
472
- <a name='L407'></a><a href='#L407'>407</a>
473
- <a name='L408'></a><a href='#L408'>408</a>
474
- <a name='L409'></a><a href='#L409'>409</a>
475
- <a name='L410'></a><a href='#L410'>410</a>
476
- <a name='L411'></a><a href='#L411'>411</a>
477
- <a name='L412'></a><a href='#L412'>412</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
478
- <span class="cline-any cline-yes">1x</span>
479
- <span class="cline-any cline-neutral">&nbsp;</span>
480
- <span class="cline-any cline-neutral">&nbsp;</span>
481
- <span class="cline-any cline-neutral">&nbsp;</span>
482
- <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-yes">1x</span>
485
- <span class="cline-any cline-yes">8x</span>
486
- <span class="cline-any cline-yes">8x</span>
487
- <span class="cline-any cline-yes">8x</span>
488
- <span class="cline-any cline-neutral">&nbsp;</span>
489
- <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-neutral">&nbsp;</span>
491
- <span class="cline-any cline-yes">8x</span>
492
- <span class="cline-any cline-yes">8x</span>
493
- <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-neutral">&nbsp;</span>
497
- <span class="cline-any cline-yes">8x</span>
498
- <span class="cline-any cline-yes">8x</span>
499
- <span class="cline-any cline-neutral">&nbsp;</span>
500
- <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-neutral">&nbsp;</span>
502
- <span class="cline-any cline-neutral">&nbsp;</span>
503
- <span class="cline-any cline-yes">8x</span>
504
- <span class="cline-any cline-yes">4x</span>
505
- <span class="cline-any cline-yes">2x</span>
506
- <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-neutral">&nbsp;</span>
509
- <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-yes">4x</span>
511
- <span class="cline-any cline-yes">2x</span>
512
- <span class="cline-any cline-neutral">&nbsp;</span>
513
- <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-neutral">&nbsp;</span>
516
- <span class="cline-any cline-neutral">&nbsp;</span>
517
- <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-yes">16x</span>
519
- <span class="cline-any cline-yes">16x</span>
520
- <span class="cline-any cline-neutral">&nbsp;</span>
521
- <span class="cline-any cline-neutral">&nbsp;</span>
522
- <span class="cline-any cline-neutral">&nbsp;</span>
523
- <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-yes">16x</span>
525
- <span class="cline-any cline-neutral">&nbsp;</span>
526
- <span class="cline-any cline-no">&nbsp;</span>
527
- <span class="cline-any cline-no">&nbsp;</span>
528
- <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-yes">8x</span>
530
- <span class="cline-any cline-yes">8x</span>
531
- <span class="cline-any cline-neutral">&nbsp;</span>
532
- <span class="cline-any cline-yes">8x</span>
533
- <span class="cline-any cline-yes">8x</span>
534
- <span class="cline-any cline-neutral">&nbsp;</span>
535
- <span class="cline-any cline-yes">16x</span>
536
- <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-neutral">&nbsp;</span>
538
- <span class="cline-any cline-yes">16x</span>
539
- <span class="cline-any cline-yes">16x</span>
540
- <span class="cline-any cline-neutral">&nbsp;</span>
541
- <span class="cline-any cline-neutral">&nbsp;</span>
542
- <span class="cline-any cline-neutral">&nbsp;</span>
543
- <span class="cline-any cline-neutral">&nbsp;</span>
544
- <span class="cline-any cline-neutral">&nbsp;</span>
545
- <span class="cline-any cline-neutral">&nbsp;</span>
546
- <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-yes">16x</span>
548
- <span class="cline-any cline-neutral">&nbsp;</span>
549
- <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-yes">32x</span>
551
- <span class="cline-any cline-yes">32x</span>
552
- <span class="cline-any cline-neutral">&nbsp;</span>
553
- <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-neutral">&nbsp;</span>
556
- <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-neutral">&nbsp;</span>
558
- <span class="cline-any cline-neutral">&nbsp;</span>
559
- <span class="cline-any cline-neutral">&nbsp;</span>
560
- <span class="cline-any cline-neutral">&nbsp;</span>
561
- <span class="cline-any cline-yes">32x</span>
562
- <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-neutral">&nbsp;</span>
564
- <span class="cline-any cline-yes">8x</span>
565
- <span class="cline-any cline-neutral">&nbsp;</span>
566
- <span class="cline-any cline-no">&nbsp;</span>
567
- <span class="cline-any cline-no">&nbsp;</span>
568
- <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-yes">8x</span>
570
- <span class="cline-any cline-yes">8x</span>
571
- <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-no">&nbsp;</span>
573
- <span class="cline-any cline-no">&nbsp;</span>
574
- <span class="cline-any cline-neutral">&nbsp;</span>
575
- <span class="cline-any cline-yes">8x</span>
576
- <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-neutral">&nbsp;</span>
578
- <span class="cline-any cline-neutral">&nbsp;</span>
579
- <span class="cline-any cline-neutral">&nbsp;</span>
580
- <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-neutral">&nbsp;</span>
583
- <span class="cline-any cline-neutral">&nbsp;</span>
584
- <span class="cline-any cline-neutral">&nbsp;</span>
585
- <span class="cline-any cline-neutral">&nbsp;</span>
586
- <span class="cline-any cline-neutral">&nbsp;</span>
587
- <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-neutral">&nbsp;</span>
593
- <span class="cline-any cline-neutral">&nbsp;</span>
594
- <span class="cline-any cline-yes">8x</span>
595
- <span class="cline-any cline-no">&nbsp;</span>
596
- <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-yes">8x</span>
598
- <span class="cline-any cline-neutral">&nbsp;</span>
599
- <span class="cline-any cline-yes">8x</span>
600
- <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-no">&nbsp;</span>
602
- <span class="cline-any cline-no">&nbsp;</span>
603
- <span class="cline-any cline-neutral">&nbsp;</span>
604
- <span class="cline-any cline-no">&nbsp;</span>
605
- <span class="cline-any cline-no">&nbsp;</span>
606
- <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-no">&nbsp;</span>
608
- <span class="cline-any cline-no">&nbsp;</span>
609
- <span class="cline-any cline-neutral">&nbsp;</span>
610
- <span class="cline-any cline-yes">8x</span>
611
- <span class="cline-any cline-yes">8x</span>
612
- <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-no">&nbsp;</span>
614
- <span class="cline-any cline-no">&nbsp;</span>
615
- <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-yes">8x</span>
617
- <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-yes">8x</span>
621
- <span class="cline-any cline-no">&nbsp;</span>
622
- <span class="cline-any cline-neutral">&nbsp;</span>
623
- <span class="cline-any cline-neutral">&nbsp;</span>
624
- <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-yes">8x</span>
626
- <span class="cline-any cline-yes">8x</span>
627
- <span class="cline-any cline-neutral">&nbsp;</span>
628
- <span class="cline-any cline-yes">8x</span>
629
- <span class="cline-any cline-yes">8x</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-yes">8x</span>
632
- <span class="cline-any cline-yes">8x</span>
633
- <span class="cline-any cline-neutral">&nbsp;</span>
634
- <span class="cline-any cline-yes">8x</span>
635
- <span class="cline-any cline-neutral">&nbsp;</span>
636
- <span class="cline-any cline-neutral">&nbsp;</span>
637
- <span class="cline-any cline-neutral">&nbsp;</span>
638
- <span class="cline-any cline-yes">8x</span>
639
- <span class="cline-any cline-yes">8x</span>
640
- <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-no">&nbsp;</span>
642
- <span class="cline-any cline-neutral">&nbsp;</span>
643
- <span class="cline-any cline-neutral">&nbsp;</span>
644
- <span class="cline-any cline-neutral">&nbsp;</span>
645
- <span class="cline-any cline-neutral">&nbsp;</span>
646
- <span class="cline-any cline-neutral">&nbsp;</span>
647
- <span class="cline-any cline-neutral">&nbsp;</span>
648
- <span class="cline-any cline-neutral">&nbsp;</span>
649
- <span class="cline-any cline-yes">1x</span>
650
- <span class="cline-any cline-neutral">&nbsp;</span>
651
- <span class="cline-any cline-neutral">&nbsp;</span>
652
- <span class="cline-any cline-neutral">&nbsp;</span>
653
- <span class="cline-any cline-yes">2x</span>
654
- <span class="cline-any cline-neutral">&nbsp;</span>
655
- <span class="cline-any cline-no">&nbsp;</span>
656
- <span class="cline-any cline-no">&nbsp;</span>
657
- <span class="cline-any cline-no">&nbsp;</span>
658
- <span class="cline-any cline-neutral">&nbsp;</span>
659
- <span class="cline-any cline-yes">2x</span>
660
- <span class="cline-any cline-yes">2x</span>
661
- <span class="cline-any cline-yes">2x</span>
662
- <span class="cline-any cline-neutral">&nbsp;</span>
663
- <span class="cline-any cline-no">&nbsp;</span>
664
- <span class="cline-any cline-no">&nbsp;</span>
665
- <span class="cline-any cline-no">&nbsp;</span>
666
- <span class="cline-any cline-neutral">&nbsp;</span>
667
- <span class="cline-any cline-neutral">&nbsp;</span>
668
- <span class="cline-any cline-yes">36x</span>
669
- <span class="cline-any cline-yes">10x</span>
670
- <span class="cline-any cline-yes">6x</span>
671
- <span class="cline-any cline-neutral">&nbsp;</span>
672
- <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-yes">2x</span>
674
- <span class="cline-any cline-yes">2x</span>
675
- <span class="cline-any cline-neutral">&nbsp;</span>
676
- <span class="cline-any cline-neutral">&nbsp;</span>
677
- <span class="cline-any cline-yes">2x</span>
678
- <span class="cline-any cline-yes">4x</span>
679
- <span class="cline-any cline-yes">2x</span>
680
- <span class="cline-any cline-yes">2x</span>
681
- <span class="cline-any cline-neutral">&nbsp;</span>
682
- <span class="cline-any cline-neutral">&nbsp;</span>
683
- <span class="cline-any cline-yes">2x</span>
684
- <span class="cline-any cline-neutral">&nbsp;</span>
685
- <span class="cline-any cline-neutral">&nbsp;</span>
686
- <span class="cline-any cline-neutral">&nbsp;</span>
687
- <span class="cline-any cline-neutral">&nbsp;</span>
688
- <span class="cline-any cline-neutral">&nbsp;</span>
689
- <span class="cline-any cline-neutral">&nbsp;</span>
690
- <span class="cline-any cline-neutral">&nbsp;</span>
691
- <span class="cline-any cline-neutral">&nbsp;</span>
692
- <span class="cline-any cline-neutral">&nbsp;</span>
693
- <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-neutral">&nbsp;</span>
695
- <span class="cline-any cline-neutral">&nbsp;</span>
696
- <span class="cline-any cline-yes">2x</span>
697
- <span class="cline-any cline-yes">4x</span>
698
- <span class="cline-any cline-neutral">&nbsp;</span>
699
- <span class="cline-any cline-neutral">&nbsp;</span>
700
- <span class="cline-any cline-neutral">&nbsp;</span>
701
- <span class="cline-any cline-yes">4x</span>
702
- <span class="cline-any cline-neutral">&nbsp;</span>
703
- <span class="cline-any cline-yes">2x</span>
704
- <span class="cline-any cline-yes">2x</span>
705
- <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-yes">2x</span>
707
- <span class="cline-any cline-yes">2x</span>
708
- <span class="cline-any cline-neutral">&nbsp;</span>
709
- <span class="cline-any cline-yes">4x</span>
710
- <span class="cline-any cline-neutral">&nbsp;</span>
711
- <span class="cline-any cline-neutral">&nbsp;</span>
712
- <span class="cline-any cline-yes">2x</span>
713
- <span class="cline-any cline-yes">8x</span>
714
- <span class="cline-any cline-neutral">&nbsp;</span>
715
- <span class="cline-any cline-neutral">&nbsp;</span>
716
- <span class="cline-any cline-neutral">&nbsp;</span>
717
- <span class="cline-any cline-neutral">&nbsp;</span>
718
- <span class="cline-any cline-neutral">&nbsp;</span>
719
- <span class="cline-any cline-neutral">&nbsp;</span>
720
- <span class="cline-any cline-yes">8x</span>
721
- <span class="cline-any cline-neutral">&nbsp;</span>
722
- <span class="cline-any cline-neutral">&nbsp;</span>
723
- <span class="cline-any cline-yes">2x</span>
724
- <span class="cline-any cline-neutral">&nbsp;</span>
725
- <span class="cline-any cline-yes">2x</span>
726
- <span class="cline-any cline-neutral">&nbsp;</span>
727
- <span class="cline-any cline-no">&nbsp;</span>
728
- <span class="cline-any cline-no">&nbsp;</span>
729
- <span class="cline-any cline-neutral">&nbsp;</span>
730
- <span class="cline-any cline-no">&nbsp;</span>
731
- <span class="cline-any cline-no">&nbsp;</span>
732
- <span class="cline-any cline-neutral">&nbsp;</span>
733
- <span class="cline-any cline-no">&nbsp;</span>
734
- <span class="cline-any cline-no">&nbsp;</span>
735
- <span class="cline-any cline-neutral">&nbsp;</span>
736
- <span class="cline-any cline-yes">2x</span>
737
- <span class="cline-any cline-yes">2x</span>
738
- <span class="cline-any cline-neutral">&nbsp;</span>
739
- <span class="cline-any cline-no">&nbsp;</span>
740
- <span class="cline-any cline-no">&nbsp;</span>
741
- <span class="cline-any cline-neutral">&nbsp;</span>
742
- <span class="cline-any cline-yes">2x</span>
743
- <span class="cline-any cline-neutral">&nbsp;</span>
744
- <span class="cline-any cline-neutral">&nbsp;</span>
745
- <span class="cline-any cline-yes">2x</span>
746
- <span class="cline-any cline-yes">4x</span>
747
- <span class="cline-any cline-neutral">&nbsp;</span>
748
- <span class="cline-any cline-neutral">&nbsp;</span>
749
- <span class="cline-any cline-neutral">&nbsp;</span>
750
- <span class="cline-any cline-neutral">&nbsp;</span>
751
- <span class="cline-any cline-neutral">&nbsp;</span>
752
- <span class="cline-any cline-neutral">&nbsp;</span>
753
- <span class="cline-any cline-neutral">&nbsp;</span>
754
- <span class="cline-any cline-neutral">&nbsp;</span>
755
- <span class="cline-any cline-neutral">&nbsp;</span>
756
- <span class="cline-any cline-neutral">&nbsp;</span>
757
- <span class="cline-any cline-neutral">&nbsp;</span>
758
- <span class="cline-any cline-yes">4x</span>
759
- <span class="cline-any cline-neutral">&nbsp;</span>
760
- <span class="cline-any cline-neutral">&nbsp;</span>
761
- <span class="cline-any cline-yes">2x</span>
762
- <span class="cline-any cline-neutral">&nbsp;</span>
763
- <span class="cline-any cline-yes">2x</span>
764
- <span class="cline-any cline-yes">2x</span>
765
- <span class="cline-any cline-neutral">&nbsp;</span>
766
- <span class="cline-any cline-yes">2x</span>
767
- <span class="cline-any cline-yes">2x</span>
768
- <span class="cline-any cline-neutral">&nbsp;</span>
769
- <span class="cline-any cline-yes">2x</span>
770
- <span class="cline-any cline-no">&nbsp;</span>
771
- <span class="cline-any cline-neutral">&nbsp;</span>
772
- <span class="cline-any cline-neutral">&nbsp;</span>
773
- <span class="cline-any cline-yes">2x</span>
774
- <span class="cline-any cline-yes">2x</span>
775
- <span class="cline-any cline-neutral">&nbsp;</span>
776
- <span class="cline-any cline-neutral">&nbsp;</span>
777
- <span class="cline-any cline-yes">2x</span>
778
- <span class="cline-any cline-yes">2x</span>
779
- <span class="cline-any cline-neutral">&nbsp;</span>
780
- <span class="cline-any cline-neutral">&nbsp;</span>
781
- <span class="cline-any cline-neutral">&nbsp;</span>
782
- <span class="cline-any cline-neutral">&nbsp;</span>
783
- <span class="cline-any cline-neutral">&nbsp;</span>
784
- <span class="cline-any cline-neutral">&nbsp;</span>
785
- <span class="cline-any cline-neutral">&nbsp;</span>
786
- <span class="cline-any cline-yes">2x</span>
787
- <span class="cline-any cline-neutral">&nbsp;</span>
788
- <span class="cline-any cline-neutral">&nbsp;</span>
789
- <span class="cline-any cline-neutral">&nbsp;</span>
790
- <span class="cline-any cline-neutral">&nbsp;</span>
791
- <span class="cline-any cline-neutral">&nbsp;</span>
792
- <span class="cline-any cline-neutral">&nbsp;</span>
793
- <span class="cline-any cline-yes">1x</span>
794
- <span class="cline-any cline-no">&nbsp;</span>
795
- <span class="cline-any cline-no">&nbsp;</span>
796
- <span class="cline-any cline-neutral">&nbsp;</span>
797
- <span class="cline-any cline-no">&nbsp;</span>
798
- <span class="cline-any cline-no">&nbsp;</span>
799
- <span class="cline-any cline-no">&nbsp;</span>
800
- <span class="cline-any cline-no">&nbsp;</span>
801
- <span class="cline-any cline-no">&nbsp;</span>
802
- <span class="cline-any cline-neutral">&nbsp;</span>
803
- <span class="cline-any cline-no">&nbsp;</span>
804
- <span class="cline-any cline-no">&nbsp;</span>
805
- <span class="cline-any cline-no">&nbsp;</span>
806
- <span class="cline-any cline-neutral">&nbsp;</span>
807
- <span class="cline-any cline-no">&nbsp;</span>
808
- <span class="cline-any cline-no">&nbsp;</span>
809
- <span class="cline-any cline-neutral">&nbsp;</span>
810
- <span class="cline-any cline-no">&nbsp;</span>
811
- <span class="cline-any cline-no">&nbsp;</span>
812
- <span class="cline-any cline-neutral">&nbsp;</span>
813
- <span class="cline-any cline-no">&nbsp;</span>
814
- <span class="cline-any cline-no">&nbsp;</span>
815
- <span class="cline-any cline-neutral">&nbsp;</span>
816
- <span class="cline-any cline-no">&nbsp;</span>
817
- <span class="cline-any cline-no">&nbsp;</span>
818
- <span class="cline-any cline-neutral">&nbsp;</span>
819
- <span class="cline-any cline-no">&nbsp;</span>
820
- <span class="cline-any cline-no">&nbsp;</span>
821
- <span class="cline-any cline-neutral">&nbsp;</span>
822
- <span class="cline-any cline-no">&nbsp;</span>
823
- <span class="cline-any cline-no">&nbsp;</span>
824
- <span class="cline-any cline-neutral">&nbsp;</span>
825
- <span class="cline-any cline-neutral">&nbsp;</span>
826
- <span class="cline-any cline-neutral">&nbsp;</span>
827
- <span class="cline-any cline-no">&nbsp;</span>
828
- <span class="cline-any cline-no">&nbsp;</span>
829
- <span class="cline-any cline-neutral">&nbsp;</span>
830
- <span class="cline-any cline-no">&nbsp;</span>
831
- <span class="cline-any cline-no">&nbsp;</span>
832
- <span class="cline-any cline-no">&nbsp;</span>
833
- <span class="cline-any cline-no">&nbsp;</span>
834
- <span class="cline-any cline-neutral">&nbsp;</span>
835
- <span class="cline-any cline-no">&nbsp;</span>
836
- <span class="cline-any cline-no">&nbsp;</span>
837
- <span class="cline-any cline-neutral">&nbsp;</span>
838
- <span class="cline-any cline-neutral">&nbsp;</span>
839
- <span class="cline-any cline-neutral">&nbsp;</span>
840
- <span class="cline-any cline-neutral">&nbsp;</span>
841
- <span class="cline-any cline-no">&nbsp;</span>
842
- <span class="cline-any cline-neutral">&nbsp;</span>
843
- <span class="cline-any cline-no">&nbsp;</span>
844
- <span class="cline-any cline-neutral">&nbsp;</span>
845
- <span class="cline-any cline-neutral">&nbsp;</span>
846
- <span class="cline-any cline-neutral">&nbsp;</span>
847
- <span class="cline-any cline-no">&nbsp;</span>
848
- <span class="cline-any cline-neutral">&nbsp;</span>
849
- <span class="cline-any cline-neutral">&nbsp;</span>
850
- <span class="cline-any cline-neutral">&nbsp;</span>
851
- <span class="cline-any cline-no">&nbsp;</span>
852
- <span class="cline-any cline-neutral">&nbsp;</span>
853
- <span class="cline-any cline-neutral">&nbsp;</span>
854
- <span class="cline-any cline-neutral">&nbsp;</span>
855
- <span class="cline-any cline-no">&nbsp;</span>
856
- <span class="cline-any cline-neutral">&nbsp;</span>
857
- <span class="cline-any cline-neutral">&nbsp;</span>
858
- <span class="cline-any cline-neutral">&nbsp;</span>
859
- <span class="cline-any cline-no">&nbsp;</span>
860
- <span class="cline-any cline-neutral">&nbsp;</span>
861
- <span class="cline-any cline-neutral">&nbsp;</span>
862
- <span class="cline-any cline-neutral">&nbsp;</span>
863
- <span class="cline-any cline-no">&nbsp;</span>
864
- <span class="cline-any cline-neutral">&nbsp;</span>
865
- <span class="cline-any cline-neutral">&nbsp;</span>
866
- <span class="cline-any cline-neutral">&nbsp;</span>
867
- <span class="cline-any cline-no">&nbsp;</span>
868
- <span class="cline-any cline-neutral">&nbsp;</span>
869
- <span class="cline-any cline-neutral">&nbsp;</span>
870
- <span class="cline-any cline-neutral">&nbsp;</span>
871
- <span class="cline-any cline-no">&nbsp;</span>
872
- <span class="cline-any cline-neutral">&nbsp;</span>
873
- <span class="cline-any cline-neutral">&nbsp;</span>
874
- <span class="cline-any cline-neutral">&nbsp;</span>
875
- <span class="cline-any cline-no">&nbsp;</span>
876
- <span class="cline-any cline-neutral">&nbsp;</span>
877
- <span class="cline-any cline-neutral">&nbsp;</span>
878
- <span class="cline-any cline-neutral">&nbsp;</span>
879
- <span class="cline-any cline-no">&nbsp;</span>
880
- <span class="cline-any cline-neutral">&nbsp;</span>
881
- <span class="cline-any cline-neutral">&nbsp;</span>
882
- <span class="cline-any cline-neutral">&nbsp;</span>
883
- <span class="cline-any cline-neutral">&nbsp;</span>
884
- <span class="cline-any cline-neutral">&nbsp;</span>
885
- <span class="cline-any cline-no">&nbsp;</span>
886
- <span class="cline-any cline-neutral">&nbsp;</span>
887
- <span class="cline-any cline-neutral">&nbsp;</span>
888
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&nbsp;
889
- import { getDominio, makeUrl } from './config';
890
- &nbsp;
891
- /**
892
- * Encode a patient from ANDES to FHIR
893
- * @param {} patient
894
- */
895
- export function encode(patient) {
896
- if (patient) {
897
- const identificadores: any = [];
898
- identificadores.push({
899
- system: getDominio(),
900
- value: patient._id
901
- });
902
- if (patient.documento) {
903
- identificadores.push({
904
- system: 'http://www.renaper.gob.ar/dni',
905
- value: patient.documento
906
- });
907
- }
908
- if (patient.cuil) {
909
- identificadores.push({
910
- system: 'http://www.renaper.gob.ar/cuil',
911
- value: patient.cuil
912
- });
913
- }
914
- if (patient.numeroIdentificacion) {
915
- if (patient.tipoIdentificacion === 'dni extranjero') {
916
- identificadores.push({
917
- system: 'andes.gob.ar/sid/foreign-id',
918
- value: patient.numeroIdentificacion
919
- });
920
- }
921
- if (patient.tipoIdentificacion === 'pasaporte') {
922
- identificadores.push({
923
- system: 'andes.gob.ar/sid/passport',
924
- value: patient.numeroIdentificacion
925
- });
926
- }
927
- }
928
- // Parsea contactos
929
- let contactos = patient.contacto ? patient.contacto.filter(c =&gt; c.valor).map(unContacto =&gt; {
930
- let cont = {
931
- resourceType: 'ContactPoint',
932
- value: unContacto.valor,
933
- rank: unContacto.ranking,
934
- };
935
- switch (unContacto.tipo) {
936
- <span class="branch-0 cbranch-no" title="branch not covered" > case 'fijo':</span>
937
- <span class="cstat-no" title="statement not covered" > cont['system'] = 'phone';</span>
938
- <span class="cstat-no" title="statement not covered" > break;</span>
939
- case 'celular':
940
- cont['system'] = 'phone';
941
- break;
942
- case 'email':
943
- cont['system'] = 'email';
944
- break;
945
- }
946
- return cont;
947
- }) : <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
948
- // Parsea direcciones
949
- let direcciones = patient.direccion ? patient.direccion.filter(dir =&gt; dir.ubicacion.localidad).map(unaDireccion =&gt; {
950
- let direc = {
951
- resourceType: 'Address',
952
- postalCode: unaDireccion.codigoPostal ? unaDireccion.codigoPostal : <span class="branch-1 cbranch-no" title="branch not covered" >'',</span>
953
- line: [unaDireccion.valor],
954
- city: unaDireccion.ubicacion.localidad ? unaDireccion.ubicacion.localidad.nombre : <span class="branch-1 cbranch-no" title="branch not covered" >'',</span>
955
- state: unaDireccion.ubicacion.provincia ? unaDireccion.ubicacion.provincia.nombre : <span class="branch-1 cbranch-no" title="branch not covered" >'',</span>
956
- country: unaDireccion.ubicacion.pais ? unaDireccion.ubicacion.pais.nombre : <span class="branch-1 cbranch-no" title="branch not covered" >'',</span>
957
- };
958
- return direc;
959
- }) : <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
960
- // Parsea relaciones
961
- let relaciones = patient.relaciones ? patient.relaciones.filter(r =&gt; !!r.relacion).map(unaRelacion =&gt; {
962
- let relacion = {
963
- relationship: [{
964
- text: unaRelacion.relacion.nombre
965
- }], // The kind of relationship
966
- name: {
967
- resourceType: 'HumanName',
968
- family: unaRelacion.apellido.split(' '), // Family name (often called 'Surname')
969
- given: unaRelacion.nombre.split(' '), // Given names (not always 'first'). Includes middle names
970
- }
971
- };
972
- return relacion;
973
- }) : <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
974
- let genero;
975
- switch (patient.genero) {
976
- <span class="branch-0 cbranch-no" title="branch not covered" > case 'femenino':</span>
977
- <span class="cstat-no" title="statement not covered" > genero = 'female';</span>
978
- <span class="cstat-no" title="statement not covered" > break;</span>
979
- case 'masculino':
980
- genero = 'male';
981
- break;
982
- <span class="branch-2 cbranch-no" title="branch not covered" > case 'otro':</span>
983
- <span class="cstat-no" title="statement not covered" > genero = 'other';</span>
984
- <span class="cstat-no" title="statement not covered" > break;</span>
985
- }
986
- let pacienteFHIR: any = {
987
- resourceType: 'Patient',
988
- id: patient._id,
989
- identifier: identificadores,
990
- active: patient.activo ? patient.activo : <span class="branch-1 cbranch-no" title="branch not covered" >null,</span> // Whether this patient's record is in active use
991
- name: [{
992
- use: 'official',
993
- resourceType: 'HumanName',
994
- family: patient.apellido.split(' '),
995
- given: patient.nombre.split(' '),
996
- text: `${patient.nombre} ${patient.apellido}`
997
- }],
998
- gender: genero, // male | female | other | unknown
999
- birthDate: patient.fechaNacimiento ? typeof patient.fechaNacimiento === 'string' ? new Date(patient.fechaNacimiento).toISOString().slice(0, 10) : <span class="branch-1 cbranch-no" title="branch not covered" >patient.fechaNacimiento.toISOString().slice(0, 10) </span>: <span class="branch-1 cbranch-no" title="branch not covered" >null,</span>
1000
- extension: [{
1001
- url: 'andes.gob.ar/fhir/StructureDefinition/patient-status',
1002
- valueCode: patient.estado ? patient.estado : 'temporal' // validado | temporal
1003
- }]
1004
- };
1005
- <span class="missing-if-branch" title="if path not taken" >I</span>if (patient.fechaFallecimiento) {
1006
- <span class="cstat-no" title="statement not covered" > pacienteFHIR.deceasedDateTime = typeof patient.fechaFallecimiento === 'string' ? new Date(patient.fechaFallecimiento.toISOString().slice(0, 10)) : patient.fechaFallecimiento.toISOString().slice(0, 10);</span>
1007
- }
1008
- if (patient.estadoCivil) {
1009
- let estadoCivil;
1010
- switch (patient.estadoCivil) {
1011
- <span class="branch-0 cbranch-no" title="branch not covered" > case 'casado':</span>
1012
- <span class="cstat-no" title="statement not covered" > estadoCivil = 'Married';</span>
1013
- <span class="cstat-no" title="statement not covered" > break;</span>
1014
- <span class="branch-1 cbranch-no" title="branch not covered" > case 'divorciado':</span>
1015
- <span class="cstat-no" title="statement not covered" > estadoCivil = 'Divorced';</span>
1016
- <span class="cstat-no" title="statement not covered" > break;</span>
1017
- <span class="branch-2 cbranch-no" title="branch not covered" > case 'viudo':</span>
1018
- <span class="cstat-no" title="statement not covered" > estadoCivil = 'Widowed';</span>
1019
- <span class="cstat-no" title="statement not covered" > break;</span>
1020
- case 'soltero':
1021
- estadoCivil = 'unmarried';
1022
- break;
1023
- <span class="branch-4 cbranch-no" title="branch not covered" > default:</span>
1024
- <span class="cstat-no" title="statement not covered" > estadoCivil = 'unknown';</span>
1025
- <span class="cstat-no" title="statement not covered" > break;</span>
1026
- }
1027
- pacienteFHIR['maritalStatus'] = {
1028
- text: estadoCivil
1029
- };
1030
- }
1031
- <span class="missing-if-branch" title="if path not taken" >I</span>if (patient.foto) {
1032
- <span class="cstat-no" title="statement not covered" > pacienteFHIR['photo'] = [{</span>
1033
- patient: patient.foto
1034
- }];
1035
- }
1036
- if (contactos.length &gt; 0) { // A contact detail for the individual
1037
- pacienteFHIR['telecom'] = contactos;
1038
- }
1039
- if (direcciones.length &gt; 0) { // Addresses for the individual
1040
- pacienteFHIR['address'] = direcciones;
1041
- }
1042
- if (relaciones.length &gt; 0) { // A contact party (e.g. guardian, partner, friend) for the patient
1043
- pacienteFHIR['contact'] = relaciones;
1044
- }
1045
- let managingOrganization = {
1046
- reference: patient.createdBy.organizacion.id,
1047
- display: patient.createdBy.organizacion.nombre
1048
- };
1049
- pacienteFHIR['managingOrganization'] = managingOrganization;
1050
- return pacienteFHIR;
1051
- } else <span class="missing-if-branch" title="else path not taken" >E</span>{
1052
- <span class="cstat-no" title="statement not covered" > return null;</span>
1053
- }
1054
- }
1055
- &nbsp;
1056
- /**
1057
- * Decode a patient from FHIR to ANDES
1058
- * @param {} patient
1059
- */
1060
- export function decode(patient) {
1061
- let genero: string;
1062
- let sexo: string;
1063
- // Cuando el paciente viene por FHIR suponemos el valor del genero tanto para nuestro field genero como sexo
1064
- switch (patient.gender) {
1065
- <span class="branch-0 cbranch-no" title="branch not covered" > case 'female':</span>
1066
- <span class="cstat-no" title="statement not covered" > genero = 'femenino';</span>
1067
- <span class="cstat-no" title="statement not covered" > sexo = 'femenino';</span>
1068
- <span class="cstat-no" title="statement not covered" > break;</span>
1069
- case 'male':
1070
- genero = 'masculino';
1071
- sexo = 'masculino';
1072
- break;
1073
- <span class="branch-2 cbranch-no" title="branch not covered" > case 'other':</span>
1074
- <span class="cstat-no" title="statement not covered" > genero = 'otro';</span>
1075
- <span class="cstat-no" title="statement not covered" > sexo = 'otro';</span>
1076
- <span class="cstat-no" title="statement not covered" > break;</span>
1077
- }
1078
- function getValue(items, key) {
1079
- const element = items.find(el =&gt; el.system === key);
1080
- if (element) {
1081
- return element.value;
1082
- }
1083
- }
1084
- const tiposIdentificacion = ['andes.gob.ar/sid/foreign-id', 'andes.gob.ar/sid/passport'];
1085
- const tipoAndes = ['dni extranjero', 'pasaporte'];
1086
- let tipoIdentificacion;
1087
- let numeroIdentificacion;
1088
- for (let i = 0; i &lt; tiposIdentificacion.length; i++) {
1089
- if (getValue(patient.identifier, tiposIdentificacion[i])) {
1090
- tipoIdentificacion = tipoAndes[i];
1091
- numeroIdentificacion = getValue(patient.identifier, tiposIdentificacion[i]);
1092
- }
1093
- }
1094
- let pacienteAndes = {
1095
- id: getValue(patient.identifier, makeUrl('Patient')),
1096
- documento: getValue(patient.identifier, 'http://www.renaper.gob.ar/dni'),
1097
- tipoIdentificacion,
1098
- numeroIdentificacion,
1099
- nombre: patient.name[0].given.join().replace(',', ' '),
1100
- apellido: Array.isArray(patient.name[0].family) ? patient.name[0].family.join().replace(',', ' ') : <span class="branch-1 cbranch-no" title="branch not covered" >patient.name[0].family,</span>
1101
- fechaNacimiento: patient.birthDate,
1102
- genero,
1103
- sexo,
1104
- estado: 'temporal', // Todos los pacientes que recibimos por Fhir son considerados temporales en su conversión.
1105
- createdBy: null
1106
- };
1107
- let contactos = patient.telecom ? patient.telecom.map(unContacto =&gt; {
1108
- let cont = {
1109
- valor: unContacto.value,
1110
- ranking: unContacto.rank
1111
- };
1112
- switch (unContacto.system) {
1113
- case 'phone':
1114
- cont['tipo'] = 'celular';
1115
- break;
1116
- case 'email':
1117
- cont['tipo'] = 'email';
1118
- break;
1119
- }
1120
- return cont;
1121
- }) : <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
1122
- &nbsp;
1123
- let relaciones = patient.contact ? patient.contact.map(aContact =&gt; {
1124
- let relacion = {
1125
- relacion: {
1126
- nombre: aContact.relationship[0].text
1127
- },
1128
- nombre: aContact.name.given.join().replace(',', ' '),
1129
- apellido: aContact.name.family
1130
- };
1131
- return relacion;
1132
- }) : <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
1133
- &nbsp;
1134
- if (patient.maritalStatus) {
1135
- let estadoCivil;
1136
- switch (patient.maritalStatus['text']) {
1137
- <span class="branch-0 cbranch-no" title="branch not covered" > case 'Married':</span>
1138
- <span class="cstat-no" title="statement not covered" > estadoCivil = 'casado';</span>
1139
- <span class="cstat-no" title="statement not covered" > break;</span>
1140
- <span class="branch-1 cbranch-no" title="branch not covered" > case 'Divorced':</span>
1141
- <span class="cstat-no" title="statement not covered" > estadoCivil = 'divorciado';</span>
1142
- <span class="cstat-no" title="statement not covered" > break;</span>
1143
- <span class="branch-2 cbranch-no" title="branch not covered" > case 'Widowed':</span>
1144
- <span class="cstat-no" title="statement not covered" > estadoCivil = 'viudo';</span>
1145
- <span class="cstat-no" title="statement not covered" > break;</span>
1146
- case 'unmarried':
1147
- estadoCivil = 'soltero';
1148
- break;
1149
- <span class="branch-4 cbranch-no" title="branch not covered" > default:</span>
1150
- <span class="cstat-no" title="statement not covered" > estadoCivil = 'otro';</span>
1151
- <span class="cstat-no" title="statement not covered" > break;</span>
1152
- }
1153
- pacienteAndes['estadoCivil'] = estadoCivil;
1154
- }
1155
- &nbsp;
1156
- let direcciones = patient.address ? patient.address.map(unaDireccion =&gt; {
1157
- let dir = {
1158
- activo: true,
1159
- valor: unaDireccion.line,
1160
- codigoPostal: unaDireccion.postalCode,
1161
- // TODO: En un MATETIME ver si la información de pais, provincia, localidad
1162
- // se delega en el insert o update. Y este decoder sólo guarda la info tal cual viene.
1163
- ubicacion: {
1164
- pais: unaDireccion.country,
1165
- provincia: unaDireccion.state,
1166
- localidad: unaDireccion.city
1167
- }
1168
- };
1169
- return dir;
1170
- }) : <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
1171
- &nbsp;
1172
- pacienteAndes['direccion'] = direcciones;
1173
- &nbsp;
1174
- if (patient.active) {
1175
- pacienteAndes['activo'] = patient.active;
1176
- }
1177
- if (contactos.length &gt; 0) {
1178
- pacienteAndes['contacto'] = contactos;
1179
- }
1180
- <span class="missing-if-branch" title="if path not taken" >I</span>if (patient.photo) { // Image of the patient
1181
- <span class="cstat-no" title="statement not covered" > pacienteAndes['foto'] = patient.photo[0].data;</span>
1182
- }
1183
- &nbsp;
1184
- if (patient.contact) {
1185
- pacienteAndes['relaciones'] = relaciones;
1186
- }
1187
- &nbsp;
1188
- if (patient.managingOrganization) {
1189
- pacienteAndes['createdBy'] = {
1190
- organizacion: {
1191
- id: patient.managingOrganization.reference,
1192
- nombre: patient.managingOrganization.display
1193
- }
1194
- };
1195
- }
1196
- &nbsp;
1197
- return pacienteAndes;
1198
- }
1199
- &nbsp;
1200
- /**
1201
- * Verify if a patient has a FHIR format
1202
- * @param {*} patient
1203
- */
1204
- export function <span class="fstat-no" title="function not covered" >verify(</span>patient) {
1205
- let respuesta = <span class="cstat-no" title="statement not covered" >true;</span>
1206
- let fieldVerified = <span class="cstat-no" title="statement not covered" >Object.keys(patient).every(pacienteFHIRFields);</span>
1207
- // Verificamos que las key esten contenidas en los conjuntos mínimos pacienteFHIRField
1208
- <span class="cstat-no" title="statement not covered" > if (fieldVerified) {</span>
1209
- <span class="cstat-no" title="statement not covered" > respuesta = ('resourceType' in patient) &amp;&amp; patient.resourceType === 'Patient';</span>
1210
- <span class="cstat-no" title="statement not covered" > respuesta = respuesta &amp;&amp; ('identifier' in patient);</span>
1211
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (patient.identifier.length &gt; 0) {</span>
1212
- <span class="cstat-no" title="statement not covered" > patient.identifier.forEach(<span class="fstat-no" title="function not covered" >anIdentifier </span>=&gt; <span class="cstat-no" title="statement not covered" >respuesta = respuesta &amp;&amp; Object.keys(anIdentifier).every(identifierFields))</span>;</span>
1213
- }
1214
- <span class="cstat-no" title="statement not covered" > patient.name.forEach(<span class="fstat-no" title="function not covered" >aName </span>=&gt; <span class="cstat-no" title="statement not covered" >respuesta = respuesta &amp;&amp; validName(aName))</span>;</span>
1215
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (patient.active) {</span>
1216
- <span class="cstat-no" title="statement not covered" > respuesta = respuesta &amp;&amp; (typeof patient.active === 'boolean');</span>
1217
- }
1218
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (patient.telecom) {</span>
1219
- <span class="cstat-no" title="statement not covered" > patient.telecom.forEach(<span class="fstat-no" title="function not covered" >aTelecom </span>=&gt; <span class="cstat-no" title="statement not covered" >respuesta = respuesta &amp;&amp; Object.keys(aTelecom).every(telecomFields))</span>;</span>
1220
- }
1221
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (patient.gender) {</span>
1222
- <span class="cstat-no" title="statement not covered" > respuesta = respuesta &amp;&amp; patient.gender.match('male|female|other|unknown') != null;</span>
1223
- }
1224
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (patient.birthDate) {</span>
1225
- <span class="cstat-no" title="statement not covered" > respuesta = respuesta &amp;&amp; typeof patient.birthDate === 'string'; </span>// TODO: Algun control de que tenga formato Date
1226
- }
1227
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (patient.deceasedDateTime) {</span>
1228
- <span class="cstat-no" title="statement not covered" > respuesta = respuesta &amp;&amp; typeof patient.deceasedDateTime === 'string'; </span>// TODO: Algun control de que tenga formato DateTime
1229
- }
1230
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (patient.address) {</span>
1231
- <span class="cstat-no" title="statement not covered" > patient.address.forEach(<span class="fstat-no" title="function not covered" >anAddress </span>=&gt; <span class="cstat-no" title="statement not covered" >respuesta = respuesta &amp;&amp; Object.keys(anAddress).every(addressFields))</span>;</span>
1232
- }
1233
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (patient.maritalStatus &amp;&amp; patient.maritalStatus.text) {</span>
1234
- <span class="cstat-no" title="statement not covered" > respuesta = respuesta &amp;&amp; Object.keys(patient.maritalStatus).every(codingFields)</span>
1235
- &amp;&amp; typeof patient.maritalStatus.text === 'string'
1236
- &amp;&amp; patient.maritalStatus.text.match('Married|Divorced|Widowed|unmarried|unknown') != null;
1237
- }
1238
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (patient.photo) {</span>
1239
- <span class="cstat-no" title="statement not covered" > patient.photo.forEach(<span class="fstat-no" title="function not covered" >aPhoto </span>=&gt; <span class="cstat-no" title="statement not covered" >respuesta = respuesta &amp;&amp; Object.keys(aPhoto).every(photoFields))</span>;</span>
1240
- }
1241
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (patient.contact) {</span>
1242
- <span class="cstat-no" title="statement not covered" > patient.contact.forEach(<span class="fstat-no" title="function not covered" >aContact </span>=&gt; {</span>
1243
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (aContact.relationship) {</span>
1244
- <span class="cstat-no" title="statement not covered" > aContact.relationship.forEach(<span class="fstat-no" title="function not covered" >aRelation </span>=&gt; <span class="cstat-no" title="statement not covered" >respuesta = respuesta &amp;&amp; Object.keys(aRelation).every(codingFields))</span>;</span>
1245
- }
1246
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (aContact.name) {</span>
1247
- <span class="cstat-no" title="statement not covered" > respuesta = respuesta &amp;&amp; validName(aContact.name);</span>
1248
- }
1249
- });
1250
- }
1251
- } else {
1252
- <span class="cstat-no" title="statement not covered" > respuesta = fieldVerified; </span>// No cumple con los campos estandar de FHIR
1253
- }
1254
- <span class="cstat-no" title="statement not covered" > return respuesta;</span>
1255
- }
1256
- &nbsp;
1257
- function <span class="fstat-no" title="function not covered" >pacienteFHIRFields(</span>elem) {
1258
- <span class="cstat-no" title="statement not covered" > return elem.match('resourceType|identifier|active|name|telecom|gender|birthDate|deceasedBoolean|deceasedDateTime|address|maritalStatus|photo|contact') != null;</span>
1259
- }
1260
- &nbsp;
1261
- function <span class="fstat-no" title="function not covered" >identifierFields(</span>elem) {
1262
- <span class="cstat-no" title="statement not covered" > return elem.match('use|type|system|value|period|assigner') != null;</span>
1263
- }
1264
- &nbsp;
1265
- function <span class="fstat-no" title="function not covered" >nameFields(</span>elem) {
1266
- <span class="cstat-no" title="statement not covered" > return elem.match('resourceType|family|given') != null;</span>
1267
- }
1268
- &nbsp;
1269
- function <span class="fstat-no" title="function not covered" >telecomFields(</span>elem) {
1270
- <span class="cstat-no" title="statement not covered" > return elem.match('resourceType|system|value|use|rank|period') != null;</span>
1271
- }
1272
- &nbsp;
1273
- function <span class="fstat-no" title="function not covered" >addressFields(</span>elem) {
1274
- <span class="cstat-no" title="statement not covered" > return elem.match('resourceType|use|type|text|line|city|district|state|postalCode|country|period') != null;</span>
1275
- }
1276
- &nbsp;
1277
- function <span class="fstat-no" title="function not covered" >codingFields(</span>elem) {
1278
- <span class="cstat-no" title="statement not covered" > return elem.match('coding|text') != null;</span>
1279
- }
1280
- &nbsp;
1281
- function <span class="fstat-no" title="function not covered" >photoFields(</span>elem) {
1282
- <span class="cstat-no" title="statement not covered" > return elem.match('contentType|language|data|url|size|hash|title|creation') != null;</span>
1283
- }
1284
- &nbsp;
1285
- function <span class="fstat-no" title="function not covered" >contactFields(</span>elem) {
1286
- <span class="cstat-no" title="statement not covered" > return elem.match('relationship|name|telecom|address|gender|organization|period') != null;</span>
1287
- }
1288
- &nbsp;
1289
- function <span class="fstat-no" title="function not covered" >validName(</span>aName) {
1290
- <span class="cstat-no" title="statement not covered" > return Object.keys(aName).every(nameFields) &amp;&amp; ('resourceType' in aName) &amp;&amp; aName.resourceType === 'HumanName' &amp;&amp;</span>
1291
- ('family' in aName) &amp;&amp; Array.isArray(aName.family) &amp;&amp; aName.family.every(areStrings) &amp;&amp;
1292
- ('given' in aName) &amp;&amp; Array.isArray(aName.given) &amp;&amp; aName.given.every(areStrings);
1293
- }
1294
- &nbsp;
1295
- function <span class="fstat-no" title="function not covered" >areStrings(</span>elem) {
1296
- <span class="cstat-no" title="statement not covered" > return typeof elem === 'string';</span>
1297
- }
1298
- &nbsp;
1299
- &nbsp;</pre></td></tr></table></pre>
1300
-
1301
- <div class='push'></div><!-- for sticky footer -->
1302
- </div><!-- /wrapper -->
1303
- <div class='footer quiet pad2 space-top1 center small'>
1304
- Code coverage generated by
1305
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1306
- at 2025-11-07T18:06:39.937Z
1307
- </div>
1308
- <script src="../prettify.js"></script>
1309
- <script>
1310
- window.onload = function () {
1311
- prettyPrint();
1312
- };
1313
- </script>
1314
- <script src="../sorter.js"></script>
1315
- <script src="../block-navigation.js"></script>
1316
- </body>
1317
- </html>
1318
-