commit 83156759d2486f1757b9df0ff0d2c05e2ee2fe24 Author: Llewellyn van der Merwe Date: Sat Apr 24 06:42:47 2021 +0200 first commit diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..df50810 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,340 @@ +GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..33befcd --- /dev/null +++ b/README.md @@ -0,0 +1,47 @@ + # eHealth Portal (1.0.5) + + ![eHealth Portal image](https://raw.githubusercontent.com/Namibia/eHealth-Portal/master/admin/assets/images/vdm-component.jpg "The eHealth Portal") + + eHealth Portal is a secure web-based viewer that offers health care providers that may not have access to one of the provincial clinical viewers, a single point of access to their patients' digital health information. + +# Build Details + ++ *Company*: [Vast Development Method](https://github.com/namibia/eHealth-Portal) ++ *Author*: [Oh Martin](mailto:oh.martin@vdm.io) ++ *Name*: [eHealth Portal](https://github.com/namibia/eHealth-Portal) ++ *First Build*: 13th August, 2020 ++ *Last Build*: 24th April, 2021 ++ *Version*: 1.0.5 ++ *Copyright*: Copyright (C) 2020 Vast Development Method. All rights reserved. ++ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + +## Build Time + +**425 Hours** or **53 Eight Hour Days** (actual time the author saved - +due to [Automated Component Builder](http://joomlacomponentbuilder.com)) + +> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**, +> never making one mistake or taking any coffee break.) + ++ *Line count*: **152325** ++ *File count*: **1125** ++ *Folder count*: **176** + + **280 Hours** or **35 Eight Hour Days** (the actual time the author spent) + +> (with the following break down: +> **debugging @106hours** = codingtime / 4; +> **planning @61hours** = codingtime / 7; +> **mapping @42hours** = codingtime / 10; +> **office @71hours** = codingtime / 6;) + +**705 Hours** or **88 Eight Hour Days** +(a total of the realistic time frame for this project) + +> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**, +> with the normal everyday realities at the office, that includes the component planning, mapping & debugging.) + +Project duration: **17.6 weeks** or **3.7 months** + +> This **component** was build with a Joomla [Automated Component Builder](http://joomlacomponentbuilder.com). +> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) \ No newline at end of file diff --git a/admin/README.txt b/admin/README.txt new file mode 100644 index 0000000..33befcd --- /dev/null +++ b/admin/README.txt @@ -0,0 +1,47 @@ + # eHealth Portal (1.0.5) + + ![eHealth Portal image](https://raw.githubusercontent.com/Namibia/eHealth-Portal/master/admin/assets/images/vdm-component.jpg "The eHealth Portal") + + eHealth Portal is a secure web-based viewer that offers health care providers that may not have access to one of the provincial clinical viewers, a single point of access to their patients' digital health information. + +# Build Details + ++ *Company*: [Vast Development Method](https://github.com/namibia/eHealth-Portal) ++ *Author*: [Oh Martin](mailto:oh.martin@vdm.io) ++ *Name*: [eHealth Portal](https://github.com/namibia/eHealth-Portal) ++ *First Build*: 13th August, 2020 ++ *Last Build*: 24th April, 2021 ++ *Version*: 1.0.5 ++ *Copyright*: Copyright (C) 2020 Vast Development Method. All rights reserved. ++ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + +## Build Time + +**425 Hours** or **53 Eight Hour Days** (actual time the author saved - +due to [Automated Component Builder](http://joomlacomponentbuilder.com)) + +> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**, +> never making one mistake or taking any coffee break.) + ++ *Line count*: **152325** ++ *File count*: **1125** ++ *Folder count*: **176** + + **280 Hours** or **35 Eight Hour Days** (the actual time the author spent) + +> (with the following break down: +> **debugging @106hours** = codingtime / 4; +> **planning @61hours** = codingtime / 7; +> **mapping @42hours** = codingtime / 10; +> **office @71hours** = codingtime / 6;) + +**705 Hours** or **88 Eight Hour Days** +(a total of the realistic time frame for this project) + +> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**, +> with the normal everyday realities at the office, that includes the component planning, mapping & debugging.) + +Project duration: **17.6 weeks** or **3.7 months** + +> This **component** was build with a Joomla [Automated Component Builder](http://joomlacomponentbuilder.com). +> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) \ No newline at end of file diff --git a/admin/access.xml b/admin/access.xml new file mode 100644 index 0000000..9ec6a16 --- /dev/null +++ b/admin/access.xml @@ -0,0 +1,425 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ +
+
+ +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ +
+
+ +
+
+ +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + + +
+
\ No newline at end of file diff --git a/admin/assets/css/admin.css b/admin/assets/css/admin.css new file mode 100644 index 0000000..f213246 --- /dev/null +++ b/admin/assets/css/admin.css @@ -0,0 +1,29 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage admin.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ +.no-click { + pointer-events: none; +} + diff --git a/admin/assets/css/administration_part.css b/admin/assets/css/administration_part.css new file mode 100644 index 0000000..069514b --- /dev/null +++ b/admin/assets/css/administration_part.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage administration_part.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/administration_parts.css b/admin/assets/css/administration_parts.css new file mode 100644 index 0000000..6f8a1c4 --- /dev/null +++ b/admin/assets/css/administration_parts.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage administration_parts.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/antenatal_care.css b/admin/assets/css/antenatal_care.css new file mode 100644 index 0000000..842535f --- /dev/null +++ b/admin/assets/css/antenatal_care.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage antenatal_care.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/antenatal_cares.css b/admin/assets/css/antenatal_cares.css new file mode 100644 index 0000000..a5541be --- /dev/null +++ b/admin/assets/css/antenatal_cares.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage antenatal_cares.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/breast_cancer.css b/admin/assets/css/breast_cancer.css new file mode 100644 index 0000000..b5a6da2 --- /dev/null +++ b/admin/assets/css/breast_cancer.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage breast_cancer.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/breast_cancers.css b/admin/assets/css/breast_cancers.css new file mode 100644 index 0000000..5882222 --- /dev/null +++ b/admin/assets/css/breast_cancers.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage breast_cancers.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/cervical_cancer.css b/admin/assets/css/cervical_cancer.css new file mode 100644 index 0000000..6422f52 --- /dev/null +++ b/admin/assets/css/cervical_cancer.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage cervical_cancer.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/cervical_cancers.css b/admin/assets/css/cervical_cancers.css new file mode 100644 index 0000000..e973417 --- /dev/null +++ b/admin/assets/css/cervical_cancers.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage cervical_cancers.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/clinic.css b/admin/assets/css/clinic.css new file mode 100644 index 0000000..8859f2a --- /dev/null +++ b/admin/assets/css/clinic.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage clinic.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/clinics.css b/admin/assets/css/clinics.css new file mode 100644 index 0000000..bc1b5b7 --- /dev/null +++ b/admin/assets/css/clinics.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage clinics.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/counseling_type.css b/admin/assets/css/counseling_type.css new file mode 100644 index 0000000..9eb511d --- /dev/null +++ b/admin/assets/css/counseling_type.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage counseling_type.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/counseling_types.css b/admin/assets/css/counseling_types.css new file mode 100644 index 0000000..7452a12 --- /dev/null +++ b/admin/assets/css/counseling_types.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage counseling_types.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/dashboard.css b/admin/assets/css/dashboard.css new file mode 100644 index 0000000..03c540c --- /dev/null +++ b/admin/assets/css/dashboard.css @@ -0,0 +1,177 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage dashboard.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + +.dashboard-container { + margin-left: 10px; + margin-top: 10px; + width: 100%; +} +.dashboard-container [class*="span"] { + display: block; + float: none; + margin-left: 0; + width: auto; +} +.dashboard-container:before, .dashboard-container:after { + content: ""; + display: table; +} +.dashboard-container:after { + clear: both; +} +.dashboard-container [class*="span"] { + box-sizing: border-box; + display: block; + float: left; + min-height: 145px; + min-width: 96px; + width: 100%; +} +.dashboard-container [class*="span"]:first-child { + margin-left: 0; +} +.dashboard-wraper { + background: none repeat scroll 0 0 hsl(0, 0%, 93%); + border-radius: 5px; + float: left; + margin: 1%; + padding: 3px; + width: 17%; + min-height: 194px; + min-width: 96px; +} +.dashboard-content a { + background: linear-gradient(to bottom, hsl(0, 0%, 100%) 0%, hsl(0, 0%, 96%) 47%, hsl(0, 0%, 93%) 100%) repeat scroll 0 0 hsla(0, 0%, 0%, 0); + border: 1px solid hsl(0, 0%, 85%); + border-radius: 4px; + box-shadow: 0 0 3px hsla(0, 0%, 0%, 0.1) inset; + color: hsl(0, 0%, 20%); + display: block; + min-height: 89px; + padding: 10px; + text-align: center; + text-decoration: none; +} +.dashboard-content a:hover { + background: linear-gradient(to bottom, hsl(0, 0%, 90%) 0%, hsl(0, 0%, 100%) 100%) repeat scroll 0 0 hsla(0, 0%, 0%, 0); + color: hsl(200, 100%, 30%); + text-decoration: none; +} +.dashboard-title { + display: block; + padding-top: 5px; +} +.dashboard-info { + background: linear-gradient(to bottom, hsl(0, 0%, 100%) 0%, hsl(0, 0%, 96%) 47%, hsl(0, 0%, 93%) 100%) repeat scroll 0 0 hsla(0, 0%, 0%, 0); + border: 1px solid hsl(0, 0%, 85%); + border-radius: 4px; + box-shadow: 0 0 3px hsla(0, 0%, 0%, 0.1) inset; + color: hsl(0, 0%, 20%); + display: block; + font-size: 12px; + padding: 10px; + text-align: center; +} +.dashboard-info span { + display: block; + text-align: center; +} +.dashboard-info img { + margin: 0 auto; +} +.dashboard-table { + border-top: 1px solid hsl(0, 0%, 87%); + margin-top: 5px; + width: 100%; +} +.dashboard-info h5 { + font-size: 11px; + font-weight: bold; +} +.dashboard-block { + background: linear-gradient(to bottom, hsl(0, 0%, 95%) 0%, hsl(0, 0%, 86%) 100%) repeat scroll 0 0 hsla(0, 0%, 0%, 0); + border: 1px solid hsl(0, 0%, 76%); + border-radius: 3px; + box-shadow: 0 1px 0 hsl(0, 0%, 98%) inset; + margin-bottom: 20px; +} +.dashboard-block .dashboard-block-head { + background: linear-gradient(to bottom, hsl(0, 0%, 95%) 0%, hsl(0, 0%, 86%) 100%) repeat scroll 0 0 hsla(0, 0%, 0%, 0); + border-bottom: 1px solid hsl(0, 0%, 76%); + border-radius: 3px 3px 0 0; + box-shadow: 0 1px 0 hsl(0, 0%, 98%) inset, 0 0 3px hsl(0, 0%, 87%); + height: 40px; + position: relative; +} +.dashboard-block .dashboard-block-head h5 { + font-size: 12px; + margin: 0; + padding-left: 10px; + padding-top: 11px; + text-transform: uppercase; +} +.dashboard-block .dashboard-block-content { + background: none repeat scroll 0 0 hsl(0, 0%, 93%); + border-radius: 0 0 3px 3px; +} +.dashboard-block .dashboard-block-box { + background: none repeat scroll 0 0 hsl(0, 0%, 100%); + border-top: 1px solid hsl(0, 0%, 82%); + box-shadow: 0 0 5px hsl(0, 0%, 87%) inset; +} +.dashboard-block .dashboard-block-content .dashboard-block-box { + margin-top: 0 !important; +} +.dashboard-block .dashboard-block-content .dashboard-block-box .dashboard-block-table { + margin-bottom: 0 !important; +} +.dashboard-block-table { + background-color: hsla(0, 0%, 0%, 0); + border-collapse: collapse; + border-spacing: 0; + margin-bottom: 20px; + max-width: 100%; + width: 100%; +} +.dashboard-block-table th, .dashboard-block-table td { + border-top: 1px solid hsl(0, 0%, 87%); + line-height: 20px; + padding: 5px; + text-align: left; + vertical-align: middle; +} +.dashboard-badge { + background-color: hsl(0, 0%, 60%); + border-radius: 9px; + color: hsl(0, 0%, 100%); + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + padding: 1px 9px 2px; + text-shadow: 0 -1px 0 hsla(0, 0%, 0%, 0.25); + vertical-align: baseline; + white-space: nowrap; +} \ No newline at end of file diff --git a/admin/assets/css/diagnosis_type.css b/admin/assets/css/diagnosis_type.css new file mode 100644 index 0000000..a22c8fc --- /dev/null +++ b/admin/assets/css/diagnosis_type.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage diagnosis_type.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/diagnosis_types.css b/admin/assets/css/diagnosis_types.css new file mode 100644 index 0000000..93f7f05 --- /dev/null +++ b/admin/assets/css/diagnosis_types.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage diagnosis_types.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/family_planning.css b/admin/assets/css/family_planning.css new file mode 100644 index 0000000..d9789f3 --- /dev/null +++ b/admin/assets/css/family_planning.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage family_planning.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/family_plannings.css b/admin/assets/css/family_plannings.css new file mode 100644 index 0000000..9ef7ffa --- /dev/null +++ b/admin/assets/css/family_plannings.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage family_plannings.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/foetal_engagement.css b/admin/assets/css/foetal_engagement.css new file mode 100644 index 0000000..f50b698 --- /dev/null +++ b/admin/assets/css/foetal_engagement.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage foetal_engagement.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/foetal_engagements.css b/admin/assets/css/foetal_engagements.css new file mode 100644 index 0000000..def308b --- /dev/null +++ b/admin/assets/css/foetal_engagements.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage foetal_engagements.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/foetal_lie.css b/admin/assets/css/foetal_lie.css new file mode 100644 index 0000000..bc01698 --- /dev/null +++ b/admin/assets/css/foetal_lie.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage foetal_lie.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/foetal_lies.css b/admin/assets/css/foetal_lies.css new file mode 100644 index 0000000..df76e4f --- /dev/null +++ b/admin/assets/css/foetal_lies.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage foetal_lies.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/foetal_presentation.css b/admin/assets/css/foetal_presentation.css new file mode 100644 index 0000000..3b76a26 --- /dev/null +++ b/admin/assets/css/foetal_presentation.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage foetal_presentation.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/foetal_presentations.css b/admin/assets/css/foetal_presentations.css new file mode 100644 index 0000000..c06c54f --- /dev/null +++ b/admin/assets/css/foetal_presentations.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage foetal_presentations.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/general_medical_check_up.css b/admin/assets/css/general_medical_check_up.css new file mode 100644 index 0000000..42fc41d --- /dev/null +++ b/admin/assets/css/general_medical_check_up.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage general_medical_check_up.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/general_medical_check_ups.css b/admin/assets/css/general_medical_check_ups.css new file mode 100644 index 0000000..79c9fbd --- /dev/null +++ b/admin/assets/css/general_medical_check_ups.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage general_medical_check_ups.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/health_education.css b/admin/assets/css/health_education.css new file mode 100644 index 0000000..47500b5 --- /dev/null +++ b/admin/assets/css/health_education.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage health_education.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/health_education_topic.css b/admin/assets/css/health_education_topic.css new file mode 100644 index 0000000..10cc0e9 --- /dev/null +++ b/admin/assets/css/health_education_topic.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage health_education_topic.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/health_education_topics.css b/admin/assets/css/health_education_topics.css new file mode 100644 index 0000000..1fa3fba --- /dev/null +++ b/admin/assets/css/health_education_topics.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage health_education_topics.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/health_educations.css b/admin/assets/css/health_educations.css new file mode 100644 index 0000000..57d250f --- /dev/null +++ b/admin/assets/css/health_educations.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage health_educations.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/hiv_counseling_and_testing.css b/admin/assets/css/hiv_counseling_and_testing.css new file mode 100644 index 0000000..92ca973 --- /dev/null +++ b/admin/assets/css/hiv_counseling_and_testing.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage hiv_counseling_and_testing.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/hiv_counselings_and_testings.css b/admin/assets/css/hiv_counselings_and_testings.css new file mode 100644 index 0000000..726bbbb --- /dev/null +++ b/admin/assets/css/hiv_counselings_and_testings.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage hiv_counselings_and_testings.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/immunisation.css b/admin/assets/css/immunisation.css new file mode 100644 index 0000000..ed78ba5 --- /dev/null +++ b/admin/assets/css/immunisation.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage immunisation.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/immunisation_type.css b/admin/assets/css/immunisation_type.css new file mode 100644 index 0000000..c4eae75 --- /dev/null +++ b/admin/assets/css/immunisation_type.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage immunisation_type.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/immunisation_types.css b/admin/assets/css/immunisation_types.css new file mode 100644 index 0000000..2272a25 --- /dev/null +++ b/admin/assets/css/immunisation_types.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage immunisation_types.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/immunisation_vaccine_type.css b/admin/assets/css/immunisation_vaccine_type.css new file mode 100644 index 0000000..946da32 --- /dev/null +++ b/admin/assets/css/immunisation_vaccine_type.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage immunisation_vaccine_type.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/immunisation_vaccine_types.css b/admin/assets/css/immunisation_vaccine_types.css new file mode 100644 index 0000000..4e76c45 --- /dev/null +++ b/admin/assets/css/immunisation_vaccine_types.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage immunisation_vaccine_types.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/immunisations.css b/admin/assets/css/immunisations.css new file mode 100644 index 0000000..a5262f1 --- /dev/null +++ b/admin/assets/css/immunisations.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage immunisations.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/index.html b/admin/assets/css/index.html new file mode 100644 index 0000000..fa6d84e --- /dev/null +++ b/admin/assets/css/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/assets/css/medication.css b/admin/assets/css/medication.css new file mode 100644 index 0000000..fde0c0d --- /dev/null +++ b/admin/assets/css/medication.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage medication.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/medications.css b/admin/assets/css/medications.css new file mode 100644 index 0000000..3296b23 --- /dev/null +++ b/admin/assets/css/medications.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage medications.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/nonpay_reason.css b/admin/assets/css/nonpay_reason.css new file mode 100644 index 0000000..7a1e619 --- /dev/null +++ b/admin/assets/css/nonpay_reason.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage nonpay_reason.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/nonpay_reasons.css b/admin/assets/css/nonpay_reasons.css new file mode 100644 index 0000000..3888658 --- /dev/null +++ b/admin/assets/css/nonpay_reasons.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage nonpay_reasons.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/patient_queue.css b/admin/assets/css/patient_queue.css new file mode 100644 index 0000000..7d41f85 --- /dev/null +++ b/admin/assets/css/patient_queue.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage patient_queue.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/payment.css b/admin/assets/css/payment.css new file mode 100644 index 0000000..d89e4cf --- /dev/null +++ b/admin/assets/css/payment.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage payment.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/payment_amount.css b/admin/assets/css/payment_amount.css new file mode 100644 index 0000000..8bec62e --- /dev/null +++ b/admin/assets/css/payment_amount.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage payment_amount.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/payment_amounts.css b/admin/assets/css/payment_amounts.css new file mode 100644 index 0000000..6bd6166 --- /dev/null +++ b/admin/assets/css/payment_amounts.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage payment_amounts.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/payment_type.css b/admin/assets/css/payment_type.css new file mode 100644 index 0000000..c1b3feb --- /dev/null +++ b/admin/assets/css/payment_type.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage payment_type.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/payment_types.css b/admin/assets/css/payment_types.css new file mode 100644 index 0000000..207da3d --- /dev/null +++ b/admin/assets/css/payment_types.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage payment_types.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/payments.css b/admin/assets/css/payments.css new file mode 100644 index 0000000..474fb63 --- /dev/null +++ b/admin/assets/css/payments.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage payments.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/planning_type.css b/admin/assets/css/planning_type.css new file mode 100644 index 0000000..f00bcba --- /dev/null +++ b/admin/assets/css/planning_type.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage planning_type.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/planning_types.css b/admin/assets/css/planning_types.css new file mode 100644 index 0000000..2d5eb18 --- /dev/null +++ b/admin/assets/css/planning_types.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage planning_types.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/prostate_and_testicular_cancer.css b/admin/assets/css/prostate_and_testicular_cancer.css new file mode 100644 index 0000000..2ab60eb --- /dev/null +++ b/admin/assets/css/prostate_and_testicular_cancer.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage prostate_and_testicular_cancer.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/prostate_and_testicular_cancers.css b/admin/assets/css/prostate_and_testicular_cancers.css new file mode 100644 index 0000000..299774e --- /dev/null +++ b/admin/assets/css/prostate_and_testicular_cancers.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage prostate_and_testicular_cancers.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/referral.css b/admin/assets/css/referral.css new file mode 100644 index 0000000..4ca2c49 --- /dev/null +++ b/admin/assets/css/referral.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage referral.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/referrals.css b/admin/assets/css/referrals.css new file mode 100644 index 0000000..85d0f3f --- /dev/null +++ b/admin/assets/css/referrals.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage referrals.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/site.css b/admin/assets/css/site.css new file mode 100644 index 0000000..4852fc7 --- /dev/null +++ b/admin/assets/css/site.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage site.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/sites.css b/admin/assets/css/sites.css new file mode 100644 index 0000000..1c19ebb --- /dev/null +++ b/admin/assets/css/sites.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage sites.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/strength.css b/admin/assets/css/strength.css new file mode 100644 index 0000000..ebb0137 --- /dev/null +++ b/admin/assets/css/strength.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage strength.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/strengths.css b/admin/assets/css/strengths.css new file mode 100644 index 0000000..7722210 --- /dev/null +++ b/admin/assets/css/strengths.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage strengths.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/test.css b/admin/assets/css/test.css new file mode 100644 index 0000000..efb92aa --- /dev/null +++ b/admin/assets/css/test.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage test.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/testing_reason.css b/admin/assets/css/testing_reason.css new file mode 100644 index 0000000..8c178a3 --- /dev/null +++ b/admin/assets/css/testing_reason.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage testing_reason.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/testing_reasons.css b/admin/assets/css/testing_reasons.css new file mode 100644 index 0000000..eb3ff89 --- /dev/null +++ b/admin/assets/css/testing_reasons.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage testing_reasons.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/tests.css b/admin/assets/css/tests.css new file mode 100644 index 0000000..e178c3a --- /dev/null +++ b/admin/assets/css/tests.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage tests.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/tuberculoses.css b/admin/assets/css/tuberculoses.css new file mode 100644 index 0000000..c430365 --- /dev/null +++ b/admin/assets/css/tuberculoses.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage tuberculoses.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/tuberculosis.css b/admin/assets/css/tuberculosis.css new file mode 100644 index 0000000..3fed89b --- /dev/null +++ b/admin/assets/css/tuberculosis.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage tuberculosis.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/unit.css b/admin/assets/css/unit.css new file mode 100644 index 0000000..d42991f --- /dev/null +++ b/admin/assets/css/unit.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage unit.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/units.css b/admin/assets/css/units.css new file mode 100644 index 0000000..b16b8a6 --- /dev/null +++ b/admin/assets/css/units.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage units.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/vmmc.css b/admin/assets/css/vmmc.css new file mode 100644 index 0000000..675c8d7 --- /dev/null +++ b/admin/assets/css/vmmc.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage vmmc.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/vmmcs.css b/admin/assets/css/vmmcs.css new file mode 100644 index 0000000..931de16 --- /dev/null +++ b/admin/assets/css/vmmcs.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage vmmcs.css + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/images/icons/antenatal_care_add.png b/admin/assets/images/icons/antenatal_care_add.png new file mode 100644 index 0000000..e85a1b6 Binary files /dev/null and b/admin/assets/images/icons/antenatal_care_add.png differ diff --git a/admin/assets/images/icons/antenatal_cares.png b/admin/assets/images/icons/antenatal_cares.png new file mode 100644 index 0000000..b6fa082 Binary files /dev/null and b/admin/assets/images/icons/antenatal_cares.png differ diff --git a/admin/assets/images/icons/breast_cancer_add.png b/admin/assets/images/icons/breast_cancer_add.png new file mode 100644 index 0000000..0bb68b7 Binary files /dev/null and b/admin/assets/images/icons/breast_cancer_add.png differ diff --git a/admin/assets/images/icons/breast_cancers.png b/admin/assets/images/icons/breast_cancers.png new file mode 100644 index 0000000..aca58ba Binary files /dev/null and b/admin/assets/images/icons/breast_cancers.png differ diff --git a/admin/assets/images/icons/cervical_cancer_add.png b/admin/assets/images/icons/cervical_cancer_add.png new file mode 100644 index 0000000..fdd7a94 Binary files /dev/null and b/admin/assets/images/icons/cervical_cancer_add.png differ diff --git a/admin/assets/images/icons/cervical_cancers.png b/admin/assets/images/icons/cervical_cancers.png new file mode 100644 index 0000000..18aa697 Binary files /dev/null and b/admin/assets/images/icons/cervical_cancers.png differ diff --git a/admin/assets/images/icons/family_planning_add.png b/admin/assets/images/icons/family_planning_add.png new file mode 100644 index 0000000..0c181a9 Binary files /dev/null and b/admin/assets/images/icons/family_planning_add.png differ diff --git a/admin/assets/images/icons/family_plannings.png b/admin/assets/images/icons/family_plannings.png new file mode 100644 index 0000000..7888507 Binary files /dev/null and b/admin/assets/images/icons/family_plannings.png differ diff --git a/admin/assets/images/icons/general_medical_check_up_add.png b/admin/assets/images/icons/general_medical_check_up_add.png new file mode 100644 index 0000000..116ccf8 Binary files /dev/null and b/admin/assets/images/icons/general_medical_check_up_add.png differ diff --git a/admin/assets/images/icons/general_medical_check_ups.png b/admin/assets/images/icons/general_medical_check_ups.png new file mode 100644 index 0000000..6ee5c94 Binary files /dev/null and b/admin/assets/images/icons/general_medical_check_ups.png differ diff --git a/admin/assets/images/icons/health_education_add.png b/admin/assets/images/icons/health_education_add.png new file mode 100644 index 0000000..0521a29 Binary files /dev/null and b/admin/assets/images/icons/health_education_add.png differ diff --git a/admin/assets/images/icons/health_educations.png b/admin/assets/images/icons/health_educations.png new file mode 100644 index 0000000..3ea6034 Binary files /dev/null and b/admin/assets/images/icons/health_educations.png differ diff --git a/admin/assets/images/icons/hiv_counseling_and_testing_add.png b/admin/assets/images/icons/hiv_counseling_and_testing_add.png new file mode 100644 index 0000000..4624caf Binary files /dev/null and b/admin/assets/images/icons/hiv_counseling_and_testing_add.png differ diff --git a/admin/assets/images/icons/hiv_counselings_and_testings.png b/admin/assets/images/icons/hiv_counselings_and_testings.png new file mode 100644 index 0000000..b8cd5cf Binary files /dev/null and b/admin/assets/images/icons/hiv_counselings_and_testings.png differ diff --git a/admin/assets/images/icons/immunisation_add.png b/admin/assets/images/icons/immunisation_add.png new file mode 100644 index 0000000..d7056b1 Binary files /dev/null and b/admin/assets/images/icons/immunisation_add.png differ diff --git a/admin/assets/images/icons/immunisations.png b/admin/assets/images/icons/immunisations.png new file mode 100644 index 0000000..e6e102d Binary files /dev/null and b/admin/assets/images/icons/immunisations.png differ diff --git a/admin/assets/images/icons/index.html b/admin/assets/images/icons/index.html new file mode 100644 index 0000000..fa6d84e --- /dev/null +++ b/admin/assets/images/icons/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/assets/images/icons/payment_add.png b/admin/assets/images/icons/payment_add.png new file mode 100644 index 0000000..4224ebe Binary files /dev/null and b/admin/assets/images/icons/payment_add.png differ diff --git a/admin/assets/images/icons/payments.png b/admin/assets/images/icons/payments.png new file mode 100644 index 0000000..46da006 Binary files /dev/null and b/admin/assets/images/icons/payments.png differ diff --git a/admin/assets/images/icons/prostate_and_testicular_cancer_add.png b/admin/assets/images/icons/prostate_and_testicular_cancer_add.png new file mode 100644 index 0000000..40146c3 Binary files /dev/null and b/admin/assets/images/icons/prostate_and_testicular_cancer_add.png differ diff --git a/admin/assets/images/icons/prostate_and_testicular_cancers.png b/admin/assets/images/icons/prostate_and_testicular_cancers.png new file mode 100644 index 0000000..3ad9166 Binary files /dev/null and b/admin/assets/images/icons/prostate_and_testicular_cancers.png differ diff --git a/admin/assets/images/icons/test_add.png b/admin/assets/images/icons/test_add.png new file mode 100644 index 0000000..75fabdf Binary files /dev/null and b/admin/assets/images/icons/test_add.png differ diff --git a/admin/assets/images/icons/tests.png b/admin/assets/images/icons/tests.png new file mode 100644 index 0000000..dae1911 Binary files /dev/null and b/admin/assets/images/icons/tests.png differ diff --git a/admin/assets/images/icons/tuberculoses.png b/admin/assets/images/icons/tuberculoses.png new file mode 100644 index 0000000..ea80831 Binary files /dev/null and b/admin/assets/images/icons/tuberculoses.png differ diff --git a/admin/assets/images/icons/tuberculosis_add.png b/admin/assets/images/icons/tuberculosis_add.png new file mode 100644 index 0000000..6c43b9f Binary files /dev/null and b/admin/assets/images/icons/tuberculosis_add.png differ diff --git a/admin/assets/images/icons/vmmc_add.png b/admin/assets/images/icons/vmmc_add.png new file mode 100644 index 0000000..bd61fcf Binary files /dev/null and b/admin/assets/images/icons/vmmc_add.png differ diff --git a/admin/assets/images/icons/vmmcs.png b/admin/assets/images/icons/vmmcs.png new file mode 100644 index 0000000..6396ac4 Binary files /dev/null and b/admin/assets/images/icons/vmmcs.png differ diff --git a/admin/assets/images/import.gif b/admin/assets/images/import.gif new file mode 100644 index 0000000..4371cc6 Binary files /dev/null and b/admin/assets/images/import.gif differ diff --git a/admin/assets/images/index.html b/admin/assets/images/index.html new file mode 100644 index 0000000..fa6d84e --- /dev/null +++ b/admin/assets/images/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/assets/images/vdm-component.jpg b/admin/assets/images/vdm-component.jpg new file mode 100644 index 0000000..e402897 Binary files /dev/null and b/admin/assets/images/vdm-component.jpg differ diff --git a/admin/assets/index.html b/admin/assets/index.html new file mode 100644 index 0000000..fa6d84e --- /dev/null +++ b/admin/assets/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/assets/js/admin.js b/admin/assets/js/admin.js new file mode 100644 index 0000000..4c77a9e --- /dev/null +++ b/admin/assets/js/admin.js @@ -0,0 +1,25 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version 1.0.5 + @build 24th April, 2021 + @created 13th August, 2020 + @package eHealth Portal + @subpackage admin.js + @author Oh Martin + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* JS Document */ diff --git a/admin/assets/js/index.html b/admin/assets/js/index.html new file mode 100644 index 0000000..fa6d84e --- /dev/null +++ b/admin/assets/js/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/config.xml b/admin/config.xml new file mode 100644 index 0000000..1d11e57 --- /dev/null +++ b/admin/config.xml @@ -0,0 +1,87 @@ + + +
+ + + + + + + + + + + + + + + + + + +
+
+ +
+
\ No newline at end of file diff --git a/admin/controller.php b/admin/controller.php new file mode 100644 index 0000000..515f0c9 --- /dev/null +++ b/admin/controller.php @@ -0,0 +1,158 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * General Controller of Ehealth_portal component + */ +class Ehealth_portalController extends JControllerLegacy +{ + /** + * Constructor. + * + * @param array $config An optional associative array of configuration settings. + * Recognized key values include 'name', 'default_task', 'model_path', and + * 'view_path' (this list is not meant to be comprehensive). + * + * @since 3.0 + */ + public function __construct($config = array()) + { + // set the default view + $config['default_view'] = 'ehealth_portal'; + + parent::__construct($config); + } + + /** + * display task + * + * @return void + */ + function display($cachable = false, $urlparams = false) + { + // set default view if not set + $view = $this->input->getCmd('view', 'ehealth_portal'); + $data = $this->getViewRelation($view); + $layout = $this->input->get('layout', null, 'WORD'); + $id = $this->input->getInt('id'); + + // Check for edit form. + if(Ehealth_portalHelper::checkArray($data)) + { + if ($data['edit'] && $layout == 'edit' && !$this->checkEditId('com_ehealth_portal.edit.'.$data['view'], $id)) + { + // Somehow the person just went to the form - we don't allow that. + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_UNHELD_ID', $id)); + $this->setMessage($this->getError(), 'error'); + // check if item was opend from other then its own list view + $ref = $this->input->getCmd('ref', 0); + $refid = $this->input->getInt('refid', 0); + // set redirect + if ($refid > 0 && Ehealth_portalHelper::checkString($ref)) + { + // redirect to item of ref + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view='.(string)$ref.'&layout=edit&id='.(int)$refid, false)); + } + elseif (Ehealth_portalHelper::checkString($ref)) + { + + // redirect to ref + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view='.(string)$ref, false)); + } + else + { + // normal redirect back to the list view + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view='.$data['views'], false)); + } + + return false; + } + } + + return parent::display($cachable, $urlparams); + } + + protected function getViewRelation($view) + { + // check the we have a value + if (Ehealth_portalHelper::checkString($view)) + { + // the view relationships + $views = array( + 'payment' => 'payments', + 'general_medical_check_up' => 'general_medical_check_ups', + 'antenatal_care' => 'antenatal_cares', + 'immunisation' => 'immunisations', + 'vmmc' => 'vmmcs', + 'prostate_and_testicular_cancer' => 'prostate_and_testicular_cancers', + 'tuberculosis' => 'tuberculoses', + 'hiv_counseling_and_testing' => 'hiv_counselings_and_testings', + 'family_planning' => 'family_plannings', + 'health_education' => 'health_educations', + 'cervical_cancer' => 'cervical_cancers', + 'breast_cancer' => 'breast_cancers', + 'test' => 'tests', + 'immunisation_vaccine_type' => 'immunisation_vaccine_types', + 'foetal_presentation' => 'foetal_presentations', + 'foetal_lie' => 'foetal_lies', + 'counseling_type' => 'counseling_types', + 'foetal_engagement' => 'foetal_engagements', + 'health_education_topic' => 'health_education_topics', + 'testing_reason' => 'testing_reasons', + 'clinic' => 'clinics', + 'immunisation_type' => 'immunisation_types', + 'unit' => 'units', + 'referral' => 'referrals', + 'planning_type' => 'planning_types', + 'diagnosis_type' => 'diagnosis_types', + 'nonpay_reason' => 'nonpay_reasons', + 'medication' => 'medications', + 'payment_amount' => 'payment_amounts', + 'administration_part' => 'administration_parts', + 'payment_type' => 'payment_types', + 'strength' => 'strengths', + 'site' => 'sites' + ); + // check if this is a list view + if (in_array($view, $views)) + { + // this is a list view + return array('edit' => false, 'view' => array_search($view,$views), 'views' => $view); + } + // check if it is an edit view + elseif (array_key_exists($view, $views)) + { + // this is a edit view + return array('edit' => true, 'view' => $view, 'views' => $views[$view]); + } + } + return false; + } +} diff --git a/admin/controllers/administration_part.php b/admin/controllers/administration_part.php new file mode 100644 index 0000000..2be12c7 --- /dev/null +++ b/admin/controllers/administration_part.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Administration_part Controller + */ +class Ehealth_portalControllerAdministration_part extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Administration_parts'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('administration_part.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.administration_part.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.administration_part.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Administration_part', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=administration_parts' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/administration_parts.php b/admin/controllers/administration_parts.php new file mode 100644 index 0000000..2c65ab6 --- /dev/null +++ b/admin/controllers/administration_parts.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Administration_parts Controller + */ +class Ehealth_portalControllerAdministration_parts extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Administration_part', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('administration_part.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Administration_parts'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Administration_parts_'.$date->format('jS_F_Y'),'Administration parts exported ('.$date->format('jS F, Y').')','administration parts'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=administration_parts', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('administration_part.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Administration_parts'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('administration_part_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'administration_parts'); + $session->set('dataType_VDM_IMPORTINTO', 'administration_part'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_ADMINISTRATION_PARTS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=administration_parts', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/ajax.json.php b/admin/controllers/ajax.json.php new file mode 100644 index 0000000..ba457c8 --- /dev/null +++ b/admin/controllers/ajax.json.php @@ -0,0 +1,111 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Ehealth_portal Ajax Controller + */ +class Ehealth_portalControllerAjax extends JControllerLegacy +{ + public function __construct($config) + { + parent::__construct($config); + // make sure all json stuff are set + JFactory::getDocument()->setMimeEncoding( 'application/json' ); + JResponse::setHeader('Content-Disposition','attachment;filename="getajax.json"'); + JResponse::setHeader("Access-Control-Allow-Origin", "*"); + // load the tasks + $this->registerTask('getImmunisationVaccineType', 'ajax'); + } + + public function ajax() + { + $user = JFactory::getUser(); + $jinput = JFactory::getApplication()->input; + // Check Token! + $token = JSession::getFormToken(); + $call_token = $jinput->get('token', 0, 'ALNUM'); + if($jinput->get($token, 0, 'ALNUM') || $token === $call_token) + { + $task = $this->getTask(); + switch($task) + { + case 'getImmunisationVaccineType': + try + { + $returnRaw = $jinput->get('raw', false, 'BOOLEAN'); + $administration_partValue = $jinput->get('administration_part', NULL, 'INT'); + if($administration_partValue && $user->id != 0) + { + $result = $this->getModel('ajax')->getImmunisationVaccineType($administration_partValue); + } + else + { + $result = false; + } + if($callback = $jinput->get('callback', null, 'CMD')) + { + echo $callback . "(".json_encode($result).");"; + } + elseif($returnRaw) + { + echo json_encode($result); + } + else + { + echo "(".json_encode($result).");"; + } + } + catch(Exception $e) + { + if($callback = $jinput->get('callback', null, 'CMD')) + { + echo $callback."(".json_encode($e).");"; + } + else + { + echo "(".json_encode($e).");"; + } + } + break; + } + } + else + { + if($callback = $jinput->get('callback', null, 'CMD')) + { + echo $callback."(".json_encode(false).");"; + } + else + { + echo "(".json_encode(false).");"; + } + } + } +} diff --git a/admin/controllers/antenatal_care.php b/admin/controllers/antenatal_care.php new file mode 100644 index 0000000..a696c95 --- /dev/null +++ b/admin/controllers/antenatal_care.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Antenatal_care Controller + */ +class Ehealth_portalControllerAntenatal_care extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Antenatal_cares'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('antenatal_care.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.antenatal_care.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.antenatal_care.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Antenatal_care', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=antenatal_cares' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/antenatal_cares.php b/admin/controllers/antenatal_cares.php new file mode 100644 index 0000000..5ced554 --- /dev/null +++ b/admin/controllers/antenatal_cares.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Antenatal_cares Controller + */ +class Ehealth_portalControllerAntenatal_cares extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_ANTENATAL_CARES'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Antenatal_care', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('antenatal_care.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Antenatal_cares'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Antenatal_cares_'.$date->format('jS_F_Y'),'Antenatal cares exported ('.$date->format('jS F, Y').')','antenatal cares'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=antenatal_cares', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('antenatal_care.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Antenatal_cares'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('antenatal_care_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'antenatal_cares'); + $session->set('dataType_VDM_IMPORTINTO', 'antenatal_care'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_ANTENATAL_CARES'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=antenatal_cares', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/breast_cancer.php b/admin/controllers/breast_cancer.php new file mode 100644 index 0000000..8198a51 --- /dev/null +++ b/admin/controllers/breast_cancer.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Breast_cancer Controller + */ +class Ehealth_portalControllerBreast_cancer extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Breast_cancers'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('breast_cancer.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.breast_cancer.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.breast_cancer.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Breast_cancer', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=breast_cancers' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/breast_cancers.php b/admin/controllers/breast_cancers.php new file mode 100644 index 0000000..1cda41d --- /dev/null +++ b/admin/controllers/breast_cancers.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Breast_cancers Controller + */ +class Ehealth_portalControllerBreast_cancers extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_BREAST_CANCERS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Breast_cancer', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('breast_cancer.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Breast_cancers'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Breast_cancers_'.$date->format('jS_F_Y'),'Breast cancers exported ('.$date->format('jS F, Y').')','breast cancers'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=breast_cancers', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('breast_cancer.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Breast_cancers'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('breast_cancer_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'breast_cancers'); + $session->set('dataType_VDM_IMPORTINTO', 'breast_cancer'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_BREAST_CANCERS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=breast_cancers', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/cervical_cancer.php b/admin/controllers/cervical_cancer.php new file mode 100644 index 0000000..4577bae --- /dev/null +++ b/admin/controllers/cervical_cancer.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Cervical_cancer Controller + */ +class Ehealth_portalControllerCervical_cancer extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Cervical_cancers'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('cervical_cancer.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.cervical_cancer.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.cervical_cancer.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Cervical_cancer', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=cervical_cancers' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/cervical_cancers.php b/admin/controllers/cervical_cancers.php new file mode 100644 index 0000000..f084aa5 --- /dev/null +++ b/admin/controllers/cervical_cancers.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Cervical_cancers Controller + */ +class Ehealth_portalControllerCervical_cancers extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_CERVICAL_CANCERS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Cervical_cancer', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('cervical_cancer.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Cervical_cancers'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Cervical_cancers_'.$date->format('jS_F_Y'),'Cervical cancers exported ('.$date->format('jS F, Y').')','cervical cancers'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=cervical_cancers', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('cervical_cancer.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Cervical_cancers'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('cervical_cancer_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'cervical_cancers'); + $session->set('dataType_VDM_IMPORTINTO', 'cervical_cancer'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_CERVICAL_CANCERS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=cervical_cancers', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/clinic.php b/admin/controllers/clinic.php new file mode 100644 index 0000000..3de67bc --- /dev/null +++ b/admin/controllers/clinic.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Clinic Controller + */ +class Ehealth_portalControllerClinic extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Clinics'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('clinic.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.clinic.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.clinic.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Clinic', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=clinics' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/clinics.php b/admin/controllers/clinics.php new file mode 100644 index 0000000..2dd41e1 --- /dev/null +++ b/admin/controllers/clinics.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Clinics Controller + */ +class Ehealth_portalControllerClinics extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_CLINICS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Clinic', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('clinic.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Clinics'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Clinics_'.$date->format('jS_F_Y'),'Clinics exported ('.$date->format('jS F, Y').')','clinics'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=clinics', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('clinic.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Clinics'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('clinic_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'clinics'); + $session->set('dataType_VDM_IMPORTINTO', 'clinic'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_CLINICS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=clinics', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/counseling_type.php b/admin/controllers/counseling_type.php new file mode 100644 index 0000000..8c24230 --- /dev/null +++ b/admin/controllers/counseling_type.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Counseling_type Controller + */ +class Ehealth_portalControllerCounseling_type extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Counseling_types'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('counseling_type.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.counseling_type.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.counseling_type.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Counseling_type', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=counseling_types' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/counseling_types.php b/admin/controllers/counseling_types.php new file mode 100644 index 0000000..292bfc9 --- /dev/null +++ b/admin/controllers/counseling_types.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Counseling_types Controller + */ +class Ehealth_portalControllerCounseling_types extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_COUNSELING_TYPES'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Counseling_type', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('counseling_type.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Counseling_types'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Counseling_types_'.$date->format('jS_F_Y'),'Counseling types exported ('.$date->format('jS F, Y').')','counseling types'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=counseling_types', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('counseling_type.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Counseling_types'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('counseling_type_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'counseling_types'); + $session->set('dataType_VDM_IMPORTINTO', 'counseling_type'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_COUNSELING_TYPES'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=counseling_types', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/diagnosis_type.php b/admin/controllers/diagnosis_type.php new file mode 100644 index 0000000..9a21865 --- /dev/null +++ b/admin/controllers/diagnosis_type.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Diagnosis_type Controller + */ +class Ehealth_portalControllerDiagnosis_type extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Diagnosis_types'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('diagnosis_type.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.diagnosis_type.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.diagnosis_type.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Diagnosis_type', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=diagnosis_types' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/diagnosis_types.php b/admin/controllers/diagnosis_types.php new file mode 100644 index 0000000..9221645 --- /dev/null +++ b/admin/controllers/diagnosis_types.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Diagnosis_types Controller + */ +class Ehealth_portalControllerDiagnosis_types extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Diagnosis_type', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('diagnosis_type.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Diagnosis_types'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Diagnosis_types_'.$date->format('jS_F_Y'),'Diagnosis types exported ('.$date->format('jS F, Y').')','diagnosis types'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=diagnosis_types', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('diagnosis_type.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Diagnosis_types'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('diagnosis_type_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'diagnosis_types'); + $session->set('dataType_VDM_IMPORTINTO', 'diagnosis_type'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_DIAGNOSIS_TYPES'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=diagnosis_types', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/ehealth_portal.php b/admin/controllers/ehealth_portal.php new file mode 100644 index 0000000..8711457 --- /dev/null +++ b/admin/controllers/ehealth_portal.php @@ -0,0 +1,35 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +/** + * Ehealth_portal Controller + */ +class Ehealth_portalControllerEhealth_portal extends JControllerAdmin +{ + +} diff --git a/admin/controllers/family_planning.php b/admin/controllers/family_planning.php new file mode 100644 index 0000000..5c7524d --- /dev/null +++ b/admin/controllers/family_planning.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Family_planning Controller + */ +class Ehealth_portalControllerFamily_planning extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Family_plannings'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('family_planning.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.family_planning.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.family_planning.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Family_planning', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=family_plannings' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/family_plannings.php b/admin/controllers/family_plannings.php new file mode 100644 index 0000000..06f389f --- /dev/null +++ b/admin/controllers/family_plannings.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Family_plannings Controller + */ +class Ehealth_portalControllerFamily_plannings extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_FAMILY_PLANNINGS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Family_planning', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('family_planning.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Family_plannings'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Family_plannings_'.$date->format('jS_F_Y'),'Family plannings exported ('.$date->format('jS F, Y').')','family plannings'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=family_plannings', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('family_planning.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Family_plannings'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('family_planning_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'family_plannings'); + $session->set('dataType_VDM_IMPORTINTO', 'family_planning'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_FAMILY_PLANNINGS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=family_plannings', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/foetal_engagement.php b/admin/controllers/foetal_engagement.php new file mode 100644 index 0000000..c9e2eae --- /dev/null +++ b/admin/controllers/foetal_engagement.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Foetal_engagement Controller + */ +class Ehealth_portalControllerFoetal_engagement extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Foetal_engagements'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('foetal_engagement.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.foetal_engagement.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.foetal_engagement.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Foetal_engagement', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=foetal_engagements' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/foetal_engagements.php b/admin/controllers/foetal_engagements.php new file mode 100644 index 0000000..b724ebb --- /dev/null +++ b/admin/controllers/foetal_engagements.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Foetal_engagements Controller + */ +class Ehealth_portalControllerFoetal_engagements extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Foetal_engagement', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('foetal_engagement.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Foetal_engagements'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Foetal_engagements_'.$date->format('jS_F_Y'),'Foetal engagements exported ('.$date->format('jS F, Y').')','foetal engagements'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=foetal_engagements', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('foetal_engagement.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Foetal_engagements'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('foetal_engagement_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'foetal_engagements'); + $session->set('dataType_VDM_IMPORTINTO', 'foetal_engagement'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_FOETAL_ENGAGEMENTS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=foetal_engagements', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/foetal_lie.php b/admin/controllers/foetal_lie.php new file mode 100644 index 0000000..f327d09 --- /dev/null +++ b/admin/controllers/foetal_lie.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Foetal_lie Controller + */ +class Ehealth_portalControllerFoetal_lie extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Foetal_lies'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('foetal_lie.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.foetal_lie.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.foetal_lie.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Foetal_lie', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=foetal_lies' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/foetal_lies.php b/admin/controllers/foetal_lies.php new file mode 100644 index 0000000..40b3f6a --- /dev/null +++ b/admin/controllers/foetal_lies.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Foetal_lies Controller + */ +class Ehealth_portalControllerFoetal_lies extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_FOETAL_LIES'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Foetal_lie', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('foetal_lie.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Foetal_lies'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Foetal_lies_'.$date->format('jS_F_Y'),'Foetal lies exported ('.$date->format('jS F, Y').')','foetal lies'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=foetal_lies', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('foetal_lie.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Foetal_lies'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('foetal_lie_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'foetal_lies'); + $session->set('dataType_VDM_IMPORTINTO', 'foetal_lie'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_FOETAL_LIES'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=foetal_lies', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/foetal_presentation.php b/admin/controllers/foetal_presentation.php new file mode 100644 index 0000000..4629c50 --- /dev/null +++ b/admin/controllers/foetal_presentation.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Foetal_presentation Controller + */ +class Ehealth_portalControllerFoetal_presentation extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Foetal_presentations'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('foetal_presentation.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.foetal_presentation.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.foetal_presentation.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Foetal_presentation', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=foetal_presentations' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/foetal_presentations.php b/admin/controllers/foetal_presentations.php new file mode 100644 index 0000000..b810c5c --- /dev/null +++ b/admin/controllers/foetal_presentations.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Foetal_presentations Controller + */ +class Ehealth_portalControllerFoetal_presentations extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Foetal_presentation', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('foetal_presentation.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Foetal_presentations'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Foetal_presentations_'.$date->format('jS_F_Y'),'Foetal presentations exported ('.$date->format('jS F, Y').')','foetal presentations'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=foetal_presentations', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('foetal_presentation.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Foetal_presentations'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('foetal_presentation_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'foetal_presentations'); + $session->set('dataType_VDM_IMPORTINTO', 'foetal_presentation'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_FOETAL_PRESENTATIONS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=foetal_presentations', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/general_medical_check_up.php b/admin/controllers/general_medical_check_up.php new file mode 100644 index 0000000..d569fc5 --- /dev/null +++ b/admin/controllers/general_medical_check_up.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * General_medical_check_up Controller + */ +class Ehealth_portalControllerGeneral_medical_check_up extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'General_medical_check_ups'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('general_medical_check_up.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.general_medical_check_up.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.general_medical_check_up.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('General_medical_check_up', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=general_medical_check_ups' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/general_medical_check_ups.php b/admin/controllers/general_medical_check_ups.php new file mode 100644 index 0000000..b71e3a1 --- /dev/null +++ b/admin/controllers/general_medical_check_ups.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * General_medical_check_ups Controller + */ +class Ehealth_portalControllerGeneral_medical_check_ups extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'General_medical_check_up', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('general_medical_check_up.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('General_medical_check_ups'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'General_medical_check_ups_'.$date->format('jS_F_Y'),'General medical check ups exported ('.$date->format('jS F, Y').')','general medical check ups'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=general_medical_check_ups', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('general_medical_check_up.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('General_medical_check_ups'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('general_medical_check_up_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'general_medical_check_ups'); + $session->set('dataType_VDM_IMPORTINTO', 'general_medical_check_up'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_GENERAL_MEDICAL_CHECK_UPS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=general_medical_check_ups', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/health_education.php b/admin/controllers/health_education.php new file mode 100644 index 0000000..197d416 --- /dev/null +++ b/admin/controllers/health_education.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Health_education Controller + */ +class Ehealth_portalControllerHealth_education extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Health_educations'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('health_education.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.health_education.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.health_education.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Health_education', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=health_educations' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/health_education_topic.php b/admin/controllers/health_education_topic.php new file mode 100644 index 0000000..fb43b44 --- /dev/null +++ b/admin/controllers/health_education_topic.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Health_education_topic Controller + */ +class Ehealth_portalControllerHealth_education_topic extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Health_education_topics'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('health_education_topic.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.health_education_topic.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.health_education_topic.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Health_education_topic', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=health_education_topics' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/health_education_topics.php b/admin/controllers/health_education_topics.php new file mode 100644 index 0000000..917557b --- /dev/null +++ b/admin/controllers/health_education_topics.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Health_education_topics Controller + */ +class Ehealth_portalControllerHealth_education_topics extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Health_education_topic', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('health_education_topic.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Health_education_topics'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Health_education_topics_'.$date->format('jS_F_Y'),'Health education topics exported ('.$date->format('jS F, Y').')','health education topics'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=health_education_topics', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('health_education_topic.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Health_education_topics'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('health_education_topic_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'health_education_topics'); + $session->set('dataType_VDM_IMPORTINTO', 'health_education_topic'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_HEALTH_EDUCATION_TOPICS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=health_education_topics', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/health_educations.php b/admin/controllers/health_educations.php new file mode 100644 index 0000000..2a257d3 --- /dev/null +++ b/admin/controllers/health_educations.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Health_educations Controller + */ +class Ehealth_portalControllerHealth_educations extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Health_education', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('health_education.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Health_educations'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Health_educations_'.$date->format('jS_F_Y'),'Health educations exported ('.$date->format('jS F, Y').')','health educations'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=health_educations', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('health_education.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Health_educations'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('health_education_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'health_educations'); + $session->set('dataType_VDM_IMPORTINTO', 'health_education'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_HEALTH_EDUCATIONS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=health_educations', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/hiv_counseling_and_testing.php b/admin/controllers/hiv_counseling_and_testing.php new file mode 100644 index 0000000..5fc9ad8 --- /dev/null +++ b/admin/controllers/hiv_counseling_and_testing.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Hiv_counseling_and_testing Controller + */ +class Ehealth_portalControllerHiv_counseling_and_testing extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Hiv_counselings_and_testings'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('hiv_counseling_and_testing.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.hiv_counseling_and_testing.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.hiv_counseling_and_testing.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Hiv_counseling_and_testing', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=hiv_counselings_and_testings' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/hiv_counselings_and_testings.php b/admin/controllers/hiv_counselings_and_testings.php new file mode 100644 index 0000000..2a646e0 --- /dev/null +++ b/admin/controllers/hiv_counselings_and_testings.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Hiv_counselings_and_testings Controller + */ +class Ehealth_portalControllerHiv_counselings_and_testings extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Hiv_counseling_and_testing', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('hiv_counseling_and_testing.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Hiv_counselings_and_testings'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Hiv_counselings_and_testings_'.$date->format('jS_F_Y'),'Hiv counselings and testings exported ('.$date->format('jS F, Y').')','hiv counselings and testings'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=hiv_counselings_and_testings', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('hiv_counseling_and_testing.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Hiv_counselings_and_testings'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('hiv_counseling_and_testing_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'hiv_counselings_and_testings'); + $session->set('dataType_VDM_IMPORTINTO', 'hiv_counseling_and_testing'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_HIV_COUNSELINGS_AND_TESTINGS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=hiv_counselings_and_testings', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/immunisation.php b/admin/controllers/immunisation.php new file mode 100644 index 0000000..3501617 --- /dev/null +++ b/admin/controllers/immunisation.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Immunisation Controller + */ +class Ehealth_portalControllerImmunisation extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Immunisations'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('immunisation.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.immunisation.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.immunisation.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Immunisation', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=immunisations' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/immunisation_type.php b/admin/controllers/immunisation_type.php new file mode 100644 index 0000000..b33e8f4 --- /dev/null +++ b/admin/controllers/immunisation_type.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Immunisation_type Controller + */ +class Ehealth_portalControllerImmunisation_type extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Immunisation_types'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('immunisation_type.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.immunisation_type.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.immunisation_type.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Immunisation_type', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=immunisation_types' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/immunisation_types.php b/admin/controllers/immunisation_types.php new file mode 100644 index 0000000..8f0c4b0 --- /dev/null +++ b/admin/controllers/immunisation_types.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Immunisation_types Controller + */ +class Ehealth_portalControllerImmunisation_types extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_IMMUNISATION_TYPES'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Immunisation_type', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('immunisation_type.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Immunisation_types'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Immunisation_types_'.$date->format('jS_F_Y'),'Immunisation types exported ('.$date->format('jS F, Y').')','immunisation types'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=immunisation_types', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('immunisation_type.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Immunisation_types'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('immunisation_type_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'immunisation_types'); + $session->set('dataType_VDM_IMPORTINTO', 'immunisation_type'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_IMMUNISATION_TYPES'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=immunisation_types', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/immunisation_vaccine_type.php b/admin/controllers/immunisation_vaccine_type.php new file mode 100644 index 0000000..1dcae70 --- /dev/null +++ b/admin/controllers/immunisation_vaccine_type.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Immunisation_vaccine_type Controller + */ +class Ehealth_portalControllerImmunisation_vaccine_type extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Immunisation_vaccine_types'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('immunisation_vaccine_type.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.immunisation_vaccine_type.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.immunisation_vaccine_type.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Immunisation_vaccine_type', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=immunisation_vaccine_types' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/immunisation_vaccine_types.php b/admin/controllers/immunisation_vaccine_types.php new file mode 100644 index 0000000..9d91dd5 --- /dev/null +++ b/admin/controllers/immunisation_vaccine_types.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Immunisation_vaccine_types Controller + */ +class Ehealth_portalControllerImmunisation_vaccine_types extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Immunisation_vaccine_type', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('immunisation_vaccine_type.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Immunisation_vaccine_types'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Immunisation_vaccine_types_'.$date->format('jS_F_Y'),'Immunisation vaccine types exported ('.$date->format('jS F, Y').')','immunisation vaccine types'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=immunisation_vaccine_types', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('immunisation_vaccine_type.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Immunisation_vaccine_types'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('immunisation_vaccine_type_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'immunisation_vaccine_types'); + $session->set('dataType_VDM_IMPORTINTO', 'immunisation_vaccine_type'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_IMMUNISATION_VACCINE_TYPES'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=immunisation_vaccine_types', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/immunisations.php b/admin/controllers/immunisations.php new file mode 100644 index 0000000..6086c98 --- /dev/null +++ b/admin/controllers/immunisations.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Immunisations Controller + */ +class Ehealth_portalControllerImmunisations extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_IMMUNISATIONS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Immunisation', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('immunisation.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Immunisations'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Immunisations_'.$date->format('jS_F_Y'),'Immunisations exported ('.$date->format('jS F, Y').')','immunisations'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=immunisations', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('immunisation.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Immunisations'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('immunisation_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'immunisations'); + $session->set('dataType_VDM_IMPORTINTO', 'immunisation'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_IMMUNISATIONS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=immunisations', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/import.php b/admin/controllers/import.php new file mode 100644 index 0000000..070b725 --- /dev/null +++ b/admin/controllers/import.php @@ -0,0 +1,69 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Ehealth_portal Import Controller + */ +class Ehealth_portalControllerImport extends JControllerLegacy +{ + /** + * Import an spreadsheet. + * + * @return void + */ + public function import() + { + // Check for request forgeries + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + $model = $this->getModel('import'); + if ($model->import()) + { + $cache = JFactory::getCache('mod_menu'); + $cache->clean(); + // TODO: Reset the users acl here as well to kill off any missing bits + } + + $app = JFactory::getApplication(); + $redirect_url = $app->getUserState('com_ehealth_portal.redirect_url'); + if (empty($redirect_url)) + { + $redirect_url = JRoute::_('index.php?option=com_ehealth_portal&view=import', false); + } + else + { + // wipe out the user state when we're going to redirect + $app->setUserState('com_ehealth_portal.redirect_url', ''); + $app->setUserState('com_ehealth_portal.message', ''); + $app->setUserState('com_ehealth_portal.extension_message', ''); + } + $this->setRedirect($redirect_url); + } +} diff --git a/admin/controllers/index.html b/admin/controllers/index.html new file mode 100644 index 0000000..fa6d84e --- /dev/null +++ b/admin/controllers/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/controllers/medication.php b/admin/controllers/medication.php new file mode 100644 index 0000000..ecd8451 --- /dev/null +++ b/admin/controllers/medication.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Medication Controller + */ +class Ehealth_portalControllerMedication extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Medications'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('medication.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.medication.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.medication.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Medication', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=medications' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/medications.php b/admin/controllers/medications.php new file mode 100644 index 0000000..d9d6950 --- /dev/null +++ b/admin/controllers/medications.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Medications Controller + */ +class Ehealth_portalControllerMedications extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_MEDICATIONS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Medication', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('medication.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Medications'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Medications_'.$date->format('jS_F_Y'),'Medications exported ('.$date->format('jS F, Y').')','medications'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=medications', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('medication.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Medications'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('medication_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'medications'); + $session->set('dataType_VDM_IMPORTINTO', 'medication'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_MEDICATIONS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=medications', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/nonpay_reason.php b/admin/controllers/nonpay_reason.php new file mode 100644 index 0000000..7408608 --- /dev/null +++ b/admin/controllers/nonpay_reason.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Nonpay_reason Controller + */ +class Ehealth_portalControllerNonpay_reason extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Nonpay_reasons'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('nonpay_reason.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.nonpay_reason.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.nonpay_reason.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Nonpay_reason', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=nonpay_reasons' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/nonpay_reasons.php b/admin/controllers/nonpay_reasons.php new file mode 100644 index 0000000..4d6a6d6 --- /dev/null +++ b/admin/controllers/nonpay_reasons.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Nonpay_reasons Controller + */ +class Ehealth_portalControllerNonpay_reasons extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_NONPAY_REASONS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Nonpay_reason', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('nonpay_reason.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Nonpay_reasons'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Nonpay_reasons_'.$date->format('jS_F_Y'),'Nonpay reasons exported ('.$date->format('jS F, Y').')','nonpay reasons'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=nonpay_reasons', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('nonpay_reason.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Nonpay_reasons'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('nonpay_reason_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'nonpay_reasons'); + $session->set('dataType_VDM_IMPORTINTO', 'nonpay_reason'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_NONPAY_REASONS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=nonpay_reasons', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/patient_queue.php b/admin/controllers/patient_queue.php new file mode 100644 index 0000000..e67cc17 --- /dev/null +++ b/admin/controllers/patient_queue.php @@ -0,0 +1,46 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Ehealth_portal Patient_queue Controller + */ +class Ehealth_portalControllerPatient_queue extends JControllerLegacy +{ + public function __construct($config) + { + parent::__construct($config); + } + + public function dashboard() + { + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal', false)); + return; + } +} diff --git a/admin/controllers/payment.php b/admin/controllers/payment.php new file mode 100644 index 0000000..d3e066b --- /dev/null +++ b/admin/controllers/payment.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Payment Controller + */ +class Ehealth_portalControllerPayment extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Payments'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('payment.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.payment.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.payment.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Payment', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=payments' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/payment_amount.php b/admin/controllers/payment_amount.php new file mode 100644 index 0000000..8ef70ff --- /dev/null +++ b/admin/controllers/payment_amount.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Payment_amount Controller + */ +class Ehealth_portalControllerPayment_amount extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Payment_amounts'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('payment_amount.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.payment_amount.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.payment_amount.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Payment_amount', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=payment_amounts' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/payment_amounts.php b/admin/controllers/payment_amounts.php new file mode 100644 index 0000000..f62c6bc --- /dev/null +++ b/admin/controllers/payment_amounts.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Payment_amounts Controller + */ +class Ehealth_portalControllerPayment_amounts extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Payment_amount', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('payment_amount.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Payment_amounts'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Payment_amounts_'.$date->format('jS_F_Y'),'Payment amounts exported ('.$date->format('jS F, Y').')','payment amounts'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=payment_amounts', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('payment_amount.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Payment_amounts'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('payment_amount_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'payment_amounts'); + $session->set('dataType_VDM_IMPORTINTO', 'payment_amount'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_PAYMENT_AMOUNTS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=payment_amounts', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/payment_type.php b/admin/controllers/payment_type.php new file mode 100644 index 0000000..afbb061 --- /dev/null +++ b/admin/controllers/payment_type.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Payment_type Controller + */ +class Ehealth_portalControllerPayment_type extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Payment_types'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('payment_type.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.payment_type.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.payment_type.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Payment_type', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=payment_types' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/payment_types.php b/admin/controllers/payment_types.php new file mode 100644 index 0000000..2e7aa34 --- /dev/null +++ b/admin/controllers/payment_types.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Payment_types Controller + */ +class Ehealth_portalControllerPayment_types extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_PAYMENT_TYPES'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Payment_type', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('payment_type.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Payment_types'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Payment_types_'.$date->format('jS_F_Y'),'Payment types exported ('.$date->format('jS F, Y').')','payment types'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=payment_types', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('payment_type.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Payment_types'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('payment_type_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'payment_types'); + $session->set('dataType_VDM_IMPORTINTO', 'payment_type'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_PAYMENT_TYPES'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=payment_types', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/payments.php b/admin/controllers/payments.php new file mode 100644 index 0000000..40346a2 --- /dev/null +++ b/admin/controllers/payments.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Payments Controller + */ +class Ehealth_portalControllerPayments extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_PAYMENTS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Payment', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('payment.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Payments'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Payments_'.$date->format('jS_F_Y'),'Payments exported ('.$date->format('jS F, Y').')','payments'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=payments', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('payment.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Payments'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('payment_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'payments'); + $session->set('dataType_VDM_IMPORTINTO', 'payment'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_PAYMENTS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=payments', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/planning_type.php b/admin/controllers/planning_type.php new file mode 100644 index 0000000..2df221f --- /dev/null +++ b/admin/controllers/planning_type.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Planning_type Controller + */ +class Ehealth_portalControllerPlanning_type extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Planning_types'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('planning_type.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.planning_type.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.planning_type.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Planning_type', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=planning_types' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/planning_types.php b/admin/controllers/planning_types.php new file mode 100644 index 0000000..9c00959 --- /dev/null +++ b/admin/controllers/planning_types.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Planning_types Controller + */ +class Ehealth_portalControllerPlanning_types extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_PLANNING_TYPES'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Planning_type', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('planning_type.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Planning_types'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Planning_types_'.$date->format('jS_F_Y'),'Planning types exported ('.$date->format('jS F, Y').')','planning types'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=planning_types', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('planning_type.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Planning_types'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('planning_type_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'planning_types'); + $session->set('dataType_VDM_IMPORTINTO', 'planning_type'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_PLANNING_TYPES'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=planning_types', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/prostate_and_testicular_cancer.php b/admin/controllers/prostate_and_testicular_cancer.php new file mode 100644 index 0000000..ef5b347 --- /dev/null +++ b/admin/controllers/prostate_and_testicular_cancer.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Prostate_and_testicular_cancer Controller + */ +class Ehealth_portalControllerProstate_and_testicular_cancer extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Prostate_and_testicular_cancers'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('prostate_and_testicular_cancer.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.prostate_and_testicular_cancer.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.prostate_and_testicular_cancer.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Prostate_and_testicular_cancer', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=prostate_and_testicular_cancers' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/prostate_and_testicular_cancers.php b/admin/controllers/prostate_and_testicular_cancers.php new file mode 100644 index 0000000..aeacb47 --- /dev/null +++ b/admin/controllers/prostate_and_testicular_cancers.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Prostate_and_testicular_cancers Controller + */ +class Ehealth_portalControllerProstate_and_testicular_cancers extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Prostate_and_testicular_cancer', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('prostate_and_testicular_cancer.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Prostate_and_testicular_cancers'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Prostate_and_testicular_cancers_'.$date->format('jS_F_Y'),'Prostate and testicular cancers exported ('.$date->format('jS F, Y').')','prostate and testicular cancers'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=prostate_and_testicular_cancers', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('prostate_and_testicular_cancer.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Prostate_and_testicular_cancers'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('prostate_and_testicular_cancer_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'prostate_and_testicular_cancers'); + $session->set('dataType_VDM_IMPORTINTO', 'prostate_and_testicular_cancer'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_PROSTATE_AND_TESTICULAR_CANCERS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=prostate_and_testicular_cancers', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/referral.php b/admin/controllers/referral.php new file mode 100644 index 0000000..83a82c2 --- /dev/null +++ b/admin/controllers/referral.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Referral Controller + */ +class Ehealth_portalControllerReferral extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Referrals'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('referral.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.referral.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.referral.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Referral', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=referrals' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/referrals.php b/admin/controllers/referrals.php new file mode 100644 index 0000000..d814f97 --- /dev/null +++ b/admin/controllers/referrals.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Referrals Controller + */ +class Ehealth_portalControllerReferrals extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_REFERRALS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Referral', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('referral.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Referrals'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Referrals_'.$date->format('jS_F_Y'),'Referrals exported ('.$date->format('jS F, Y').')','referrals'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=referrals', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('referral.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Referrals'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('referral_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'referrals'); + $session->set('dataType_VDM_IMPORTINTO', 'referral'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_REFERRALS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=referrals', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/site.php b/admin/controllers/site.php new file mode 100644 index 0000000..85d1e09 --- /dev/null +++ b/admin/controllers/site.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Site Controller + */ +class Ehealth_portalControllerSite extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Sites'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('site.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.site.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.site.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Site', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=sites' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/sites.php b/admin/controllers/sites.php new file mode 100644 index 0000000..6ef0b9c --- /dev/null +++ b/admin/controllers/sites.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Sites Controller + */ +class Ehealth_portalControllerSites extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_SITES'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Site', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('site.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Sites'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Sites_'.$date->format('jS_F_Y'),'Sites exported ('.$date->format('jS F, Y').')','sites'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=sites', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('site.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Sites'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('site_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'sites'); + $session->set('dataType_VDM_IMPORTINTO', 'site'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_SITES'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=sites', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/strength.php b/admin/controllers/strength.php new file mode 100644 index 0000000..5ce7462 --- /dev/null +++ b/admin/controllers/strength.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Strength Controller + */ +class Ehealth_portalControllerStrength extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Strengths'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('strength.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.strength.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.strength.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Strength', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=strengths' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/strengths.php b/admin/controllers/strengths.php new file mode 100644 index 0000000..d331f5c --- /dev/null +++ b/admin/controllers/strengths.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Strengths Controller + */ +class Ehealth_portalControllerStrengths extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_STRENGTHS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Strength', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('strength.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Strengths'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Strengths_'.$date->format('jS_F_Y'),'Strengths exported ('.$date->format('jS F, Y').')','strengths'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=strengths', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('strength.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Strengths'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('strength_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'strengths'); + $session->set('dataType_VDM_IMPORTINTO', 'strength'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_STRENGTHS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=strengths', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/test.php b/admin/controllers/test.php new file mode 100644 index 0000000..d14337a --- /dev/null +++ b/admin/controllers/test.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Test Controller + */ +class Ehealth_portalControllerTest extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Tests'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('test.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.test.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.test.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Test', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=tests' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/testing_reason.php b/admin/controllers/testing_reason.php new file mode 100644 index 0000000..f61207a --- /dev/null +++ b/admin/controllers/testing_reason.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Testing_reason Controller + */ +class Ehealth_portalControllerTesting_reason extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Testing_reasons'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('testing_reason.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.testing_reason.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.testing_reason.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Testing_reason', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=testing_reasons' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/testing_reasons.php b/admin/controllers/testing_reasons.php new file mode 100644 index 0000000..470514a --- /dev/null +++ b/admin/controllers/testing_reasons.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Testing_reasons Controller + */ +class Ehealth_portalControllerTesting_reasons extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_TESTING_REASONS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Testing_reason', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('testing_reason.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Testing_reasons'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Testing_reasons_'.$date->format('jS_F_Y'),'Testing reasons exported ('.$date->format('jS F, Y').')','testing reasons'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=testing_reasons', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('testing_reason.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Testing_reasons'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('testing_reason_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'testing_reasons'); + $session->set('dataType_VDM_IMPORTINTO', 'testing_reason'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_TESTING_REASONS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=testing_reasons', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/tests.php b/admin/controllers/tests.php new file mode 100644 index 0000000..1ab4b35 --- /dev/null +++ b/admin/controllers/tests.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Tests Controller + */ +class Ehealth_portalControllerTests extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_TESTS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Test', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('test.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Tests'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Tests_'.$date->format('jS_F_Y'),'Tests exported ('.$date->format('jS F, Y').')','tests'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=tests', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('test.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Tests'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('test_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'tests'); + $session->set('dataType_VDM_IMPORTINTO', 'test'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_TESTS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=tests', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/tuberculoses.php b/admin/controllers/tuberculoses.php new file mode 100644 index 0000000..139fa44 --- /dev/null +++ b/admin/controllers/tuberculoses.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Tuberculoses Controller + */ +class Ehealth_portalControllerTuberculoses extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_TUBERCULOSES'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Tuberculosis', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('tuberculosis.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Tuberculoses'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Tuberculoses_'.$date->format('jS_F_Y'),'Tuberculoses exported ('.$date->format('jS F, Y').')','tuberculoses'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=tuberculoses', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('tuberculosis.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Tuberculoses'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('tuberculosis_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'tuberculoses'); + $session->set('dataType_VDM_IMPORTINTO', 'tuberculosis'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_TUBERCULOSES'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=tuberculoses', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/tuberculosis.php b/admin/controllers/tuberculosis.php new file mode 100644 index 0000000..594dcc5 --- /dev/null +++ b/admin/controllers/tuberculosis.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Tuberculosis Controller + */ +class Ehealth_portalControllerTuberculosis extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Tuberculoses'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('tuberculosis.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.tuberculosis.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.tuberculosis.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Tuberculosis', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=tuberculoses' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/unit.php b/admin/controllers/unit.php new file mode 100644 index 0000000..acd12d5 --- /dev/null +++ b/admin/controllers/unit.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Unit Controller + */ +class Ehealth_portalControllerUnit extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Units'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('unit.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.unit.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.unit.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Unit', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=units' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/units.php b/admin/controllers/units.php new file mode 100644 index 0000000..9073428 --- /dev/null +++ b/admin/controllers/units.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Units Controller + */ +class Ehealth_portalControllerUnits extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_UNITS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Unit', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('unit.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Units'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Units_'.$date->format('jS_F_Y'),'Units exported ('.$date->format('jS F, Y').')','units'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=units', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('unit.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Units'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('unit_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'units'); + $session->set('dataType_VDM_IMPORTINTO', 'unit'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_UNITS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=units', false), $message, 'error'); + return; + } +} diff --git a/admin/controllers/vmmc.php b/admin/controllers/vmmc.php new file mode 100644 index 0000000..1bb80ea --- /dev/null +++ b/admin/controllers/vmmc.php @@ -0,0 +1,330 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Vmmc Controller + */ +class Ehealth_portalControllerVmmc extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + /** + * Class constructor. + * + * @param array $config A named array of configuration variables. + * + * @since 1.6 + */ + public function __construct($config = array()) + { + $this->view_list = 'Vmmcs'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Get user object. + $user = JFactory::getUser(); + // Access check. + $access = $user->authorise('vmmc.access', 'com_ehealth_portal'); + if (!$access) + { + return false; + } + + // In the absense of better information, revert to the component permissions. + return parent::allowAdd($data); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('core.edit', 'com_ehealth_portal.vmmc.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal.vmmc.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('core.edit.own', 'com_ehealth_portal')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return parent::allowEdit($data, $key); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 1.6 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + // get the referral options (old method use return instead see parent) + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // get redirect info. + $append = parent::getRedirectToItemAppend($recordId, $urlVar); + + // set the referral options + if ($refid && $ref) + { + $append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append; + } + elseif ($ref) + { + $append = '&ref='. (string)$ref . $append; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Vmmc', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=vmmcs' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + + $cancel = parent::cancel($key); + + if (!is_null($return) && JUri::isInternal(base64_decode($return))) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referral options + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + // Check if there is a return value + $return = $this->input->get('return', null, 'base64'); + $canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return))); + + if ($this->ref || $this->refid || $canReturn) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + // This is not needed since parent save already does this + // Due to the ref and refid implementation we need to add this + if ($canReturn) + { + $redirect = base64_decode($return); + + // Redirect to the return value. + $this->setRedirect( + JRoute::_( + $redirect, false + ) + ); + } + elseif ($this->refid && $this->ref) + { + $redirect = '&view=' . (string)$this->ref . '&layout=edit&id=' . (int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view=' . (string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/vmmcs.php b/admin/controllers/vmmcs.php new file mode 100644 index 0000000..3b446c3 --- /dev/null +++ b/admin/controllers/vmmcs.php @@ -0,0 +1,122 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Utilities\ArrayHelper; + +/** + * Vmmcs Controller + */ +class Ehealth_portalControllerVmmcs extends JControllerAdmin +{ + /** + * The prefix to use with controller messages. + * + * @var string + * @since 1.6 + */ + protected $text_prefix = 'COM_EHEALTH_PORTAL_VMMCS'; + + /** + * Method to get a model object, loading it if required. + * + * @param string $name The model name. Optional. + * @param string $prefix The class prefix. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JModelLegacy The model. + * + * @since 1.6 + */ + public function getModel($name = 'Vmmc', $prefix = 'Ehealth_portalModel', $config = array('ignore_request' => true)) + { + return parent::getModel($name, $prefix, $config); + } + + public function exportData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if export is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('vmmc.export', 'com_ehealth_portal') && $user->authorise('core.export', 'com_ehealth_portal')) + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + // Sanitize the input + $pks = ArrayHelper::toInteger($pks); + // Get the model + $model = $this->getModel('Vmmcs'); + // get the data to export + $data = $model->getExportData($pks); + if (Ehealth_portalHelper::checkArray($data)) + { + // now set the data to the spreadsheet + $date = JFactory::getDate(); + Ehealth_portalHelper::xls($data,'Vmmcs_'.$date->format('jS_F_Y'),'Vmmcs exported ('.$date->format('jS F, Y').')','vmmcs'); + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_EXPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=vmmcs', false), $message, 'error'); + return; + } + + + public function importData() + { + // Check for request forgeries + JSession::checkToken() or die(JText::_('JINVALID_TOKEN')); + // check if import is allowed for this user. + $user = JFactory::getUser(); + if ($user->authorise('vmmc.import', 'com_ehealth_portal') && $user->authorise('core.import', 'com_ehealth_portal')) + { + // Get the import model + $model = $this->getModel('Vmmcs'); + // get the headers to import + $headers = $model->getExImPortHeaders(); + if (Ehealth_portalHelper::checkObject($headers)) + { + // Load headers to session. + $session = JFactory::getSession(); + $headers = json_encode($headers); + $session->set('vmmc_VDM_IMPORTHEADERS', $headers); + $session->set('backto_VDM_IMPORT', 'vmmcs'); + $session->set('dataType_VDM_IMPORTINTO', 'vmmc'); + // Redirect to import view. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_VMMCS'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=import', false), $message); + return; + } + } + // Redirect to the list screen with error. + $message = JText::_('COM_EHEALTH_PORTAL_IMPORT_FAILED'); + $this->setRedirect(JRoute::_('index.php?option=com_ehealth_portal&view=vmmcs', false), $message, 'error'); + return; + } +} diff --git a/admin/ehealth_portal.php b/admin/ehealth_portal.php new file mode 100644 index 0000000..a86deee --- /dev/null +++ b/admin/ehealth_portal.php @@ -0,0 +1,53 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +JHtml::_('behavior.tabstate'); + +// Access check. +if (!JFactory::getUser()->authorise('core.manage', 'com_ehealth_portal')) +{ + throw new JAccessExceptionNotallowed(JText::_('JERROR_ALERTNOAUTHOR'), 403); +}; + +// Add CSS file for all pages +$document = JFactory::getDocument(); +$document->addStyleSheet('components/com_ehealth_portal/assets/css/admin.css'); +$document->addScript('components/com_ehealth_portal/assets/js/admin.js'); + +// require helper files +JLoader::register('Ehealth_portalHelper', __DIR__ . '/helpers/ehealth_portal.php'); +JLoader::register('JHtmlBatch_', __DIR__ . '/helpers/html/batch_.php'); + +// Get an instance of the controller prefixed by Ehealth_portal +$controller = JControllerLegacy::getInstance('Ehealth_portal'); + +// Perform the Request task +$controller->execute(JFactory::getApplication()->input->get('task')); + +// Redirect if set by the controller +$controller->redirect(); diff --git a/admin/helpers/ehealth_portal.php b/admin/helpers/ehealth_portal.php new file mode 100644 index 0000000..267e234 --- /dev/null +++ b/admin/helpers/ehealth_portal.php @@ -0,0 +1,1664 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\CMS\Filesystem\File; +use Joomla\CMS\Language\Language; +use Joomla\Registry\Registry; +use Joomla\String\StringHelper; +use Joomla\Utilities\ArrayHelper; +use PhpOffice\PhpSpreadsheet\IOFactory; +use PhpOffice\PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\Writer\Xlsx; + +/** + * Ehealth_portal component helper. + */ +abstract class Ehealth_portalHelper +{ + /** + * Composer Switch + * + * @var array + */ + protected static $composer = array(); + + /** + * The Main Active Language + * + * @var string + */ + public static $langTag; + + /** + * Load the Composer Vendors + */ + public static function composerAutoload($target) + { + // insure we load the composer vendor only once + if (!isset(self::$composer[$target])) + { + // get the function name + $functionName = self::safeString('compose' . $target); + // check if method exist + if (method_exists(__CLASS__, $functionName)) + { + return self::{$functionName}(); + } + return false; + } + return self::$composer[$target]; + } + + /** + * Load the Component xml manifest. + */ + public static function manifest() + { + $manifestUrl = JPATH_ADMINISTRATOR."/components/com_ehealth_portal/ehealth_portal.xml"; + return simplexml_load_file($manifestUrl); + } + + /** + * Joomla version object + */ + protected static $JVersion; + + /** + * set/get Joomla version + */ + public static function jVersion() + { + // check if set + if (!self::checkObject(self::$JVersion)) + { + self::$JVersion = new JVersion(); + } + return self::$JVersion; + } + + /** + * Load the Contributors details. + */ + public static function getContributors() + { + // get params + $params = JComponentHelper::getParams('com_ehealth_portal'); + // start contributors array + $contributors = array(); + // get all Contributors (max 20) + $searchArray = range('0','20'); + foreach($searchArray as $nr) + { + if ((NULL !== $params->get("showContributor".$nr)) && ($params->get("showContributor".$nr) == 1 || $params->get("showContributor".$nr) == 3)) + { + // set link based of selected option + if($params->get("useContributor".$nr) == 1) + { + $link_front = ''; + $link_back = ''; + } + elseif($params->get("useContributor".$nr) == 2) + { + $link_front = ''; + $link_back = ''; + } + else + { + $link_front = ''; + $link_back = ''; + } + $contributors[$nr]['title'] = self::htmlEscape($params->get("titleContributor".$nr)); + $contributors[$nr]['name'] = $link_front.self::htmlEscape($params->get("nameContributor".$nr)).$link_back; + } + } + return $contributors; + } + + /** + * Can be used to build help urls. + **/ + public static function getHelpUrl($view) + { + return false; + } + + /** + * Configure the Linkbar. + */ + public static function addSubmenu($submenu) + { + // load user for access menus + $user = JFactory::getUser(); + // load the submenus to sidebar + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_DASHBOARD'), 'index.php?option=com_ehealth_portal&view=ehealth_portal', $submenu === 'ehealth_portal'); + if ($user->authorise('payment.access', 'com_ehealth_portal') && $user->authorise('payment.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_PAYMENTS'), 'index.php?option=com_ehealth_portal&view=payments', $submenu === 'payments'); + } + if ($user->authorise('general_medical_check_up.access', 'com_ehealth_portal') && $user->authorise('general_medical_check_up.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_GENERAL_MEDICAL_CHECK_UPS'), 'index.php?option=com_ehealth_portal&view=general_medical_check_ups', $submenu === 'general_medical_check_ups'); + } + if ($user->authorise('antenatal_care.access', 'com_ehealth_portal') && $user->authorise('antenatal_care.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_ANTENATAL_CARES'), 'index.php?option=com_ehealth_portal&view=antenatal_cares', $submenu === 'antenatal_cares'); + } + if ($user->authorise('immunisation.access', 'com_ehealth_portal') && $user->authorise('immunisation.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_IMMUNISATIONS'), 'index.php?option=com_ehealth_portal&view=immunisations', $submenu === 'immunisations'); + } + if ($user->authorise('vmmc.access', 'com_ehealth_portal') && $user->authorise('vmmc.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_VMMCS'), 'index.php?option=com_ehealth_portal&view=vmmcs', $submenu === 'vmmcs'); + } + if ($user->authorise('prostate_and_testicular_cancer.access', 'com_ehealth_portal') && $user->authorise('prostate_and_testicular_cancer.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_PROSTATE_AND_TESTICULAR_CANCERS'), 'index.php?option=com_ehealth_portal&view=prostate_and_testicular_cancers', $submenu === 'prostate_and_testicular_cancers'); + } + if ($user->authorise('tuberculosis.access', 'com_ehealth_portal') && $user->authorise('tuberculosis.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_TUBERCULOSES'), 'index.php?option=com_ehealth_portal&view=tuberculoses', $submenu === 'tuberculoses'); + } + if ($user->authorise('hiv_counseling_and_testing.access', 'com_ehealth_portal') && $user->authorise('hiv_counseling_and_testing.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_HIV_COUNSELINGS_AND_TESTINGS'), 'index.php?option=com_ehealth_portal&view=hiv_counselings_and_testings', $submenu === 'hiv_counselings_and_testings'); + } + if ($user->authorise('family_planning.access', 'com_ehealth_portal') && $user->authorise('family_planning.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_FAMILY_PLANNINGS'), 'index.php?option=com_ehealth_portal&view=family_plannings', $submenu === 'family_plannings'); + } + if ($user->authorise('health_education.access', 'com_ehealth_portal') && $user->authorise('health_education.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_HEALTH_EDUCATIONS'), 'index.php?option=com_ehealth_portal&view=health_educations', $submenu === 'health_educations'); + } + if ($user->authorise('cervical_cancer.access', 'com_ehealth_portal') && $user->authorise('cervical_cancer.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_CERVICAL_CANCERS'), 'index.php?option=com_ehealth_portal&view=cervical_cancers', $submenu === 'cervical_cancers'); + } + if ($user->authorise('breast_cancer.access', 'com_ehealth_portal') && $user->authorise('breast_cancer.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_BREAST_CANCERS'), 'index.php?option=com_ehealth_portal&view=breast_cancers', $submenu === 'breast_cancers'); + } + if ($user->authorise('test.access', 'com_ehealth_portal') && $user->authorise('test.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_TESTS'), 'index.php?option=com_ehealth_portal&view=tests', $submenu === 'tests'); + } + if ($user->authorise('immunisation_vaccine_type.access', 'com_ehealth_portal') && $user->authorise('immunisation_vaccine_type.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_IMMUNISATION_VACCINE_TYPES'), 'index.php?option=com_ehealth_portal&view=immunisation_vaccine_types', $submenu === 'immunisation_vaccine_types'); + } + if ($user->authorise('unit.access', 'com_ehealth_portal') && $user->authorise('unit.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_UNITS'), 'index.php?option=com_ehealth_portal&view=units', $submenu === 'units'); + } + if ($user->authorise('referral.access', 'com_ehealth_portal') && $user->authorise('referral.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_REFERRALS'), 'index.php?option=com_ehealth_portal&view=referrals', $submenu === 'referrals'); + } + if ($user->authorise('medication.access', 'com_ehealth_portal') && $user->authorise('medication.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_MEDICATIONS'), 'index.php?option=com_ehealth_portal&view=medications', $submenu === 'medications'); + } + if ($user->authorise('administration_part.access', 'com_ehealth_portal') && $user->authorise('administration_part.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_ADMINISTRATION_PARTS'), 'index.php?option=com_ehealth_portal&view=administration_parts', $submenu === 'administration_parts'); + } + if ($user->authorise('strength.access', 'com_ehealth_portal') && $user->authorise('strength.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_STRENGTHS'), 'index.php?option=com_ehealth_portal&view=strengths', $submenu === 'strengths'); + } + if ($user->authorise('patient_queue.access', 'com_ehealth_portal') && $user->authorise('patient_queue.submenu', 'com_ehealth_portal')) + { + JHtmlSidebar::addEntry(JText::_('COM_EHEALTH_PORTAL_SUBMENU_PATIENT_QUEUE'), 'index.php?option=com_ehealth_portal&view=patient_queue', $submenu === 'patient_queue'); + } + } + + /** + * Prepares the xml document + */ + public static function xls($rows, $fileName = null, $title = null, $subjectTab = null, $creator = 'Vast Development Method', $description = null, $category = null,$keywords = null, $modified = null) + { + // set the user + $user = JFactory::getUser(); + // set fileName if not set + if (!$fileName) + { + $fileName = 'exported_'.JFactory::getDate()->format('jS_F_Y'); + } + // set modified if not set + if (!$modified) + { + $modified = $user->name; + } + // set title if not set + if (!$title) + { + $title = 'Book1'; + } + // set tab name if not set + if (!$subjectTab) + { + $subjectTab = 'Sheet1'; + } + + // make sure we have the composer classes loaded + self::composerAutoload('phpspreadsheet'); + + // Create new Spreadsheet object + $spreadsheet = new Spreadsheet(); + + // Set document properties + $spreadsheet->getProperties() + ->setCreator($creator) + ->setCompany('Vast Development Method') + ->setLastModifiedBy($modified) + ->setTitle($title) + ->setSubject($subjectTab); + // The file type + $file_type = 'Xls'; + // set description + if ($description) + { + $spreadsheet->getProperties()->setDescription($description); + } + // set keywords + if ($keywords) + { + $spreadsheet->getProperties()->setKeywords($keywords); + } + // set category + if ($category) + { + $spreadsheet->getProperties()->setCategory($category); + } + + // Some styles + $headerStyles = array( + 'font' => array( + 'bold' => true, + 'color' => array('rgb' => '1171A3'), + 'size' => 12, + 'name' => 'Verdana' + )); + $sideStyles = array( + 'font' => array( + 'bold' => true, + 'color' => array('rgb' => '444444'), + 'size' => 11, + 'name' => 'Verdana' + )); + $normalStyles = array( + 'font' => array( + 'color' => array('rgb' => '444444'), + 'size' => 11, + 'name' => 'Verdana' + )); + + // Add some data + if (($size = self::checkArray($rows)) !== false) + { + $i = 1; + + // Based on data size we adapt the behaviour. + $xls_mode = 1; + if ($size > 3000) + { + $xls_mode = 3; + $file_type = 'Csv'; + } + elseif ($size > 2000) + { + $xls_mode = 2; + } + + // Set active sheet and get it. + $active_sheet = $spreadsheet->setActiveSheetIndex(0); + foreach ($rows as $array) + { + $a = 'A'; + foreach ($array as $value) + { + $active_sheet->setCellValue($a.$i, $value); + if ($xls_mode != 3) + { + if ($i == 1) + { + $active_sheet->getColumnDimension($a)->setAutoSize(true); + $active_sheet->getStyle($a.$i)->applyFromArray($headerStyles); + $active_sheet->getStyle($a.$i)->getAlignment()->setHorizontal(PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER); + } + elseif ($a === 'A') + { + $active_sheet->getStyle($a.$i)->applyFromArray($sideStyles); + } + elseif ($xls_mode == 1) + { + $active_sheet->getStyle($a.$i)->applyFromArray($normalStyles); + } + } + $a++; + } + $i++; + } + } + else + { + return false; + } + + // Rename worksheet + $spreadsheet->getActiveSheet()->setTitle($subjectTab); + + // Set active sheet index to the first sheet, so Excel opens this as the first sheet + $spreadsheet->setActiveSheetIndex(0); + + // Redirect output to a client's web browser (Excel5) + header('Content-Type: application/vnd.ms-excel'); + header('Content-Disposition: attachment;filename="' . $fileName . '.' . strtolower($file_type) .'"'); + header('Cache-Control: max-age=0'); + // If you're serving to IE 9, then the following may be needed + header('Cache-Control: max-age=1'); + + // If you're serving to IE over SSL, then the following may be needed + header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past + header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified + header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1 + header ('Pragma: public'); // HTTP/1.0 + + $writer = IOFactory::createWriter($spreadsheet, $file_type); + $writer->save('php://output'); + jexit(); + } + + /** + * Get CSV Headers + */ + public static function getFileHeaders($dataType) + { + // make sure we have the composer classes loaded + self::composerAutoload('phpspreadsheet'); + // get session object + $session = JFactory::getSession(); + $package = $session->get('package', null); + $package = json_decode($package, true); + // set the headers + if(isset($package['dir'])) + { + // only load first three rows + $chunkFilter = new PhpOffice\PhpSpreadsheet\Reader\chunkReadFilter(2,1); + // identify the file type + $inputFileType = IOFactory::identify($package['dir']); + // create the reader for this file type + $excelReader = IOFactory::createReader($inputFileType); + // load the limiting filter + $excelReader->setReadFilter($chunkFilter); + $excelReader->setReadDataOnly(true); + // load the rows (only first three) + $excelObj = $excelReader->load($package['dir']); + $headers = array(); + foreach ($excelObj->getActiveSheet()->getRowIterator() as $row) + { + if($row->getRowIndex() == 1) + { + $cellIterator = $row->getCellIterator(); + $cellIterator->setIterateOnlyExistingCells(false); + foreach ($cellIterator as $cell) + { + if (!is_null($cell)) + { + $headers[$cell->getColumn()] = $cell->getValue(); + } + } + $excelObj->disconnectWorksheets(); + unset($excelObj); + break; + } + } + return $headers; + } + return false; + } + + /** + * Load the Composer Vendor phpspreadsheet + */ + protected static function composephpspreadsheet() + { + // load the autoloader for phpspreadsheet + require_once JPATH_SITE . '/libraries/phpspreadsheet/vendor/autoload.php'; + // do not load again + self::$composer['phpspreadsheet'] = true; + + return true; + } + + /** + * Get a Variable + * + * @param string $table The table from which to get the variable + * @param string $where The value where + * @param string $whereString The target/field string where/name + * @param string $what The return field + * @param string $operator The operator between $whereString/field and $where/value + * @param string $main The component in which the table is found + * + * @return mix string/int/float + * + */ + public static function getVar($table, $where = null, $whereString = 'user', $what = 'id', $operator = '=', $main = 'ehealth_portal') + { + if(!$where) + { + $where = JFactory::getUser()->id; + } + // Get a db connection. + $db = JFactory::getDbo(); + // Create a new query object. + $query = $db->getQuery(true); + $query->select($db->quoteName(array($what))); + if (empty($table)) + { + $query->from($db->quoteName('#__'.$main)); + } + else + { + $query->from($db->quoteName('#__'.$main.'_'.$table)); + } + if (is_numeric($where)) + { + $query->where($db->quoteName($whereString) . ' '.$operator.' '.(int) $where); + } + elseif (is_string($where)) + { + $query->where($db->quoteName($whereString) . ' '.$operator.' '. $db->quote((string)$where)); + } + else + { + return false; + } + $db->setQuery($query); + $db->execute(); + if ($db->getNumRows()) + { + return $db->loadResult(); + } + return false; + } + + /** + * Get array of variables + * + * @param string $table The table from which to get the variables + * @param string $where The value where + * @param string $whereString The target/field string where/name + * @param string $what The return field + * @param string $operator The operator between $whereString/field and $where/value + * @param string $main The component in which the table is found + * @param bool $unique The switch to return a unique array + * + * @return array + * + */ + public static function getVars($table, $where = null, $whereString = 'user', $what = 'id', $operator = 'IN', $main = 'ehealth_portal', $unique = true) + { + if(!$where) + { + $where = JFactory::getUser()->id; + } + + if (!self::checkArray($where) && $where > 0) + { + $where = array($where); + } + + if (self::checkArray($where)) + { + // prep main <-- why? well if $main='' is empty then $table can be categories or users + if (self::checkString($main)) + { + $main = '_'.ltrim($main, '_'); + } + // Get a db connection. + $db = JFactory::getDbo(); + // Create a new query object. + $query = $db->getQuery(true); + + $query->select($db->quoteName(array($what))); + if (empty($table)) + { + $query->from($db->quoteName('#__'.$main)); + } + else + { + $query->from($db->quoteName('#_'.$main.'_'.$table)); + } + // add strings to array search + if ('IN_STRINGS' === $operator || 'NOT IN_STRINGS' === $operator) + { + $query->where($db->quoteName($whereString) . ' ' . str_replace('_STRINGS', '', $operator) . ' ("' . implode('","',$where) . '")'); + } + else + { + $query->where($db->quoteName($whereString) . ' ' . $operator . ' (' . implode(',',$where) . ')'); + } + $db->setQuery($query); + $db->execute(); + if ($db->getNumRows()) + { + if ($unique) + { + return array_unique($db->loadColumn()); + } + return $db->loadColumn(); + } + } + return false; + } + + public static function jsonToString($value, $sperator = ", ", $table = null, $id = 'id', $name = 'name') + { + // do some table foot work + $external = false; + if (strpos($table, '#__') !== false) + { + $external = true; + $table = str_replace('#__', '', $table); + } + // check if string is JSON + $result = json_decode($value, true); + if (json_last_error() === JSON_ERROR_NONE) + { + // is JSON + if (self::checkArray($result)) + { + if (self::checkString($table)) + { + $names = array(); + foreach ($result as $val) + { + if ($external) + { + if ($_name = self::getVar(null, $val, $id, $name, '=', $table)) + { + $names[] = $_name; + } + } + else + { + if ($_name = self::getVar($table, $val, $id, $name)) + { + $names[] = $_name; + } + } + } + if (self::checkArray($names)) + { + return (string) implode($sperator,$names); + } + } + return (string) implode($sperator,$result); + } + return (string) json_decode($value); + } + return $value; + } + + public static function isPublished($id,$type) + { + if ($type == 'raw') + { + $type = 'item'; + } + $db = JFactory::getDbo(); + $query = $db->getQuery(true); + $query->select(array('a.published')); + $query->from('#__ehealth_portal_'.$type.' AS a'); + $query->where('a.id = '. (int) $id); + $query->where('a.published = 1'); + $db->setQuery($query); + $db->execute(); + $found = $db->getNumRows(); + if($found) + { + return true; + } + return false; + } + + public static function getGroupName($id) + { + $db = JFactory::getDBO(); + $query = $db->getQuery(true); + $query->select(array('a.title')); + $query->from('#__usergroups AS a'); + $query->where('a.id = '. (int) $id); + $db->setQuery($query); + $db->execute(); + $found = $db->getNumRows(); + if($found) + { + return $db->loadResult(); + } + return $id; + } + + /** + * Get the action permissions + * + * @param string $view The related view name + * @param int $record The item to act upon + * @param string $views The related list view name + * @param mixed $target Only get this permission (like edit, create, delete) + * @param string $component The target component + * @param object $user The user whose permissions we are loading + * + * @return object The JObject of permission/authorised actions + * + */ + public static function getActions($view, &$record = null, $views = null, $target = null, $component = 'ehealth_portal', $user = 'null') + { + // load the user if not given + if (!self::checkObject($user)) + { + // get the user object + $user = JFactory::getUser(); + } + // load the JObject + $result = new JObject; + // make view name safe (just incase) + $view = self::safeString($view); + if (self::checkString($views)) + { + $views = self::safeString($views); + } + // get all actions from component + $actions = JAccess::getActionsFromFile( + JPATH_ADMINISTRATOR . '/components/com_' . $component . '/access.xml', + "/access/section[@name='component']/" + ); + // if non found then return empty JObject + if (empty($actions)) + { + return $result; + } + // get created by if not found + if (self::checkObject($record) && !isset($record->created_by) && isset($record->id)) + { + $record->created_by = self::getVar($view, $record->id, 'id', 'created_by', '=', $component); + } + // set actions only set in component settings + $componentActions = array('core.admin', 'core.manage', 'core.options', 'core.export'); + // check if we have a target + $checkTarget = false; + if ($target) + { + // convert to an array + if (self::checkString($target)) + { + $target = array($target); + } + // check if we are good to go + if (self::checkArray($target)) + { + $checkTarget = true; + } + } + // loop the actions and set the permissions + foreach ($actions as $action) + { + // check target action filter + if ($checkTarget && self::filterActions($view, $action->name, $target)) + { + continue; + } + // set to use component default + $fallback = true; + // reset permission per/action + $permission = false; + $catpermission = false; + // set area + $area = 'comp'; + // check if the record has an ID and the action is item related (not a component action) + if (self::checkObject($record) && isset($record->id) && $record->id > 0 && !in_array($action->name, $componentActions) && + (strpos($action->name, 'core.') !== false || strpos($action->name, $view . '.') !== false)) + { + // we are in item + $area = 'item'; + // The record has been set. Check the record permissions. + $permission = $user->authorise($action->name, 'com_' . $component . '.' . $view . '.' . (int) $record->id); + // if no permission found, check edit own + if (!$permission) + { + // With edit, if the created_by matches current user then dig deeper. + if (($action->name === 'core.edit' || $action->name === $view . '.edit') && $record->created_by > 0 && ($record->created_by == $user->id)) + { + // the correct target + $coreCheck = (array) explode('.', $action->name); + // check that we have both local and global access + if ($user->authorise($coreCheck[0] . '.edit.own', 'com_' . $component . '.' . $view . '.' . (int) $record->id) && + $user->authorise($coreCheck[0] . '.edit.own', 'com_' . $component)) + { + // allow edit + $result->set($action->name, true); + // set not to use global default + // because we already validated it + $fallback = false; + } + else + { + // do not allow edit + $result->set($action->name, false); + $fallback = false; + } + } + } + elseif (self::checkString($views) && isset($record->catid) && $record->catid > 0) + { + // we are in item + $area = 'category'; + // set the core check + $coreCheck = explode('.', $action->name); + $core = $coreCheck[0]; + // make sure we use the core. action check for the categories + if (strpos($action->name, $view) !== false && strpos($action->name, 'core.') === false ) + { + $coreCheck[0] = 'core'; + $categoryCheck = implode('.', $coreCheck); + } + else + { + $categoryCheck = $action->name; + } + // The record has a category. Check the category permissions. + $catpermission = $user->authorise($categoryCheck, 'com_' . $component . '.' . $views . '.category.' . (int) $record->catid); + if (!$catpermission && !is_null($catpermission)) + { + // With edit, if the created_by matches current user then dig deeper. + if (($action->name === 'core.edit' || $action->name === $view . '.edit') && $record->created_by > 0 && ($record->created_by == $user->id)) + { + // check that we have both local and global access + if ($user->authorise('core.edit.own', 'com_' . $component . '.' . $views . '.category.' . (int) $record->catid) && + $user->authorise($core . '.edit.own', 'com_' . $component)) + { + // allow edit + $result->set($action->name, true); + // set not to use global default + // because we already validated it + $fallback = false; + } + else + { + // do not allow edit + $result->set($action->name, false); + $fallback = false; + } + } + } + } + } + // if allowed then fallback on component global settings + if ($fallback) + { + // if item/category blocks access then don't fall back on global + if ((($area === 'item') && !$permission) || (($area === 'category') && !$catpermission)) + { + // do not allow + $result->set($action->name, false); + } + // Finally remember the global settings have the final say. (even if item allow) + // The local item permissions can block, but it can't open and override of global permissions. + // Since items are created by users and global permissions is set by system admin. + else + { + $result->set($action->name, $user->authorise($action->name, 'com_' . $component)); + } + } + } + return $result; + } + + /** + * Filter the action permissions + * + * @param string $action The action to check + * @param array $targets The array of target actions + * + * @return boolean true if action should be filtered out + * + */ + protected static function filterActions(&$view, &$action, &$targets) + { + foreach ($targets as $target) + { + if (strpos($action, $view . '.' . $target) !== false || + strpos($action, 'core.' . $target) !== false) + { + return false; + break; + } + } + return true; + } + + /** + * Get any component's model + */ + public static function getModel($name, $path = JPATH_COMPONENT_ADMINISTRATOR, $Component = 'Ehealth_portal', $config = array()) + { + // fix the name + $name = self::safeString($name); + // full path to models + $fullPathModels = $path . '/models'; + // load the model file + JModelLegacy::addIncludePath($fullPathModels, $Component . 'Model'); + // make sure the table path is loaded + if (!isset($config['table_path']) || !self::checkString($config['table_path'])) + { + // This is the JCB default path to tables in Joomla 3.x + $config['table_path'] = JPATH_ADMINISTRATOR . '/components/com_' . strtolower($Component) . '/tables'; + } + // get instance + $model = JModelLegacy::getInstance($name, $Component . 'Model', $config); + // if model not found (strange) + if ($model == false) + { + jimport('joomla.filesystem.file'); + // get file path + $filePath = $path . '/' . $name . '.php'; + $fullPathModel = $fullPathModels . '/' . $name . '.php'; + // check if it exists + if (File::exists($filePath)) + { + // get the file + require_once $filePath; + } + elseif (File::exists($fullPathModel)) + { + // get the file + require_once $fullPathModel; + } + // build class names + $modelClass = $Component . 'Model' . $name; + if (class_exists($modelClass)) + { + // initialize the model + return new $modelClass($config); + } + } + return $model; + } + + /** + * Add to asset Table + */ + public static function setAsset($id, $table, $inherit = true) + { + $parent = JTable::getInstance('Asset'); + $parent->loadByName('com_ehealth_portal'); + + $parentId = $parent->id; + $name = 'com_ehealth_portal.'.$table.'.'.$id; + $title = ''; + + $asset = JTable::getInstance('Asset'); + $asset->loadByName($name); + + // Check for an error. + $error = $asset->getError(); + + if ($error) + { + return false; + } + else + { + // Specify how a new or moved node asset is inserted into the tree. + if ($asset->parent_id != $parentId) + { + $asset->setLocation($parentId, 'last-child'); + } + + // Prepare the asset to be stored. + $asset->parent_id = $parentId; + $asset->name = $name; + $asset->title = $title; + // get the default asset rules + $rules = self::getDefaultAssetRules('com_ehealth_portal', $table, $inherit); + if ($rules instanceof JAccessRules) + { + $asset->rules = (string) $rules; + } + + if (!$asset->check() || !$asset->store()) + { + JFactory::getApplication()->enqueueMessage($asset->getError(), 'warning'); + return false; + } + else + { + // Create an asset_id or heal one that is corrupted. + $object = new stdClass(); + + // Must be a valid primary key value. + $object->id = $id; + $object->asset_id = (int) $asset->id; + + // Update their asset_id to link to the asset table. + return JFactory::getDbo()->updateObject('#__ehealth_portal_'.$table, $object, 'id'); + } + } + return false; + } + + /** + * Gets the default asset Rules for a component/view. + */ + protected static function getDefaultAssetRules($component, $view, $inherit = true) + { + // if new or inherited + $assetId = 0; + // Only get the actual item rules if not inheriting + if (!$inherit) + { + // Need to find the asset id by the name of the component. + $db = JFactory::getDbo(); + $query = $db->getQuery(true) + ->select($db->quoteName('id')) + ->from($db->quoteName('#__assets')) + ->where($db->quoteName('name') . ' = ' . $db->quote($component)); + $db->setQuery($query); + $db->execute(); + // check that there is a value + if ($db->getNumRows()) + { + // asset already set so use saved rules + $assetId = (int) $db->loadResult(); + } + } + // get asset rules + $result = JAccess::getAssetRules($assetId); + if ($result instanceof JAccessRules) + { + $_result = (string) $result; + $_result = json_decode($_result); + foreach ($_result as $name => &$rule) + { + $v = explode('.', $name); + if ($view !== $v[0]) + { + // remove since it is not part of this view + unset($_result->$name); + } + elseif ($inherit) + { + // clear the value since we inherit + $rule = array(); + } + } + // check if there are any view values remaining + if (count((array) $_result)) + { + $_result = json_encode($_result); + $_result = array($_result); + // Instantiate and return the JAccessRules object for the asset rules. + $rules = new JAccessRules($_result); + // return filtered rules + return $rules; + } + } + return $result; + } + + /** + * xmlAppend + * + * @param SimpleXMLElement $xml The XML element reference in which to inject a comment + * @param mixed $node A SimpleXMLElement node to append to the XML element reference, or a stdClass object containing a comment attribute to be injected before the XML node and a fieldXML attribute containing a SimpleXMLElement + * + * @return null + * + */ + public static function xmlAppend(&$xml, $node) + { + if (!$node) + { + // element was not returned + return; + } + switch (get_class($node)) + { + case 'stdClass': + if (property_exists($node, 'comment')) + { + self::xmlComment($xml, $node->comment); + } + if (property_exists($node, 'fieldXML')) + { + self::xmlAppend($xml, $node->fieldXML); + } + break; + case 'SimpleXMLElement': + $domXML = dom_import_simplexml($xml); + $domNode = dom_import_simplexml($node); + $domXML->appendChild($domXML->ownerDocument->importNode($domNode, true)); + $xml = simplexml_import_dom($domXML); + break; + } + } + + /** + * xmlComment + * + * @param SimpleXMLElement $xml The XML element reference in which to inject a comment + * @param string $comment The comment to inject + * + * @return null + * + */ + public static function xmlComment(&$xml, $comment) + { + $domXML = dom_import_simplexml($xml); + $domComment = new DOMComment($comment); + $nodeTarget = $domXML->ownerDocument->importNode($domComment, true); + $domXML->appendChild($nodeTarget); + $xml = simplexml_import_dom($domXML); + } + + /** + * xmlAddAttributes + * + * @param SimpleXMLElement $xml The XML element reference in which to inject a comment + * @param array $attributes The attributes to apply to the XML element + * + * @return null + * + */ + public static function xmlAddAttributes(&$xml, $attributes = array()) + { + foreach ($attributes as $key => $value) + { + $xml->addAttribute($key, $value); + } + } + + /** + * xmlAddOptions + * + * @param SimpleXMLElement $xml The XML element reference in which to inject a comment + * @param array $options The options to apply to the XML element + * + * @return void + * + */ + public static function xmlAddOptions(&$xml, $options = array()) + { + foreach ($options as $key => $value) + { + $addOption = $xml->addChild('option'); + $addOption->addAttribute('value', $key); + $addOption[] = $value; + } + } + + /** + * get the field object + * + * @param array $attributes The array of attributes + * @param string $default The default of the field + * @param array $options The options to apply to the XML element + * + * @return object + * + */ + public static function getFieldObject(&$attributes, $default = '', $options = null) + { + // make sure we have attributes and a type value + if (self::checkArray($attributes) && isset($attributes['type'])) + { + // make sure the form helper class is loaded + if (!method_exists('JFormHelper', 'loadFieldType')) + { + jimport('joomla.form.form'); + } + // get field type + $field = JFormHelper::loadFieldType($attributes['type'], true); + // get field xml + $XML = self::getFieldXML($attributes, $options); + // setup the field + $field->setup($XML, $default); + // return the field object + return $field; + } + return false; + } + + /** + * get the field xml + * + * @param array $attributes The array of attributes + * @param array $options The options to apply to the XML element + * + * @return object + * + */ + public static function getFieldXML(&$attributes, $options = null) + { + // make sure we have attributes and a type value + if (self::checkArray($attributes)) + { + // start field xml + $XML = new SimpleXMLElement(''); + // load the attributes + self::xmlAddAttributes($XML, $attributes); + // check if we have options + if (self::checkArray($options)) + { + // load the options + self::xmlAddOptions($XML, $options); + } + // return the field xml + return $XML; + } + return false; + } + + /** + * Render Bool Button + * + * @param array $args All the args for the button + * 0) name + * 1) additional (options class) // not used at this time + * 2) default + * 3) yes (name) + * 4) no (name) + * + * @return string The input html of the button + * + */ + public static function renderBoolButton() + { + $args = func_get_args(); + // check if there is additional button class + $additional = isset($args[1]) ? (string) $args[1] : ''; // not used at this time + // button attributes + $buttonAttributes = array( + 'type' => 'radio', + 'name' => isset($args[0]) ? self::htmlEscape($args[0]) : 'bool_button', + 'label' => isset($args[0]) ? self::safeString(self::htmlEscape($args[0]), 'Ww') : 'Bool Button', // not seen anyway + 'class' => 'btn-group', + 'filter' => 'INT', + 'default' => isset($args[2]) ? (int) $args[2] : 0); + // set the button options + $buttonOptions = array( + '1' => isset($args[3]) ? self::htmlEscape($args[3]) : 'JYES', + '0' => isset($args[4]) ? self::htmlEscape($args[4]) : 'JNO'); + // return the input + return self::getFieldObject($buttonAttributes, $buttonAttributes['default'], $buttonOptions)->input; + } + + /** + * Check if have an json string + * + * @input string The json string to check + * + * @returns bool true on success + */ + public static function checkJson($string) + { + if (self::checkString($string)) + { + json_decode($string); + return (json_last_error() === JSON_ERROR_NONE); + } + return false; + } + + /** + * Check if have an object with a length + * + * @input object The object to check + * + * @returns bool true on success + */ + public static function checkObject($object) + { + if (isset($object) && is_object($object)) + { + return count((array)$object) > 0; + } + return false; + } + + /** + * Check if have an array with a length + * + * @input array The array to check + * + * @returns bool/int number of items in array on success + */ + public static function checkArray($array, $removeEmptyString = false) + { + if (isset($array) && is_array($array) && ($nr = count((array)$array)) > 0) + { + // also make sure the empty strings are removed + if ($removeEmptyString) + { + foreach ($array as $key => $string) + { + if (empty($string)) + { + unset($array[$key]); + } + } + return self::checkArray($array, false); + } + return $nr; + } + return false; + } + + /** + * Check if have a string with a length + * + * @input string The string to check + * + * @returns bool true on success + */ + public static function checkString($string) + { + if (isset($string) && is_string($string) && strlen($string) > 0) + { + return true; + } + return false; + } + + /** + * Check if we are connected + * Thanks https://stackoverflow.com/a/4860432/1429677 + * + * @returns bool true on success + */ + public static function isConnected() + { + // If example.com is down, then probably the whole internet is down, since IANA maintains the domain. Right? + $connected = @fsockopen("www.example.com", 80); + // website, port (try 80 or 443) + if ($connected) + { + //action when connected + $is_conn = true; + fclose($connected); + } + else + { + //action in connection failure + $is_conn = false; + } + return $is_conn; + } + + /** + * Merge an array of array's + * + * @input array The arrays you would like to merge + * + * @returns array on success + */ + public static function mergeArrays($arrays) + { + if(self::checkArray($arrays)) + { + $arrayBuket = array(); + foreach ($arrays as $array) + { + if (self::checkArray($array)) + { + $arrayBuket = array_merge($arrayBuket, $array); + } + } + return $arrayBuket; + } + return false; + } + + // typo sorry! + public static function sorten($string, $length = 40, $addTip = true) + { + return self::shorten($string, $length, $addTip); + } + + /** + * Shorten a string + * + * @input string The you would like to shorten + * + * @returns string on success + */ + public static function shorten($string, $length = 40, $addTip = true) + { + if (self::checkString($string)) + { + $initial = strlen($string); + $words = preg_split('/([\s\n\r]+)/', $string, null, PREG_SPLIT_DELIM_CAPTURE); + $words_count = count((array)$words); + + $word_length = 0; + $last_word = 0; + for (; $last_word < $words_count; ++$last_word) + { + $word_length += strlen($words[$last_word]); + if ($word_length > $length) + { + break; + } + } + + $newString = implode(array_slice($words, 0, $last_word)); + $final = strlen($newString); + if ($initial != $final && $addTip) + { + $title = self::shorten($string, 400 , false); + return ''.trim($newString).'...'; + } + elseif ($initial != $final && !$addTip) + { + return trim($newString).'...'; + } + } + return $string; + } + + /** + * Making strings safe (various ways) + * + * @input string The you would like to make safe + * + * @returns string on success + */ + public static function safeString($string, $type = 'L', $spacer = '_', $replaceNumbers = true, $keepOnlyCharacters = true) + { + if ($replaceNumbers === true) + { + // remove all numbers and replace with english text version (works well only up to millions) + $string = self::replaceNumbers($string); + } + // 0nly continue if we have a string + if (self::checkString($string)) + { + // create file name without the extention that is safe + if ($type === 'filename') + { + // make sure VDM is not in the string + $string = str_replace('VDM', 'vDm', $string); + // Remove anything which isn't a word, whitespace, number + // or any of the following caracters -_() + // If you don't need to handle multi-byte characters + // you can use preg_replace rather than mb_ereg_replace + // Thanks @Łukasz Rysiak! + // $string = mb_ereg_replace("([^\w\s\d\-_\(\)])", '', $string); + $string = preg_replace("([^\w\s\d\-_\(\)])", '', $string); + // http://stackoverflow.com/a/2021729/1429677 + return preg_replace('/\s+/', ' ', $string); + } + // remove all other characters + $string = trim($string); + $string = preg_replace('/'.$spacer.'+/', ' ', $string); + $string = preg_replace('/\s+/', ' ', $string); + // Transliterate string + $string = self::transliterate($string); + // remove all and keep only characters + if ($keepOnlyCharacters) + { + $string = preg_replace("/[^A-Za-z ]/", '', $string); + } + // keep both numbers and characters + else + { + $string = preg_replace("/[^A-Za-z0-9 ]/", '', $string); + } + // select final adaptations + if ($type === 'L' || $type === 'strtolower') + { + // replace white space with underscore + $string = preg_replace('/\s+/', $spacer, $string); + // default is to return lower + return strtolower($string); + } + elseif ($type === 'W') + { + // return a string with all first letter of each word uppercase(no undersocre) + return ucwords(strtolower($string)); + } + elseif ($type === 'w' || $type === 'word') + { + // return a string with all lowercase(no undersocre) + return strtolower($string); + } + elseif ($type === 'Ww' || $type === 'Word') + { + // return a string with first letter of the first word uppercase and all the rest lowercase(no undersocre) + return ucfirst(strtolower($string)); + } + elseif ($type === 'WW' || $type === 'WORD') + { + // return a string with all the uppercase(no undersocre) + return strtoupper($string); + } + elseif ($type === 'U' || $type === 'strtoupper') + { + // replace white space with underscore + $string = preg_replace('/\s+/', $spacer, $string); + // return all upper + return strtoupper($string); + } + elseif ($type === 'F' || $type === 'ucfirst') + { + // replace white space with underscore + $string = preg_replace('/\s+/', $spacer, $string); + // return with first caracter to upper + return ucfirst(strtolower($string)); + } + elseif ($type === 'cA' || $type === 'cAmel' || $type === 'camelcase') + { + // convert all words to first letter uppercase + $string = ucwords(strtolower($string)); + // remove white space + $string = preg_replace('/\s+/', '', $string); + // now return first letter lowercase + return lcfirst($string); + } + // return string + return $string; + } + // not a string + return ''; + } + + public static function transliterate($string) + { + // set tag only once + if (!self::checkString(self::$langTag)) + { + // get global value + self::$langTag = JComponentHelper::getParams('com_ehealth_portal')->get('language', 'en-GB'); + } + // Transliterate on the language requested + $lang = Language::getInstance(self::$langTag); + return $lang->transliterate($string); + } + + public static function htmlEscape($var, $charset = 'UTF-8', $shorten = false, $length = 40) + { + if (self::checkString($var)) + { + $filter = new JFilterInput(); + $string = $filter->clean(html_entity_decode(htmlentities($var, ENT_COMPAT, $charset)), 'HTML'); + if ($shorten) + { + return self::shorten($string,$length); + } + return $string; + } + else + { + return ''; + } + } + + public static function replaceNumbers($string) + { + // set numbers array + $numbers = array(); + // first get all numbers + preg_match_all('!\d+!', $string, $numbers); + // check if we have any numbers + if (isset($numbers[0]) && self::checkArray($numbers[0])) + { + foreach ($numbers[0] as $number) + { + $searchReplace[$number] = self::numberToString((int)$number); + } + // now replace numbers in string + $string = str_replace(array_keys($searchReplace), array_values($searchReplace),$string); + // check if we missed any, strange if we did. + return self::replaceNumbers($string); + } + // return the string with no numbers remaining. + return $string; + } + + /** + * Convert an integer into an English word string + * Thanks to Tom Nicholson + * + * @input an int + * @returns a string + */ + public static function numberToString($x) + { + $nwords = array( "zero", "one", "two", "three", "four", "five", "six", "seven", + "eight", "nine", "ten", "eleven", "twelve", "thirteen", + "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", + "nineteen", "twenty", 30 => "thirty", 40 => "forty", + 50 => "fifty", 60 => "sixty", 70 => "seventy", 80 => "eighty", + 90 => "ninety" ); + + if(!is_numeric($x)) + { + $w = $x; + } + elseif(fmod($x, 1) != 0) + { + $w = $x; + } + else + { + if($x < 0) + { + $w = 'minus '; + $x = -$x; + } + else + { + $w = ''; + // ... now $x is a non-negative integer. + } + + if($x < 21) // 0 to 20 + { + $w .= $nwords[$x]; + } + elseif($x < 100) // 21 to 99 + { + $w .= $nwords[10 * floor($x/10)]; + $r = fmod($x, 10); + if($r > 0) + { + $w .= ' '. $nwords[$r]; + } + } + elseif($x < 1000) // 100 to 999 + { + $w .= $nwords[floor($x/100)] .' hundred'; + $r = fmod($x, 100); + if($r > 0) + { + $w .= ' and '. self::numberToString($r); + } + } + elseif($x < 1000000) // 1000 to 999999 + { + $w .= self::numberToString(floor($x/1000)) .' thousand'; + $r = fmod($x, 1000); + if($r > 0) + { + $w .= ' '; + if($r < 100) + { + $w .= 'and '; + } + $w .= self::numberToString($r); + } + } + else // millions + { + $w .= self::numberToString(floor($x/1000000)) .' million'; + $r = fmod($x, 1000000); + if($r > 0) + { + $w .= ' '; + if($r < 100) + { + $w .= 'and '; + } + $w .= self::numberToString($r); + } + } + } + return $w; + } + + /** + * Random Key + * + * @returns a string + */ + public static function randomkey($size) + { + $bag = "abcefghijknopqrstuwxyzABCDDEFGHIJKLLMMNOPQRSTUVVWXYZabcddefghijkllmmnopqrstuvvwxyzABCEFGHIJKNOPQRSTUWXYZ"; + $key = array(); + $bagsize = strlen($bag) - 1; + for ($i = 0; $i < $size; $i++) + { + $get = rand(0, $bagsize); + $key[] = $bag[$get]; + } + return implode($key); + } +} diff --git a/admin/helpers/headercheck.php b/admin/helpers/headercheck.php new file mode 100644 index 0000000..6051e4d --- /dev/null +++ b/admin/helpers/headercheck.php @@ -0,0 +1,85 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +class ehealth_portalHeaderCheck +{ + function js_loaded($script_name) + { + // UIkit check point + if (strpos($script_name,'uikit') !== false) + { + $app = JFactory::getApplication(); + $getTemplateName = $app->getTemplate('template')->template; + + if (strpos($getTemplateName,'yoo') !== false) + { + return true; + } + } + + $document = JFactory::getDocument(); + $head_data = $document->getHeadData(); + foreach (array_keys($head_data['scripts']) as $script) + { + if (stristr($script, $script_name)) + { + return true; + } + } + + return false; + } + + function css_loaded($script_name) + { + // UIkit check point + if (strpos($script_name,'uikit') !== false) + { + $app = JFactory::getApplication(); + $getTemplateName = $app->getTemplate('template')->template; + + if (strpos($getTemplateName,'yoo') !== false) + { + return true; + } + } + + $document = JFactory::getDocument(); + $head_data = $document->getHeadData(); + + foreach (array_keys($head_data['styleSheets']) as $script) + { + if (stristr($script, $script_name)) + { + return true; + } + } + + return false; + } +} \ No newline at end of file diff --git a/admin/helpers/html/batch_.php b/admin/helpers/html/batch_.php new file mode 100644 index 0000000..3638b95 --- /dev/null +++ b/admin/helpers/html/batch_.php @@ -0,0 +1,92 @@ + + @copyright Copyright (C) 2020 Vast Development Method. All rights reserved. + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Portal for mobile health clinics + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('JPATH_PLATFORM') or die; + +/** + * Utility class to render a list view batch selection options + * + * @since 3.0 + */ +abstract class JHtmlBatch_ +{ + /** + * ListSelection + * + * @var array + * @since 3.0 + */ + protected static $ListSelection = array(); + + /** + * Render the batch selection options. + * + * @return string The necessary HTML to display the batch selection options + * + * @since 3.0 + */ + public static function render() + { + // Collect display data + $data = new stdClass; + $data->ListSelection = static::getListSelection(); + + // Create a layout object and ask it to render the batch selection options + $layout = new JLayoutFile('batchselection'); + $batchHtml = $layout->render($data); + + return $batchHtml; + } + + /** + * Method to add a list selection to the batch modal + * + * @param string $label Label for the menu item. + * @param string $name Name for the filter. Also used as id. + * @param string $options Options for the select field. + * @param bool $noDefault Don't the label as the empty option + * + * @return void + * + * @since 3.0 + */ + public static function addListSelection($label, $name, $options, $noDefault = false) + { + array_push(static::$ListSelection, array('label' => $label, 'name' => $name, 'options' => $options, 'noDefault' => $noDefault)); + } + + /** + * Returns an array of all ListSelection + * + * @return array + * + * @since 3.0 + */ + public static function getListSelection() + { + return static::$ListSelection; + } +} diff --git a/admin/helpers/html/index.html b/admin/helpers/html/index.html new file mode 100644 index 0000000..fa6d84e --- /dev/null +++ b/admin/helpers/html/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/helpers/index.html b/admin/helpers/index.html new file mode 100644 index 0000000..fa6d84e --- /dev/null +++ b/admin/helpers/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/index.html b/admin/index.html new file mode 100644 index 0000000..fa6d84e --- /dev/null +++ b/admin/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/language/en-GB/en-GB.com_ehealth_portal.ini b/admin/language/en-GB/en-GB.com_ehealth_portal.ini new file mode 100644 index 0000000..9d47860 --- /dev/null +++ b/admin/language/en-GB/en-GB.com_ehealth_portal.ini @@ -0,0 +1,2850 @@ +COM_EHEALTH_PORTAL="eHealth Portal" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART="Administration Part" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS="Administration Parts" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_ACCESS="Administration Parts Access" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_ACCESS_DESC="Allows the users in this group to access access administration parts" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_BATCH_OPTIONS="Batch process the selected Administration Parts" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_BATCH_TIP="All changes will be applied to all selected Administration Parts" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_BATCH_USE="Administration Parts Batch Use" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch administration parts" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_EDIT_DESCRIPTION="Administration Parts Edit Description" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of administration part" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_EDIT_NAME="Administration Parts Edit Name" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_EDIT_NAME_DESC="Allows the users in this group to edit name of administration part" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_EDIT_VERSION="Administration Parts Edit Version" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version administration parts" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_EXPORT="Administration Parts Export" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_EXPORT_DESC="Allows the users in this group to export export administration parts" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_IMPORT="Administration Parts Import" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_IMPORT_DESC="Allows the users in this group to import import administration parts" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_ARCHIVED="%s Administration Parts archived." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_ARCHIVED_1="%s Administration Part archived." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_CHECKED_IN_0="No Administration Part successfully checked in." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_CHECKED_IN_1="%d Administration Part successfully checked in." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_CHECKED_IN_MORE="%d Administration Parts successfully checked in." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_DELETED="%s Administration Parts deleted." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_DELETED_1="%s Administration Part deleted." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_FAILED_PUBLISHING="%s Administration Parts failed publishing." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_FAILED_PUBLISHING_1="%s Administration Part failed publishing." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_FEATURED="%s Administration Parts featured." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_FEATURED_1="%s Administration Part featured." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_PUBLISHED="%s Administration Parts published." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_PUBLISHED_1="%s Administration Part published." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_TRASHED="%s Administration Parts trashed." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_TRASHED_1="%s Administration Part trashed." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_UNFEATURED="%s Administration Parts unfeatured." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_UNFEATURED_1="%s Administration Part unfeatured." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_UNPUBLISHED="%s Administration Parts unpublished." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_N_ITEMS_UNPUBLISHED_1="%s Administration Part unpublished." +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_SUBMENU="Administration Parts Submenu" +COM_EHEALTH_PORTAL_ADMINISTRATION_PARTS_SUBMENU_DESC="Allows the users in this group to submenu of administration part" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_CREATED_BY_DESC="The user that created this Administration Part." +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_CREATED_DATE_DESC="The date this Administration Part was created." +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_DETAILS="Details" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_EDIT="Editing the Administration Part" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_ERROR_UNIQUE_ALIAS="Another Administration Part has the same alias." +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_ID="Id" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_MODIFIED_BY_DESC="The last user that modified this Administration Part." +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_MODIFIED_DATE_DESC="The date this Administration Part was modified." +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_NAME_DESCRIPTION="Enter Name Here" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_NAME_HINT="Name here" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_NAME_LABEL="Name" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_NAME_MESSAGE="Error! Please add name here." +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_NEW="A New Administration Part" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Administration Part to customise the alias." +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_STATUS="Status" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_VACCINES="Vaccine(s)" +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_VERSION_DESC="A count of the number of times this Administration Part has been revised." +COM_EHEALTH_PORTAL_ADMINISTRATION_PART_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_ANTENATAL_CARE="Antenatal Care" +COM_EHEALTH_PORTAL_ANTENATAL_CARES="Antenatal Cares" +COM_EHEALTH_PORTAL_ANTENATAL_CARES_ACCESS="Antenatal Cares Access" +COM_EHEALTH_PORTAL_ANTENATAL_CARES_ACCESS_DESC="Allows the users in this group to access access antenatal cares" +COM_EHEALTH_PORTAL_ANTENATAL_CARES_BATCH_OPTIONS="Batch process the selected Antenatal Cares" +COM_EHEALTH_PORTAL_ANTENATAL_CARES_BATCH_TIP="All changes will be applied to all selected Antenatal Cares" +COM_EHEALTH_PORTAL_ANTENATAL_CARES_BATCH_USE="Antenatal Cares Batch Use" +COM_EHEALTH_PORTAL_ANTENATAL_CARES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch antenatal cares" +COM_EHEALTH_PORTAL_ANTENATAL_CARES_DASHBOARD_ADD="Antenatal Cares Dashboard Add" +COM_EHEALTH_PORTAL_ANTENATAL_CARES_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of antenatal care" +COM_EHEALTH_PORTAL_ANTENATAL_CARES_DASHBOARD_LIST="Antenatal Cares Dashboard List" +COM_EHEALTH_PORTAL_ANTENATAL_CARES_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of antenatal care" +COM_EHEALTH_PORTAL_ANTENATAL_CARES_EDIT_VERSION="Antenatal Cares Edit Version" +COM_EHEALTH_PORTAL_ANTENATAL_CARES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version antenatal cares" +COM_EHEALTH_PORTAL_ANTENATAL_CARES_EXPORT="Antenatal Cares Export" +COM_EHEALTH_PORTAL_ANTENATAL_CARES_EXPORT_DESC="Allows the users in this group to export export antenatal cares" +COM_EHEALTH_PORTAL_ANTENATAL_CARES_IMPORT="Antenatal Cares Import" +COM_EHEALTH_PORTAL_ANTENATAL_CARES_IMPORT_DESC="Allows the users in this group to import import antenatal cares" +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_ARCHIVED="%s Antenatal Cares archived." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_ARCHIVED_1="%s Antenatal Care archived." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_CHECKED_IN_0="No Antenatal Care successfully checked in." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_CHECKED_IN_1="%d Antenatal Care successfully checked in." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_CHECKED_IN_MORE="%d Antenatal Cares successfully checked in." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_DELETED="%s Antenatal Cares deleted." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_DELETED_1="%s Antenatal Care deleted." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_FAILED_PUBLISHING="%s Antenatal Cares failed publishing." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_FAILED_PUBLISHING_1="%s Antenatal Care failed publishing." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_FEATURED="%s Antenatal Cares featured." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_FEATURED_1="%s Antenatal Care featured." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_PUBLISHED="%s Antenatal Cares published." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_PUBLISHED_1="%s Antenatal Care published." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_TRASHED="%s Antenatal Cares trashed." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_TRASHED_1="%s Antenatal Care trashed." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_UNFEATURED="%s Antenatal Cares unfeatured." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_UNFEATURED_1="%s Antenatal Care unfeatured." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_UNPUBLISHED="%s Antenatal Cares unpublished." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_N_ITEMS_UNPUBLISHED_1="%s Antenatal Care unpublished." +COM_EHEALTH_PORTAL_ANTENATAL_CARES_SUBMENU="Antenatal Cares Submenu" +COM_EHEALTH_PORTAL_ANTENATAL_CARES_SUBMENU_DESC="Allows the users in this group to submenu of antenatal care" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_ABDOMINAL_EXAMINATION="Abdominal Examination" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_CAESAREAN_SECTIONS_LABEL="Number of caesarean sections?" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_CREATED_BY_DESC="The user that created this Antenatal Care." +COM_EHEALTH_PORTAL_ANTENATAL_CARE_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_CREATED_DATE_DESC="The date this Antenatal Care was created." +COM_EHEALTH_PORTAL_ANTENATAL_CARE_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_EDIT="Editing the Antenatal Care" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_ERROR_UNIQUE_ALIAS="Another Antenatal Care has the same alias." +COM_EHEALTH_PORTAL_ANTENATAL_CARE_FOETAL_ENGAGEMENT_DESCRIPTION="Select engagement of presenting part" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_FOETAL_ENGAGEMENT_LABEL="Engagement of presenting part" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_FOETAL_HEART_RATE_DESCRIPTION="Enter foetal heart rate (bpm)" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_FOETAL_HEART_RATE_LABEL="Foetal heart rate (bpm)" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_FOETAL_LIE_DESCRIPTION="Select foetal poles/lie" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_FOETAL_LIE_LABEL="Foetal poles/lie" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_FOETAL_MOVEMENTS_DESCRIPTION="Add Foetal Movements Here" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_FOETAL_MOVEMENTS_HINT="Add Foetal Movements Here" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_FOETAL_MOVEMENTS_LABEL="Foetal Movements" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_FOETAL_PRESENTATION_DESCRIPTION="Select foetal presentation" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_FOETAL_PRESENTATION_LABEL="Foetal presentation" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_ID="Id" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_LAST_MENSTRUAL_PERIOD_DESCRIPTION="Enter last menstrual period" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_LAST_MENSTRUAL_PERIOD_LABEL="Last Menstrual Period (LMP)" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_LIVE_BIRTHS_LABEL="Number of live births?" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_MISCARRIAGES_LABEL="Number of Miscarriages?" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_MODIFIED_BY_DESC="The last user that modified this Antenatal Care." +COM_EHEALTH_PORTAL_ANTENATAL_CARE_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_MODIFIED_DATE_DESC="The date this Antenatal Care was modified." +COM_EHEALTH_PORTAL_ANTENATAL_CARE_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_NEW="A New Antenatal Care" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_NORMAL_BIRTHS_LABEL="Number of Normal Births?" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_PATIENT_LABEL="Patient Name" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_PREGNANCIES_EXCL_LABEL="Number of pregnancies excluding this one?" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_PREGNANCY_HISTORY="Pregnancy History" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Antenatal Care to customise the alias." +COM_EHEALTH_PORTAL_ANTENATAL_CARE_STATUS="Status" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_STILL_BIRTHS_LABEL="Number of still births" +COM_EHEALTH_PORTAL_ANTENATAL_CARE_VERSION_DESC="A count of the number of times this Antenatal Care has been revised." +COM_EHEALTH_PORTAL_ANTENATAL_CARE_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_ARCHIVED="Archived" +COM_EHEALTH_PORTAL_AUTHOR="Author" +COM_EHEALTH_PORTAL_BACK="Back" +COM_EHEALTH_PORTAL_BREAST_CANCER="Breast Cancer" +COM_EHEALTH_PORTAL_BREAST_CANCERS="Breast Cancers" +COM_EHEALTH_PORTAL_BREAST_CANCERS_ACCESS="Breast Cancers Access" +COM_EHEALTH_PORTAL_BREAST_CANCERS_ACCESS_DESC="Allows the users in this group to access access breast cancers" +COM_EHEALTH_PORTAL_BREAST_CANCERS_BATCH_OPTIONS="Batch process the selected Breast Cancers" +COM_EHEALTH_PORTAL_BREAST_CANCERS_BATCH_TIP="All changes will be applied to all selected Breast Cancers" +COM_EHEALTH_PORTAL_BREAST_CANCERS_BATCH_USE="Breast Cancers Batch Use" +COM_EHEALTH_PORTAL_BREAST_CANCERS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch breast cancers" +COM_EHEALTH_PORTAL_BREAST_CANCERS_DASHBOARD_ADD="Breast Cancers Dashboard Add" +COM_EHEALTH_PORTAL_BREAST_CANCERS_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of breast cancer" +COM_EHEALTH_PORTAL_BREAST_CANCERS_DASHBOARD_LIST="Breast Cancers Dashboard List" +COM_EHEALTH_PORTAL_BREAST_CANCERS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of breast cancer" +COM_EHEALTH_PORTAL_BREAST_CANCERS_EDIT_VERSION="Breast Cancers Edit Version" +COM_EHEALTH_PORTAL_BREAST_CANCERS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version breast cancers" +COM_EHEALTH_PORTAL_BREAST_CANCERS_EXPORT="Breast Cancers Export" +COM_EHEALTH_PORTAL_BREAST_CANCERS_EXPORT_DESC="Allows the users in this group to export export breast cancers" +COM_EHEALTH_PORTAL_BREAST_CANCERS_IMPORT="Breast Cancers Import" +COM_EHEALTH_PORTAL_BREAST_CANCERS_IMPORT_DESC="Allows the users in this group to import import breast cancers" +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_ARCHIVED="%s Breast Cancers archived." +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_ARCHIVED_1="%s Breast Cancer archived." +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_CHECKED_IN_0="No Breast Cancer successfully checked in." +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_CHECKED_IN_1="%d Breast Cancer successfully checked in." +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_CHECKED_IN_MORE="%d Breast Cancers successfully checked in." +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_DELETED="%s Breast Cancers deleted." +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_DELETED_1="%s Breast Cancer deleted." +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_FAILED_PUBLISHING="%s Breast Cancers failed publishing." +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_FAILED_PUBLISHING_1="%s Breast Cancer failed publishing." +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_FEATURED="%s Breast Cancers featured." +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_FEATURED_1="%s Breast Cancer featured." +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_PUBLISHED="%s Breast Cancers published." +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_PUBLISHED_1="%s Breast Cancer published." +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_TRASHED="%s Breast Cancers trashed." +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_TRASHED_1="%s Breast Cancer trashed." +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_UNFEATURED="%s Breast Cancers unfeatured." +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_UNFEATURED_1="%s Breast Cancer unfeatured." +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_UNPUBLISHED="%s Breast Cancers unpublished." +COM_EHEALTH_PORTAL_BREAST_CANCERS_N_ITEMS_UNPUBLISHED_1="%s Breast Cancer unpublished." +COM_EHEALTH_PORTAL_BREAST_CANCERS_SUBMENU="Breast Cancers Submenu" +COM_EHEALTH_PORTAL_BREAST_CANCERS_SUBMENU_DESC="Allows the users in this group to submenu of breast cancer" +COM_EHEALTH_PORTAL_BREAST_CANCER_ASIAN="Asian" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_ABNORMAL_SKIN_DESCRIPTION="Scaly, red. or swollen skin on the breast" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_ABNORMAL_SKIN_LABEL="Scaly, red. or swollen skin on the breast" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_AGE_RANGE_DESCRIPTION="Age > 40 years" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_AGE_RANGE_LABEL="Age > 40 years" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_BREASTFEEDING_DESCRIPTION="Are you breastfeeding?" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_BREASTFEEDING_LABEL="Are you breastfeeding?" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_BREAST_SHAPE_DESCRIPTION="A change in the size or shape of the breast" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_BREAST_SHAPE_LABEL="A change in the size or shape of the breast" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_DIMPLING_DESCRIPTION="Dimpling or puckering (contact into wrinkles or small folds) in the skin of the breast. The skin may have ridges or pitting so that it looks like the skin of an orange" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_DIMPLING_LABEL="Dimpling or puckering (contact into wrinkles or small folds) in the skin of the breast. The skin may have ridges or pitting so that it looks like the skin of an orange" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_FAMILY_HISTORY_DESCRIPTION="Do you have a family history of breast cancer in the family, immediate family (mother / grandmother)?" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_FAMILY_HISTORY_LABEL="Do you have a family history of breast cancer in the family, immediate family (mother / grandmother)?" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_HISTORY_HRT_DESCRIPTION="Do you have a history of taking HRT (Oestrogen hormone replacement therapy)?" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_HISTORY_HRT_LABEL="Do you have a history of taking HRT (Oestrogen hormone replacement therapy)?" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_INWARD_NIPPLE_DESCRIPTION="A nipple turned inward into the breast" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_INWARD_NIPPLE_LABEL="A nipple turned inward into the breast" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_LUMP_NEAR_BREAST_DESCRIPTION="A lump or thickening in or near the breast or in the underarm area" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_LUMP_NEAR_BREAST_LABEL="A lump or thickening in or near the breast or in the underarm area" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_NIPPLE_DISCHARGE_DESCRIPTION="Discharge (fluid) from the nipple, especially if it's bloody" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_NIPPLE_DISCHARGE_LABEL="Discharge (fluid) from the nipple, especially if it's bloody" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_OVERWEIGHT_DESCRIPTION="Does the patient appear to be overweight?" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_OVERWEIGHT_LABEL="Does the patient appear to be overweight?" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_PREG_AGE_LABEL="At what age was your first pregnancy?" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_PREG_FREQ_LABEL="How many times were you pregnant?" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_RACE_LABEL="Race" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_REG_EXERCISE_DESCRIPTION="Do you do regular exercise?" +COM_EHEALTH_PORTAL_BREAST_CANCER_BC_REG_EXERCISE_LABEL="Do you do regular exercise?" +COM_EHEALTH_PORTAL_BREAST_CANCER_BLACK="Black" +COM_EHEALTH_PORTAL_BREAST_CANCER_BREAST_EXAMINATION="Breast Examination" +COM_EHEALTH_PORTAL_BREAST_CANCER_COLOURED="Coloured" +COM_EHEALTH_PORTAL_BREAST_CANCER_CREATED_BY_DESC="The user that created this Breast Cancer." +COM_EHEALTH_PORTAL_BREAST_CANCER_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_BREAST_CANCER_CREATED_DATE_DESC="The date this Breast Cancer was created." +COM_EHEALTH_PORTAL_BREAST_CANCER_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_BREAST_CANCER_EDIT="Editing the Breast Cancer" +COM_EHEALTH_PORTAL_BREAST_CANCER_ERROR_UNIQUE_ALIAS="Another Breast Cancer has the same alias." +COM_EHEALTH_PORTAL_BREAST_CANCER_ID="Id" +COM_EHEALTH_PORTAL_BREAST_CANCER_MODIFIED_BY_DESC="The last user that modified this Breast Cancer." +COM_EHEALTH_PORTAL_BREAST_CANCER_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_BREAST_CANCER_MODIFIED_DATE_DESC="The date this Breast Cancer was modified." +COM_EHEALTH_PORTAL_BREAST_CANCER_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_BREAST_CANCER_NEW="A New Breast Cancer" +COM_EHEALTH_PORTAL_BREAST_CANCER_NO="No" +COM_EHEALTH_PORTAL_BREAST_CANCER_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_BREAST_CANCER_PATIENT_LABEL="Patient Name" +COM_EHEALTH_PORTAL_BREAST_CANCER_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_BREAST_CANCER_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_BREAST_CANCER_REASON_DESCRIPTION="Add Reason Here" +COM_EHEALTH_PORTAL_BREAST_CANCER_REASON_HINT="Add Reason Here" +COM_EHEALTH_PORTAL_BREAST_CANCER_REASON_LABEL="Reason" +COM_EHEALTH_PORTAL_BREAST_CANCER_REFERRALS="Referrals" +COM_EHEALTH_PORTAL_BREAST_CANCER_REFERRAL_LABEL="Referred to" +COM_EHEALTH_PORTAL_BREAST_CANCER_RISK_ASSESMENT="Risk Assesment" +COM_EHEALTH_PORTAL_BREAST_CANCER_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Breast Cancer to customise the alias." +COM_EHEALTH_PORTAL_BREAST_CANCER_STATUS="Status" +COM_EHEALTH_PORTAL_BREAST_CANCER_THIRTY_YEARS="30+ years" +COM_EHEALTH_PORTAL_BREAST_CANCER_TXT_BC_ABNORMAL_SKIN_DESCRIPTION="Scaly, red. or swollen skin on the breast" +COM_EHEALTH_PORTAL_BREAST_CANCER_TXT_BC_ABNORMAL_SKIN_HINT="Add text Here" +COM_EHEALTH_PORTAL_BREAST_CANCER_TXT_BC_ABNORMAL_SKIN_LABEL="Comments:" +COM_EHEALTH_PORTAL_BREAST_CANCER_TXT_BC_BREAST_SHAPE_DESCRIPTION="A change in the size or shape of the breast" +COM_EHEALTH_PORTAL_BREAST_CANCER_TXT_BC_BREAST_SHAPE_HINT="Add text here" +COM_EHEALTH_PORTAL_BREAST_CANCER_TXT_BC_BREAST_SHAPE_LABEL="Comments:" +COM_EHEALTH_PORTAL_BREAST_CANCER_TXT_BC_DIMPLING_DESCRIPTION="Dimpling or puckering (contact into wrinkles or small folds) in the skin of the breast. The skin may have ridges or pitting so that it looks like the skin of an orange" +COM_EHEALTH_PORTAL_BREAST_CANCER_TXT_BC_DIMPLING_HINT="Add text Here" +COM_EHEALTH_PORTAL_BREAST_CANCER_TXT_BC_DIMPLING_LABEL="Comments:" +COM_EHEALTH_PORTAL_BREAST_CANCER_TXT_BC_INWARD_NIPPLE_DESCRIPTION="A nipple turned inward into the breast" +COM_EHEALTH_PORTAL_BREAST_CANCER_TXT_BC_INWARD_NIPPLE_HINT="Add text Here" +COM_EHEALTH_PORTAL_BREAST_CANCER_TXT_BC_INWARD_NIPPLE_LABEL="Comments:" +COM_EHEALTH_PORTAL_BREAST_CANCER_TXT_BC_LUMP_NEAR_BREAST_DESCRIPTION="A lump or thickening in or near the breast or in the underarm area" +COM_EHEALTH_PORTAL_BREAST_CANCER_TXT_BC_LUMP_NEAR_BREAST_HINT="Add text here" +COM_EHEALTH_PORTAL_BREAST_CANCER_TXT_BC_LUMP_NEAR_BREAST_LABEL="Comments:" +COM_EHEALTH_PORTAL_BREAST_CANCER_TXT_BC_NIPPLE_DISCHARGE_DESCRIPTION="Discharge (fluid) from the nipple, especially if it's bloody" +COM_EHEALTH_PORTAL_BREAST_CANCER_TXT_BC_NIPPLE_DISCHARGE_HINT="Add text Here" +COM_EHEALTH_PORTAL_BREAST_CANCER_TXT_BC_NIPPLE_DISCHARGE_LABEL="Comments:" +COM_EHEALTH_PORTAL_BREAST_CANCER_VERSION_DESC="A count of the number of times this Breast Cancer has been revised." +COM_EHEALTH_PORTAL_BREAST_CANCER_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_BREAST_CANCER_WHITE="White" +COM_EHEALTH_PORTAL_BREAST_CANCER_YES="Yes" +COM_EHEALTH_PORTAL_CERVICAL_CANCER="Cervical Cancer" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS="Cervical Cancers" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_ACCESS="Cervical Cancers Access" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_ACCESS_DESC="Allows the users in this group to access access cervical cancers" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_BATCH_OPTIONS="Batch process the selected Cervical Cancers" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_BATCH_TIP="All changes will be applied to all selected Cervical Cancers" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_BATCH_USE="Cervical Cancers Batch Use" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch cervical cancers" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_DASHBOARD_ADD="Cervical Cancers Dashboard Add" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of cervical cancer" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_DASHBOARD_LIST="Cervical Cancers Dashboard List" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of cervical cancer" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_EDIT_VERSION="Cervical Cancers Edit Version" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version cervical cancers" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_EXPORT="Cervical Cancers Export" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_EXPORT_DESC="Allows the users in this group to export export cervical cancers" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_IMPORT="Cervical Cancers Import" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_IMPORT_DESC="Allows the users in this group to import import cervical cancers" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_ARCHIVED="%s Cervical Cancers archived." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_ARCHIVED_1="%s Cervical Cancer archived." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_CHECKED_IN_0="No Cervical Cancer successfully checked in." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_CHECKED_IN_1="%d Cervical Cancer successfully checked in." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_CHECKED_IN_MORE="%d Cervical Cancers successfully checked in." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_DELETED="%s Cervical Cancers deleted." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_DELETED_1="%s Cervical Cancer deleted." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_FAILED_PUBLISHING="%s Cervical Cancers failed publishing." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_FAILED_PUBLISHING_1="%s Cervical Cancer failed publishing." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_FEATURED="%s Cervical Cancers featured." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_FEATURED_1="%s Cervical Cancer featured." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_PUBLISHED="%s Cervical Cancers published." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_PUBLISHED_1="%s Cervical Cancer published." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_TRASHED="%s Cervical Cancers trashed." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_TRASHED_1="%s Cervical Cancer trashed." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_UNFEATURED="%s Cervical Cancers unfeatured." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_UNFEATURED_1="%s Cervical Cancer unfeatured." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_UNPUBLISHED="%s Cervical Cancers unpublished." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_N_ITEMS_UNPUBLISHED_1="%s Cervical Cancer unpublished." +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_SUBMENU="Cervical Cancers Submenu" +COM_EHEALTH_PORTAL_CERVICAL_CANCERS_SUBMENU_DESC="Allows the users in this group to submenu of cervical cancer" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CC_PERIODS_DESCRIPTION="Periods that become heavier and last longer than usual" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CC_PERIODS_LABEL="Periods that become heavier and last longer than usual" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CC_REASON_DESCRIPTION="Enter Reason" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CC_REASON_HINT="Your Reason Here" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CC_REASON_LABEL="Reason" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CC_REASON_MESSAGE="Error! Please add some text here." +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CC_RESULT_DESCRIPTION="Results" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CC_RESULT_LABEL="Results" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CC_SEX_ACTVE_DESCRIPTION="Have you been sexually active from a young age?" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CC_SEX_ACTVE_LABEL="Have you been sexually active from a young age?" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CC_SEX_PARTNER_DESCRIPTION="Have you had multiple sexual partners?" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CC_SEX_PARTNER_LABEL="Have you had multiple sexual partners?" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CC_SMOKING_DESCRIPTION="Do you smoke?" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CC_SMOKING_LABEL="Do you smoke?" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CC_VIGINAL_BLEEDING_DESCRIPTION="Abnormal vaginal bleeding between periods, after intercourse, or after menopause" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CC_VIGINAL_BLEEDING_LABEL="Abnormal vaginal bleeding between periods, after intercourse, or after menopause" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CC_V_DISCHARGE_DESCRIPTION="Vaginal discharge that does not stop, and may be pale, watery, pink, brown, bloody, or foul-smelling" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CC_V_DISCHARGE_LABEL="Vaginal discharge that does not stop, and may be pale, watery, pink, brown, bloody, or foul-smelling" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CERVICAL_EXAMINATION="Cervical Examination" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CREATED_BY_DESC="The user that created this Cervical Cancer." +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CREATED_DATE_DESC="The date this Cervical Cancer was created." +COM_EHEALTH_PORTAL_CERVICAL_CANCER_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_EDIT="Editing the Cervical Cancer" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_ERROR_UNIQUE_ALIAS="Another Cervical Cancer has the same alias." +COM_EHEALTH_PORTAL_CERVICAL_CANCER_ID="Id" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_INCONCLUSIVE="Inconclusive" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_MODIFIED_BY_DESC="The last user that modified this Cervical Cancer." +COM_EHEALTH_PORTAL_CERVICAL_CANCER_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_MODIFIED_DATE_DESC="The date this Cervical Cancer was modified." +COM_EHEALTH_PORTAL_CERVICAL_CANCER_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_NEGATIVE="Negative" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_NEW="A New Cervical Cancer" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_NO="No" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_PAP_SMEAR_COLLECTION_DESCRIPTION="Pap smear collected" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_PAP_SMEAR_COLLECTION_LABEL="Pap smear collected" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_PATIENT_LABEL="Patient Name" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_POSITIVE="Positive" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_REASON_DESCRIPTION="Add Reason Here" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_REASON_HINT="Add Reason Here" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_REASON_LABEL="Reason" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_REFERRALS="Referrals" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_REFERRAL_LABEL="Referred to" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_RISK_ASSESMENT="Risk Assesment" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Cervical Cancer to customise the alias." +COM_EHEALTH_PORTAL_CERVICAL_CANCER_STATUS="Status" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_TXT_CC_PERIODS_DESCRIPTION="Periods that become heavier and last longer than usual" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_TXT_CC_PERIODS_HINT="Add text Here" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_TXT_CC_PERIODS_LABEL="Comments:" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_TXT_CC_SEX_ACTVE_DESCRIPTION="Have you been sexually active from a young age?" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_TXT_CC_SEX_ACTVE_HINT="Add text here" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_TXT_CC_SEX_ACTVE_LABEL="Comments:" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_TXT_CC_SEX_PARTNER_DESCRIPTION="Have you had multiple sexual partners?" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_TXT_CC_SEX_PARTNER_HINT="Add text here" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_TXT_CC_SEX_PARTNER_LABEL="Comments:" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_TXT_CC_SMOKING_DESCRIPTION="Do you smoke?" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_TXT_CC_SMOKING_HINT="Add text Here" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_TXT_CC_SMOKING_LABEL="Comments:" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_TXT_CC_VIGINAL_BLEEDING_DESCRIPTION="Abnormal vaginal bleeding between periods, after intercourse, or after menopause" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_TXT_CC_VIGINAL_BLEEDING_HINT="Add text Here" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_TXT_CC_VIGINAL_BLEEDING_LABEL="Comments:" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_TXT_CC_V_DISCHARGE_DESCRIPTION="Vaginal discharge that does not stop, and may be pale, watery, pink, brown, bloody, or foul-smelling" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_TXT_CC_V_DISCHARGE_HINT="Add text Here" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_TXT_CC_V_DISCHARGE_LABEL="Comments:" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_VERSION_DESC="A count of the number of times this Cervical Cancer has been revised." +COM_EHEALTH_PORTAL_CERVICAL_CANCER_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_CERVICAL_CANCER_YES="Yes" +COM_EHEALTH_PORTAL_CLINIC="Clinic" +COM_EHEALTH_PORTAL_CLINICS="Clinics" +COM_EHEALTH_PORTAL_CLINICS_ACCESS="Clinics Access" +COM_EHEALTH_PORTAL_CLINICS_ACCESS_DESC="Allows the users in this group to access access clinics" +COM_EHEALTH_PORTAL_CLINICS_BATCH_OPTIONS="Batch process the selected Clinics" +COM_EHEALTH_PORTAL_CLINICS_BATCH_TIP="All changes will be applied to all selected Clinics" +COM_EHEALTH_PORTAL_CLINICS_BATCH_USE="Clinics Batch Use" +COM_EHEALTH_PORTAL_CLINICS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch clinics" +COM_EHEALTH_PORTAL_CLINICS_EDIT_CLINIC_NAME="Clinics Edit Clinic Name" +COM_EHEALTH_PORTAL_CLINICS_EDIT_CLINIC_NAME_DESC="Allows the users in this group to edit clinic name of clinic" +COM_EHEALTH_PORTAL_CLINICS_EDIT_DESCRIPTION="Clinics Edit Description" +COM_EHEALTH_PORTAL_CLINICS_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of clinic" +COM_EHEALTH_PORTAL_CLINICS_EDIT_VERSION="Clinics Edit Version" +COM_EHEALTH_PORTAL_CLINICS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version clinics" +COM_EHEALTH_PORTAL_CLINICS_EXPORT="Clinics Export" +COM_EHEALTH_PORTAL_CLINICS_EXPORT_DESC="Allows the users in this group to export export clinics" +COM_EHEALTH_PORTAL_CLINICS_IMPORT="Clinics Import" +COM_EHEALTH_PORTAL_CLINICS_IMPORT_DESC="Allows the users in this group to import import clinics" +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_ARCHIVED="%s Clinics archived." +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_ARCHIVED_1="%s Clinic archived." +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_CHECKED_IN_0="No Clinic successfully checked in." +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_CHECKED_IN_1="%d Clinic successfully checked in." +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_CHECKED_IN_MORE="%d Clinics successfully checked in." +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_DELETED="%s Clinics deleted." +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_DELETED_1="%s Clinic deleted." +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_FAILED_PUBLISHING="%s Clinics failed publishing." +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_FAILED_PUBLISHING_1="%s Clinic failed publishing." +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_FEATURED="%s Clinics featured." +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_FEATURED_1="%s Clinic featured." +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_PUBLISHED="%s Clinics published." +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_PUBLISHED_1="%s Clinic published." +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_TRASHED="%s Clinics trashed." +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_TRASHED_1="%s Clinic trashed." +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_UNFEATURED="%s Clinics unfeatured." +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_UNFEATURED_1="%s Clinic unfeatured." +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_UNPUBLISHED="%s Clinics unpublished." +COM_EHEALTH_PORTAL_CLINICS_N_ITEMS_UNPUBLISHED_1="%s Clinic unpublished." +COM_EHEALTH_PORTAL_CLINIC_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_CLINIC_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_CLINIC_CLINIC_NAME_DESCRIPTION="Enter Clinic Name Here" +COM_EHEALTH_PORTAL_CLINIC_CLINIC_NAME_HINT="Clinic Name Here" +COM_EHEALTH_PORTAL_CLINIC_CLINIC_NAME_LABEL="Clinic Name" +COM_EHEALTH_PORTAL_CLINIC_CLINIC_NAME_MESSAGE="Error! Please add clinic name here." +COM_EHEALTH_PORTAL_CLINIC_CLINIC_TYPE_DESCRIPTION="Clinic Type" +COM_EHEALTH_PORTAL_CLINIC_CLINIC_TYPE_LABEL="Clinic Type" +COM_EHEALTH_PORTAL_CLINIC_CREATED_BY_DESC="The user that created this Clinic." +COM_EHEALTH_PORTAL_CLINIC_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_CLINIC_CREATED_DATE_DESC="The date this Clinic was created." +COM_EHEALTH_PORTAL_CLINIC_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_CLINIC_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_CLINIC_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_CLINIC_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_CLINIC_DETAILS="Details" +COM_EHEALTH_PORTAL_CLINIC_EDIT="Editing the Clinic" +COM_EHEALTH_PORTAL_CLINIC_ERROR_UNIQUE_ALIAS="Another Clinic has the same alias." +COM_EHEALTH_PORTAL_CLINIC_FIXED="Fixed" +COM_EHEALTH_PORTAL_CLINIC_ID="Id" +COM_EHEALTH_PORTAL_CLINIC_MOBILE="Mobile" +COM_EHEALTH_PORTAL_CLINIC_MODIFIED_BY_DESC="The last user that modified this Clinic." +COM_EHEALTH_PORTAL_CLINIC_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_CLINIC_MODIFIED_DATE_DESC="The date this Clinic was modified." +COM_EHEALTH_PORTAL_CLINIC_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_CLINIC_NEW="A New Clinic" +COM_EHEALTH_PORTAL_CLINIC_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_CLINIC_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_CLINIC_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_CLINIC_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Clinic to customise the alias." +COM_EHEALTH_PORTAL_CLINIC_STATUS="Status" +COM_EHEALTH_PORTAL_CLINIC_VERSION_DESC="A count of the number of times this Clinic has been revised." +COM_EHEALTH_PORTAL_CLINIC_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_CLOSE_NEW="Close & New" +COM_EHEALTH_PORTAL_CONFIG_AUTHOR="Author Info" +COM_EHEALTH_PORTAL_CONFIG_AUTHOR_EMAIL_DESC="The email address of the author of this component." +COM_EHEALTH_PORTAL_CONFIG_AUTHOR_EMAIL_LABEL="Author Email" +COM_EHEALTH_PORTAL_CONFIG_AUTHOR_NAME_DESC="The name of the author of this component." +COM_EHEALTH_PORTAL_CONFIG_AUTHOR_NAME_LABEL="Author Name" +COM_EHEALTH_PORTAL_CONFIG_CHECK_TIMER_DESC="Set the intervals for the auto checkin fuction of tables that checks out the items to an user." +COM_EHEALTH_PORTAL_CONFIG_CHECK_TIMER_LABEL="Check in timer" +COM_EHEALTH_PORTAL_CONFIG_CHECK_TIMER_OPTION_FIVE="Once a week" +COM_EHEALTH_PORTAL_CONFIG_CHECK_TIMER_OPTION_FOUR="Every second day" +COM_EHEALTH_PORTAL_CONFIG_CHECK_TIMER_OPTION_ONE="Every five hours" +COM_EHEALTH_PORTAL_CONFIG_CHECK_TIMER_OPTION_SIX="Never" +COM_EHEALTH_PORTAL_CONFIG_CHECK_TIMER_OPTION_THREE="Once a day" +COM_EHEALTH_PORTAL_CONFIG_CHECK_TIMER_OPTION_TWO="Every twelve hours" +COM_EHEALTH_PORTAL_CONFIG_GLOBAL_DESC="The Global Parameters" +COM_EHEALTH_PORTAL_CONFIG_GLOBAL_LABEL="Global" +COM_EHEALTH_PORTAL_CONTRIBUTOR="Contributor" +COM_EHEALTH_PORTAL_CONTRIBUTORS="Contributors" +COM_EHEALTH_PORTAL_COUNSELING_TYPE="Counseling Type" +COM_EHEALTH_PORTAL_COUNSELING_TYPES="Counseling Types" +COM_EHEALTH_PORTAL_COUNSELING_TYPES_ACCESS="Counseling Types Access" +COM_EHEALTH_PORTAL_COUNSELING_TYPES_ACCESS_DESC="Allows the users in this group to access access counseling types" +COM_EHEALTH_PORTAL_COUNSELING_TYPES_BATCH_OPTIONS="Batch process the selected Counseling Types" +COM_EHEALTH_PORTAL_COUNSELING_TYPES_BATCH_TIP="All changes will be applied to all selected Counseling Types" +COM_EHEALTH_PORTAL_COUNSELING_TYPES_BATCH_USE="Counseling Types Batch Use" +COM_EHEALTH_PORTAL_COUNSELING_TYPES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch counseling types" +COM_EHEALTH_PORTAL_COUNSELING_TYPES_EDIT_DESCRIPTION="Counseling Types Edit Description" +COM_EHEALTH_PORTAL_COUNSELING_TYPES_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of counseling type" +COM_EHEALTH_PORTAL_COUNSELING_TYPES_EDIT_NAME="Counseling Types Edit Name" +COM_EHEALTH_PORTAL_COUNSELING_TYPES_EDIT_NAME_DESC="Allows the users in this group to edit name of counseling type" +COM_EHEALTH_PORTAL_COUNSELING_TYPES_EDIT_VERSION="Counseling Types Edit Version" +COM_EHEALTH_PORTAL_COUNSELING_TYPES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version counseling types" +COM_EHEALTH_PORTAL_COUNSELING_TYPES_EXPORT="Counseling Types Export" +COM_EHEALTH_PORTAL_COUNSELING_TYPES_EXPORT_DESC="Allows the users in this group to export export counseling types" +COM_EHEALTH_PORTAL_COUNSELING_TYPES_IMPORT="Counseling Types Import" +COM_EHEALTH_PORTAL_COUNSELING_TYPES_IMPORT_DESC="Allows the users in this group to import import counseling types" +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_ARCHIVED="%s Counseling Types archived." +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_ARCHIVED_1="%s Counseling Type archived." +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_CHECKED_IN_0="No Counseling Type successfully checked in." +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_CHECKED_IN_1="%d Counseling Type successfully checked in." +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_CHECKED_IN_MORE="%d Counseling Types successfully checked in." +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_DELETED="%s Counseling Types deleted." +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_DELETED_1="%s Counseling Type deleted." +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_FAILED_PUBLISHING="%s Counseling Types failed publishing." +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_FAILED_PUBLISHING_1="%s Counseling Type failed publishing." +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_FEATURED="%s Counseling Types featured." +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_FEATURED_1="%s Counseling Type featured." +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_PUBLISHED="%s Counseling Types published." +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_PUBLISHED_1="%s Counseling Type published." +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_TRASHED="%s Counseling Types trashed." +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_TRASHED_1="%s Counseling Type trashed." +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_UNFEATURED="%s Counseling Types unfeatured." +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_UNFEATURED_1="%s Counseling Type unfeatured." +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_UNPUBLISHED="%s Counseling Types unpublished." +COM_EHEALTH_PORTAL_COUNSELING_TYPES_N_ITEMS_UNPUBLISHED_1="%s Counseling Type unpublished." +COM_EHEALTH_PORTAL_COUNSELING_TYPE_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_CREATED_BY_DESC="The user that created this Counseling Type." +COM_EHEALTH_PORTAL_COUNSELING_TYPE_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_CREATED_DATE_DESC="The date this Counseling Type was created." +COM_EHEALTH_PORTAL_COUNSELING_TYPE_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_DETAILS="Details" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_EDIT="Editing the Counseling Type" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_ERROR_UNIQUE_ALIAS="Another Counseling Type has the same alias." +COM_EHEALTH_PORTAL_COUNSELING_TYPE_ID="Id" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_MODIFIED_BY_DESC="The last user that modified this Counseling Type." +COM_EHEALTH_PORTAL_COUNSELING_TYPE_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_MODIFIED_DATE_DESC="The date this Counseling Type was modified." +COM_EHEALTH_PORTAL_COUNSELING_TYPE_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_NAME_DESCRIPTION="Enter Name Here" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_NAME_HINT="Name here" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_NAME_LABEL="Name" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_NAME_MESSAGE="Error! Please add name here." +COM_EHEALTH_PORTAL_COUNSELING_TYPE_NEW="A New Counseling Type" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Counseling Type to customise the alias." +COM_EHEALTH_PORTAL_COUNSELING_TYPE_STATUS="Status" +COM_EHEALTH_PORTAL_COUNSELING_TYPE_VERSION_DESC="A count of the number of times this Counseling Type has been revised." +COM_EHEALTH_PORTAL_COUNSELING_TYPE_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_CREATE_NEW_S="Create New %s" +COM_EHEALTH_PORTAL_DASH="Dashboard" +COM_EHEALTH_PORTAL_DASHBOARD="eHealth Portal Dashboard" +COM_EHEALTH_PORTAL_DASHBOARD_ANTENATAL_CARES="Antenatal Cares

" +COM_EHEALTH_PORTAL_DASHBOARD_ANTENATAL_CARE_ADD="Add Antenatal Care

" +COM_EHEALTH_PORTAL_DASHBOARD_BREAST_CANCERS="Breast Cancers

" +COM_EHEALTH_PORTAL_DASHBOARD_BREAST_CANCER_ADD="Add Breast Cancer

" +COM_EHEALTH_PORTAL_DASHBOARD_CERVICAL_CANCERS="Cervical Cancers

" +COM_EHEALTH_PORTAL_DASHBOARD_CERVICAL_CANCER_ADD="Add Cervical Cancer

" +COM_EHEALTH_PORTAL_DASHBOARD_FAMILY_PLANNINGS="Family Plannings

" +COM_EHEALTH_PORTAL_DASHBOARD_FAMILY_PLANNING_ADD="Add Family Planning

" +COM_EHEALTH_PORTAL_DASHBOARD_GENERAL_MEDICAL_CHECK_UPS="General Medical Check Ups

" +COM_EHEALTH_PORTAL_DASHBOARD_GENERAL_MEDICAL_CHECK_UP_ADD="Add General Medical Check Up

" +COM_EHEALTH_PORTAL_DASHBOARD_HEALTH_EDUCATIONS="Health Educations

" +COM_EHEALTH_PORTAL_DASHBOARD_HEALTH_EDUCATION_ADD="Add Health Education

" +COM_EHEALTH_PORTAL_DASHBOARD_HIV_COUNSELINGS_AND_TESTINGS="Hiv Counselings And Testings

" +COM_EHEALTH_PORTAL_DASHBOARD_HIV_COUNSELING_AND_TESTING_ADD="Add Hiv Counseling And Testing

" +COM_EHEALTH_PORTAL_DASHBOARD_IMMUNISATIONS="Immunisations

" +COM_EHEALTH_PORTAL_DASHBOARD_IMMUNISATION_ADD="Add Immunisation

" +COM_EHEALTH_PORTAL_DASHBOARD_PATIENT_QUEUE="Patient Queue

" +COM_EHEALTH_PORTAL_DASHBOARD_PAYMENTS="Payments

" +COM_EHEALTH_PORTAL_DASHBOARD_PAYMENT_ADD="Add Payment

" +COM_EHEALTH_PORTAL_DASHBOARD_PROSTATE_AND_TESTICULAR_CANCERS="Prostate And Testicular Cancers

" +COM_EHEALTH_PORTAL_DASHBOARD_PROSTATE_AND_TESTICULAR_CANCER_ADD="Add Prostate And Testicular Cancer

" +COM_EHEALTH_PORTAL_DASHBOARD_TESTS="Tests

" +COM_EHEALTH_PORTAL_DASHBOARD_TEST_ADD="Add Test

" +COM_EHEALTH_PORTAL_DASHBOARD_TUBERCULOSES="Tuberculoses

" +COM_EHEALTH_PORTAL_DASHBOARD_TUBERCULOSIS_ADD="Add Tuberculosis

" +COM_EHEALTH_PORTAL_DASHBOARD_VMMCS="Vmmcs

" +COM_EHEALTH_PORTAL_DASHBOARD_VMMC_ADD="Add Vmmc

" +COM_EHEALTH_PORTAL_DATE="Date" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE="Diagnosis Type" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES="Diagnosis Types" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_ACCESS="Diagnosis Types Access" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_ACCESS_DESC="Allows the users in this group to access access diagnosis types" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_BATCH_OPTIONS="Batch process the selected Diagnosis Types" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_BATCH_TIP="All changes will be applied to all selected Diagnosis Types" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_BATCH_USE="Diagnosis Types Batch Use" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch diagnosis types" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_EDIT_DESCRIPTION="Diagnosis Types Edit Description" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of diagnosis type" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_EDIT_NAME="Diagnosis Types Edit Name" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_EDIT_NAME_DESC="Allows the users in this group to edit name of diagnosis type" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_EDIT_VERSION="Diagnosis Types Edit Version" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version diagnosis types" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_EXPORT="Diagnosis Types Export" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_EXPORT_DESC="Allows the users in this group to export export diagnosis types" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_IMPORT="Diagnosis Types Import" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_IMPORT_DESC="Allows the users in this group to import import diagnosis types" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_ARCHIVED="%s Diagnosis Types archived." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_ARCHIVED_1="%s Diagnosis Type archived." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_CHECKED_IN_0="No Diagnosis Type successfully checked in." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_CHECKED_IN_1="%d Diagnosis Type successfully checked in." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_CHECKED_IN_MORE="%d Diagnosis Types successfully checked in." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_DELETED="%s Diagnosis Types deleted." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_DELETED_1="%s Diagnosis Type deleted." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_FAILED_PUBLISHING="%s Diagnosis Types failed publishing." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_FAILED_PUBLISHING_1="%s Diagnosis Type failed publishing." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_FEATURED="%s Diagnosis Types featured." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_FEATURED_1="%s Diagnosis Type featured." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_PUBLISHED="%s Diagnosis Types published." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_PUBLISHED_1="%s Diagnosis Type published." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_TRASHED="%s Diagnosis Types trashed." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_TRASHED_1="%s Diagnosis Type trashed." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_UNFEATURED="%s Diagnosis Types unfeatured." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_UNFEATURED_1="%s Diagnosis Type unfeatured." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_UNPUBLISHED="%s Diagnosis Types unpublished." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPES_N_ITEMS_UNPUBLISHED_1="%s Diagnosis Type unpublished." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_CREATED_BY_DESC="The user that created this Diagnosis Type." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_CREATED_DATE_DESC="The date this Diagnosis Type was created." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_DETAILS="Details" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_EDIT="Editing the Diagnosis Type" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_ERROR_UNIQUE_ALIAS="Another Diagnosis Type has the same alias." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_ID="Id" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_MODIFIED_BY_DESC="The last user that modified this Diagnosis Type." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_MODIFIED_DATE_DESC="The date this Diagnosis Type was modified." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_NAME_DESCRIPTION="Enter Name Here" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_NAME_HINT="Name here" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_NAME_LABEL="Name" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_NAME_MESSAGE="Error! Please add name here." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_NEW="A New Diagnosis Type" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Diagnosis Type to customise the alias." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_STATUS="Status" +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_VERSION_DESC="A count of the number of times this Diagnosis Type has been revised." +COM_EHEALTH_PORTAL_DIAGNOSIS_TYPE_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_EDIT_CREATED_BY="Edit Created By" +COM_EHEALTH_PORTAL_EDIT_CREATED_BY_DESC="Allows users in this group to edit created by." +COM_EHEALTH_PORTAL_EDIT_CREATED_DATE="Edit Created Date" +COM_EHEALTH_PORTAL_EDIT_CREATED_DATE_DESC="Allows users in this group to edit created date." +COM_EHEALTH_PORTAL_EDIT_S="Edit %s" +COM_EHEALTH_PORTAL_EDIT_VERSIONS="Edit Version" +COM_EHEALTH_PORTAL_EDIT_VERSIONS_DESC="Allows users in this group to edit versions." +COM_EHEALTH_PORTAL_EXPORT_DATA="Export Data" +COM_EHEALTH_PORTAL_EXPORT_DATA_DESC="Allows users in this group to export data." +COM_EHEALTH_PORTAL_EXPORT_FAILED="Export Failed" +COM_EHEALTH_PORTAL_FAMILY_PLANNING="Family Planning" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS="Family Plannings" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_ACCESS="Family Plannings Access" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_ACCESS_DESC="Allows the users in this group to access access family plannings" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_BATCH_OPTIONS="Batch process the selected Family Plannings" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_BATCH_TIP="All changes will be applied to all selected Family Plannings" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_BATCH_USE="Family Plannings Batch Use" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch family plannings" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_DASHBOARD_ADD="Family Plannings Dashboard Add" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of family planning" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_DASHBOARD_LIST="Family Plannings Dashboard List" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of family planning" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_EDIT_DIAGNOSIS="Family Plannings Edit Diagnosis" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_EDIT_DIAGNOSIS_DESC="Allows the users in this group to edit diagnosis of family planning" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_EDIT_VERSION="Family Plannings Edit Version" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version family plannings" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_EXPORT="Family Plannings Export" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_EXPORT_DESC="Allows the users in this group to export export family plannings" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_IMPORT="Family Plannings Import" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_IMPORT_DESC="Allows the users in this group to import import family plannings" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_ARCHIVED="%s Family Plannings archived." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_ARCHIVED_1="%s Family Planning archived." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_CHECKED_IN_0="No Family Planning successfully checked in." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_CHECKED_IN_1="%d Family Planning successfully checked in." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_CHECKED_IN_MORE="%d Family Plannings successfully checked in." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_DELETED="%s Family Plannings deleted." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_DELETED_1="%s Family Planning deleted." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_FAILED_PUBLISHING="%s Family Plannings failed publishing." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_FAILED_PUBLISHING_1="%s Family Planning failed publishing." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_FEATURED="%s Family Plannings featured." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_FEATURED_1="%s Family Planning featured." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_PUBLISHED="%s Family Plannings published." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_PUBLISHED_1="%s Family Planning published." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_TRASHED="%s Family Plannings trashed." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_TRASHED_1="%s Family Planning trashed." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_UNFEATURED="%s Family Plannings unfeatured." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_UNFEATURED_1="%s Family Planning unfeatured." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_UNPUBLISHED="%s Family Plannings unpublished." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_N_ITEMS_UNPUBLISHED_1="%s Family Planning unpublished." +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_SUBMENU="Family Plannings Submenu" +COM_EHEALTH_PORTAL_FAMILY_PLANNINGS_SUBMENU_DESC="Allows the users in this group to submenu of family planning" +COM_EHEALTH_PORTAL_FAMILY_PLANNING_CREATED_BY_DESC="The user that created this Family Planning." +COM_EHEALTH_PORTAL_FAMILY_PLANNING_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_FAMILY_PLANNING_CREATED_DATE_DESC="The date this Family Planning was created." +COM_EHEALTH_PORTAL_FAMILY_PLANNING_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_FAMILY_PLANNING_DETAILS="Details" +COM_EHEALTH_PORTAL_FAMILY_PLANNING_DIAGNOSIS_DESCRIPTION="Select Planning Type" +COM_EHEALTH_PORTAL_FAMILY_PLANNING_DIAGNOSIS_LABEL="Select Family Planning Type" +COM_EHEALTH_PORTAL_FAMILY_PLANNING_EDIT="Editing the Family Planning" +COM_EHEALTH_PORTAL_FAMILY_PLANNING_ERROR_UNIQUE_ALIAS="Another Family Planning has the same alias." +COM_EHEALTH_PORTAL_FAMILY_PLANNING_ID="Id" +COM_EHEALTH_PORTAL_FAMILY_PLANNING_MODIFIED_BY_DESC="The last user that modified this Family Planning." +COM_EHEALTH_PORTAL_FAMILY_PLANNING_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_FAMILY_PLANNING_MODIFIED_DATE_DESC="The date this Family Planning was modified." +COM_EHEALTH_PORTAL_FAMILY_PLANNING_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_FAMILY_PLANNING_NEW="A New Family Planning" +COM_EHEALTH_PORTAL_FAMILY_PLANNING_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_FAMILY_PLANNING_PATIENT_LABEL="Patient Name" +COM_EHEALTH_PORTAL_FAMILY_PLANNING_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_FAMILY_PLANNING_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_FAMILY_PLANNING_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Family Planning to customise the alias." +COM_EHEALTH_PORTAL_FAMILY_PLANNING_STATUS="Status" +COM_EHEALTH_PORTAL_FAMILY_PLANNING_VERSION_DESC="A count of the number of times this Family Planning has been revised." +COM_EHEALTH_PORTAL_FAMILY_PLANNING_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_FILTER_ADMINISTRATION_PART_ASCENDING="Administration Part ascending" +COM_EHEALTH_PORTAL_FILTER_ADMINISTRATION_PART_DESCENDING="Administration Part descending" +COM_EHEALTH_PORTAL_FILTER_BPONEDIASTOLIC_ASCENDING="BP(1)-Diastolic ascending" +COM_EHEALTH_PORTAL_FILTER_BPONEDIASTOLIC_DESCENDING="BP(1)-Diastolic descending" +COM_EHEALTH_PORTAL_FILTER_BPONESYSTOLIC_ASCENDING="BP(1)-Systolic ascending" +COM_EHEALTH_PORTAL_FILTER_BPONESYSTOLIC_DESCENDING="BP(1)-Systolic descending" +COM_EHEALTH_PORTAL_FILTER_BPTWODIASTOLIC_ASCENDING="BP(2)-Diastolic ascending" +COM_EHEALTH_PORTAL_FILTER_BPTWODIASTOLIC_DESCENDING="BP(2)-Diastolic descending" +COM_EHEALTH_PORTAL_FILTER_BPTWOSYSTOLIC_ASCENDING="BP(2)-Systolic ascending" +COM_EHEALTH_PORTAL_FILTER_BPTWOSYSTOLIC_DESCENDING="BP(2)-Systolic descending" +COM_EHEALTH_PORTAL_FILTER_CLINIC_NAME_ASCENDING="Clinic Name ascending" +COM_EHEALTH_PORTAL_FILTER_CLINIC_NAME_DESCENDING="Clinic Name descending" +COM_EHEALTH_PORTAL_FILTER_DESCRIPTION_ASCENDING="Description ascending" +COM_EHEALTH_PORTAL_FILTER_DESCRIPTION_DESCENDING="Description descending" +COM_EHEALTH_PORTAL_FILTER_HEIGHT_M_ASCENDING="Height (m) ascending" +COM_EHEALTH_PORTAL_FILTER_HEIGHT_M_DESCENDING="Height (m) descending" +COM_EHEALTH_PORTAL_FILTER_NAME_ASCENDING="Name ascending" +COM_EHEALTH_PORTAL_FILTER_NAME_DESCENDING="Name descending" +COM_EHEALTH_PORTAL_FILTER_ONEST_TEMP_READING_C_ASCENDING="1st Temp. Reading (*C): ascending" +COM_EHEALTH_PORTAL_FILTER_ONEST_TEMP_READING_C_DESCENDING="1st Temp. Reading (*C): descending" +COM_EHEALTH_PORTAL_FILTER_PATIENT_NAME_ASCENDING="Patient Name ascending" +COM_EHEALTH_PORTAL_FILTER_PATIENT_NAME_DESCENDING="Patient Name descending" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED="Status" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_ADMINISTRATION_PARTS="Status options for administration parts" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_ANTENATAL_CARES="Status options for antenatal cares" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_BREAST_CANCERS="Status options for breast cancers" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_CERVICAL_CANCERS="Status options for cervical cancers" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_CLINICS="Status options for clinics" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_COUNSELING_TYPES="Status options for counseling types" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_DIAGNOSIS_TYPES="Status options for diagnosis types" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_FAMILY_PLANNINGS="Status options for family plannings" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_FOETAL_ENGAGEMENTS="Status options for foetal engagements" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_FOETAL_LIES="Status options for foetal lies" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_FOETAL_PRESENTATIONS="Status options for foetal presentations" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_GENERAL_MEDICAL_CHECK_UPS="Status options for general medical check ups" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_HEALTH_EDUCATIONS="Status options for health educations" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_HEALTH_EDUCATION_TOPICS="Status options for health education topics" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_HIV_COUNSELINGS_AND_TESTINGS="Status options for hiv counselings and testings" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_IMMUNISATIONS="Status options for immunisations" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_IMMUNISATION_TYPES="Status options for immunisation types" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_IMMUNISATION_VACCINE_TYPES="Status options for immunisation vaccine types" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_MEDICATIONS="Status options for medications" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_NONPAY_REASONS="Status options for nonpay reasons" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_PAYMENTS="Status options for payments" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_PAYMENT_AMOUNTS="Status options for payment amounts" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_PAYMENT_TYPES="Status options for payment types" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_PLANNING_TYPES="Status options for planning types" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_PROSTATE_AND_TESTICULAR_CANCERS="Status options for prostate and testicular cancers" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_REFERRALS="Status options for referrals" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_SITES="Status options for sites" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_STRENGTHS="Status options for strengths" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_TESTING_REASONS="Status options for testing reasons" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_TESTS="Status options for tests" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_TUBERCULOSES="Status options for tuberculoses" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_UNITS="Status options for units" +COM_EHEALTH_PORTAL_FILTER_PUBLISHED_VMMCS="Status options for vmmcs" +COM_EHEALTH_PORTAL_FILTER_PULSE_ASCENDING="Pulse ascending" +COM_EHEALTH_PORTAL_FILTER_PULSE_DESCENDING="Pulse descending" +COM_EHEALTH_PORTAL_FILTER_REFERRED_TO_ASCENDING="Referred to ascending" +COM_EHEALTH_PORTAL_FILTER_REFERRED_TO_DESCENDING="Referred to descending" +COM_EHEALTH_PORTAL_FILTER_SEARCH="Searchpayments" +COM_EHEALTH_PORTAL_FILTER_SEARCH_ADMINISTRATION_PARTS="Search the administration part items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_ANTENATAL_CARES="Search the antenatal care items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_BREAST_CANCERS="Search the breast cancer items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_CERVICAL_CANCERS="Search the cervical cancer items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_CLINICS="Search the clinic items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_COUNSELING_TYPES="Search the counseling type items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_DIAGNOSIS_TYPES="Search the diagnosis type items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_FAMILY_PLANNINGS="Search the family planning items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_FOETAL_ENGAGEMENTS="Search the foetal engagement items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_FOETAL_LIES="Search the foetal lie items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_FOETAL_PRESENTATIONS="Search the foetal presentation items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_GENERAL_MEDICAL_CHECK_UPS="Search the general medical check up items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_HEALTH_EDUCATIONS="Search the health education items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_HEALTH_EDUCATION_TOPICS="Search the health education topic items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_HIV_COUNSELINGS_AND_TESTINGS="Search the hiv counseling and testing items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_IMMUNISATIONS="Search the immunisation items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_IMMUNISATION_TYPES="Search the immunisation type items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_IMMUNISATION_VACCINE_TYPES="Search the immunisation vaccine type items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_MEDICATIONS="Search the medication items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_NONPAY_REASONS="Search the nonpay reason items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_PAYMENTS="Search the payment items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_PAYMENT_AMOUNTS="Search the payment amount items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_PAYMENT_TYPES="Search the payment type items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_PLANNING_TYPES="Search the planning type items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_PROSTATE_AND_TESTICULAR_CANCERS="Search the prostate and testicular cancer items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_REFERRALS="Search the referral items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_SITES="Search the site items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_STRENGTHS="Search the strength items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_TESTING_REASONS="Search the testing reason items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_TESTS="Search the test items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_TUBERCULOSES="Search the tuberculosis items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_UNITS="Search the unit items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SEARCH_VMMCS="Search the vmmc items. Prefix with ID: to search for an item by ID." +COM_EHEALTH_PORTAL_FILTER_SELECT_ACCESS="Select Access" +COM_EHEALTH_PORTAL_FILTER_SELECT_ADMINISTRATION_PART="Select Administration Part" +COM_EHEALTH_PORTAL_FILTER_SELECT_AMOUNT_N="Select Amount (N$):" +COM_EHEALTH_PORTAL_FILTER_SELECT_FAMILY_PLANNING_TYPE_ASCENDING="Select Family Planning Type ascending" +COM_EHEALTH_PORTAL_FILTER_SELECT_FAMILY_PLANNING_TYPE_DESCENDING="Select Family Planning Type descending" +COM_EHEALTH_PORTAL_FILTER_SELECT_FOETAL_POLESLIE="Select Foetal poles/lie" +COM_EHEALTH_PORTAL_FILTER_SELECT_PATIENT_NAME="Select Patient Name" +COM_EHEALTH_PORTAL_FILTER_SELECT_PAYMENT_CATEGORY="Select Payment Category" +COM_EHEALTH_PORTAL_FILTER_SELECT_REFERRED_TO="Select Referred to" +COM_EHEALTH_PORTAL_FILTER_SELECT_TOPIC_ASCENDING="Select Topic: ascending" +COM_EHEALTH_PORTAL_FILTER_SELECT_TOPIC_DESCENDING="Select Topic: descending" +COM_EHEALTH_PORTAL_FILTER_SELECT_TYPE="Select Type" +COM_EHEALTH_PORTAL_FILTER_SITE_NAME_ASCENDING="Site Name ascending" +COM_EHEALTH_PORTAL_FILTER_SITE_NAME_DESCENDING="Site Name descending" +COM_EHEALTH_PORTAL_FILTER_SITE_REGION_ASCENDING="Site Region ascending" +COM_EHEALTH_PORTAL_FILTER_SITE_REGION_DESCENDING="Site Region descending" +COM_EHEALTH_PORTAL_FILTER_TWOND_TEMP_READING_C_ASCENDING="2nd Temp. Reading (*C): ascending" +COM_EHEALTH_PORTAL_FILTER_TWOND_TEMP_READING_C_DESCENDING="2nd Temp. Reading (*C): descending" +COM_EHEALTH_PORTAL_FILTER_WEIGHT_KG_ASCENDING="Weight (kg) ascending" +COM_EHEALTH_PORTAL_FILTER_WEIGHT_KG_DESCENDING="Weight (kg) descending" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT="Foetal Engagement" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS="Foetal Engagements" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_ACCESS="Foetal Engagements Access" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_ACCESS_DESC="Allows the users in this group to access access foetal engagements" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_BATCH_OPTIONS="Batch process the selected Foetal Engagements" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_BATCH_TIP="All changes will be applied to all selected Foetal Engagements" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_BATCH_USE="Foetal Engagements Batch Use" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch foetal engagements" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_EDIT_DESCRIPTION="Foetal Engagements Edit Description" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of foetal engagement" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_EDIT_NAME="Foetal Engagements Edit Name" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_EDIT_NAME_DESC="Allows the users in this group to edit name of foetal engagement" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_EDIT_VERSION="Foetal Engagements Edit Version" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version foetal engagements" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_EXPORT="Foetal Engagements Export" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_EXPORT_DESC="Allows the users in this group to export export foetal engagements" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_IMPORT="Foetal Engagements Import" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_IMPORT_DESC="Allows the users in this group to import import foetal engagements" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_ARCHIVED="%s Foetal Engagements archived." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_ARCHIVED_1="%s Foetal Engagement archived." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_CHECKED_IN_0="No Foetal Engagement successfully checked in." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_CHECKED_IN_1="%d Foetal Engagement successfully checked in." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_CHECKED_IN_MORE="%d Foetal Engagements successfully checked in." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_DELETED="%s Foetal Engagements deleted." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_DELETED_1="%s Foetal Engagement deleted." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_FAILED_PUBLISHING="%s Foetal Engagements failed publishing." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_FAILED_PUBLISHING_1="%s Foetal Engagement failed publishing." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_FEATURED="%s Foetal Engagements featured." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_FEATURED_1="%s Foetal Engagement featured." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_PUBLISHED="%s Foetal Engagements published." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_PUBLISHED_1="%s Foetal Engagement published." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_TRASHED="%s Foetal Engagements trashed." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_TRASHED_1="%s Foetal Engagement trashed." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_UNFEATURED="%s Foetal Engagements unfeatured." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_UNFEATURED_1="%s Foetal Engagement unfeatured." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_UNPUBLISHED="%s Foetal Engagements unpublished." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENTS_N_ITEMS_UNPUBLISHED_1="%s Foetal Engagement unpublished." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_CREATED_BY_DESC="The user that created this Foetal Engagement." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_CREATED_DATE_DESC="The date this Foetal Engagement was created." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_DETAILS="Details" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_EDIT="Editing the Foetal Engagement" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_ERROR_UNIQUE_ALIAS="Another Foetal Engagement has the same alias." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_ID="Id" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_MODIFIED_BY_DESC="The last user that modified this Foetal Engagement." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_MODIFIED_DATE_DESC="The date this Foetal Engagement was modified." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_NAME_DESCRIPTION="Enter Name Here" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_NAME_HINT="Name here" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_NAME_LABEL="Name" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_NAME_MESSAGE="Error! Please add name here." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_NEW="A New Foetal Engagement" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Foetal Engagement to customise the alias." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_STATUS="Status" +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_VERSION_DESC="A count of the number of times this Foetal Engagement has been revised." +COM_EHEALTH_PORTAL_FOETAL_ENGAGEMENT_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_FOETAL_LIE="Foetal Lie" +COM_EHEALTH_PORTAL_FOETAL_LIES="Foetal Lies" +COM_EHEALTH_PORTAL_FOETAL_LIES_ACCESS="Foetal Lies Access" +COM_EHEALTH_PORTAL_FOETAL_LIES_ACCESS_DESC="Allows the users in this group to access access foetal lies" +COM_EHEALTH_PORTAL_FOETAL_LIES_BATCH_OPTIONS="Batch process the selected Foetal Lies" +COM_EHEALTH_PORTAL_FOETAL_LIES_BATCH_TIP="All changes will be applied to all selected Foetal Lies" +COM_EHEALTH_PORTAL_FOETAL_LIES_BATCH_USE="Foetal Lies Batch Use" +COM_EHEALTH_PORTAL_FOETAL_LIES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch foetal lies" +COM_EHEALTH_PORTAL_FOETAL_LIES_EDIT_DESCRIPTION="Foetal Lies Edit Description" +COM_EHEALTH_PORTAL_FOETAL_LIES_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of foetal lie" +COM_EHEALTH_PORTAL_FOETAL_LIES_EDIT_NAME="Foetal Lies Edit Name" +COM_EHEALTH_PORTAL_FOETAL_LIES_EDIT_NAME_DESC="Allows the users in this group to edit name of foetal lie" +COM_EHEALTH_PORTAL_FOETAL_LIES_EDIT_VERSION="Foetal Lies Edit Version" +COM_EHEALTH_PORTAL_FOETAL_LIES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version foetal lies" +COM_EHEALTH_PORTAL_FOETAL_LIES_EXPORT="Foetal Lies Export" +COM_EHEALTH_PORTAL_FOETAL_LIES_EXPORT_DESC="Allows the users in this group to export export foetal lies" +COM_EHEALTH_PORTAL_FOETAL_LIES_IMPORT="Foetal Lies Import" +COM_EHEALTH_PORTAL_FOETAL_LIES_IMPORT_DESC="Allows the users in this group to import import foetal lies" +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_ARCHIVED="%s Foetal Lies archived." +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_ARCHIVED_1="%s Foetal Lie archived." +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_CHECKED_IN_0="No Foetal Lie successfully checked in." +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_CHECKED_IN_1="%d Foetal Lie successfully checked in." +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_CHECKED_IN_MORE="%d Foetal Lies successfully checked in." +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_DELETED="%s Foetal Lies deleted." +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_DELETED_1="%s Foetal Lie deleted." +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_FAILED_PUBLISHING="%s Foetal Lies failed publishing." +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_FAILED_PUBLISHING_1="%s Foetal Lie failed publishing." +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_FEATURED="%s Foetal Lies featured." +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_FEATURED_1="%s Foetal Lie featured." +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_PUBLISHED="%s Foetal Lies published." +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_PUBLISHED_1="%s Foetal Lie published." +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_TRASHED="%s Foetal Lies trashed." +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_TRASHED_1="%s Foetal Lie trashed." +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_UNFEATURED="%s Foetal Lies unfeatured." +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_UNFEATURED_1="%s Foetal Lie unfeatured." +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_UNPUBLISHED="%s Foetal Lies unpublished." +COM_EHEALTH_PORTAL_FOETAL_LIES_N_ITEMS_UNPUBLISHED_1="%s Foetal Lie unpublished." +COM_EHEALTH_PORTAL_FOETAL_LIE_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_FOETAL_LIE_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_FOETAL_LIE_CREATED_BY_DESC="The user that created this Foetal Lie." +COM_EHEALTH_PORTAL_FOETAL_LIE_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_FOETAL_LIE_CREATED_DATE_DESC="The date this Foetal Lie was created." +COM_EHEALTH_PORTAL_FOETAL_LIE_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_FOETAL_LIE_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_FOETAL_LIE_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_FOETAL_LIE_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_FOETAL_LIE_DETAILS="Details" +COM_EHEALTH_PORTAL_FOETAL_LIE_EDIT="Editing the Foetal Lie" +COM_EHEALTH_PORTAL_FOETAL_LIE_ERROR_UNIQUE_ALIAS="Another Foetal Lie has the same alias." +COM_EHEALTH_PORTAL_FOETAL_LIE_ID="Id" +COM_EHEALTH_PORTAL_FOETAL_LIE_MODIFIED_BY_DESC="The last user that modified this Foetal Lie." +COM_EHEALTH_PORTAL_FOETAL_LIE_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_FOETAL_LIE_MODIFIED_DATE_DESC="The date this Foetal Lie was modified." +COM_EHEALTH_PORTAL_FOETAL_LIE_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_FOETAL_LIE_NAME_DESCRIPTION="Enter Name Here" +COM_EHEALTH_PORTAL_FOETAL_LIE_NAME_HINT="Name here" +COM_EHEALTH_PORTAL_FOETAL_LIE_NAME_LABEL="Name" +COM_EHEALTH_PORTAL_FOETAL_LIE_NAME_MESSAGE="Error! Please add name here." +COM_EHEALTH_PORTAL_FOETAL_LIE_NEW="A New Foetal Lie" +COM_EHEALTH_PORTAL_FOETAL_LIE_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_FOETAL_LIE_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_FOETAL_LIE_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_FOETAL_LIE_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Foetal Lie to customise the alias." +COM_EHEALTH_PORTAL_FOETAL_LIE_STATUS="Status" +COM_EHEALTH_PORTAL_FOETAL_LIE_VERSION_DESC="A count of the number of times this Foetal Lie has been revised." +COM_EHEALTH_PORTAL_FOETAL_LIE_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION="Foetal Presentation" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS="Foetal Presentations" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_ACCESS="Foetal Presentations Access" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_ACCESS_DESC="Allows the users in this group to access access foetal presentations" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_BATCH_OPTIONS="Batch process the selected Foetal Presentations" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_BATCH_TIP="All changes will be applied to all selected Foetal Presentations" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_BATCH_USE="Foetal Presentations Batch Use" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch foetal presentations" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_EDIT_DESCRIPTION="Foetal Presentations Edit Description" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of foetal presentation" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_EDIT_NAME="Foetal Presentations Edit Name" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_EDIT_NAME_DESC="Allows the users in this group to edit name of foetal presentation" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_EDIT_VERSION="Foetal Presentations Edit Version" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version foetal presentations" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_EXPORT="Foetal Presentations Export" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_EXPORT_DESC="Allows the users in this group to export export foetal presentations" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_IMPORT="Foetal Presentations Import" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_IMPORT_DESC="Allows the users in this group to import import foetal presentations" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_ARCHIVED="%s Foetal Presentations archived." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_ARCHIVED_1="%s Foetal Presentation archived." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_CHECKED_IN_0="No Foetal Presentation successfully checked in." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_CHECKED_IN_1="%d Foetal Presentation successfully checked in." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_CHECKED_IN_MORE="%d Foetal Presentations successfully checked in." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_DELETED="%s Foetal Presentations deleted." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_DELETED_1="%s Foetal Presentation deleted." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_FAILED_PUBLISHING="%s Foetal Presentations failed publishing." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_FAILED_PUBLISHING_1="%s Foetal Presentation failed publishing." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_FEATURED="%s Foetal Presentations featured." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_FEATURED_1="%s Foetal Presentation featured." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_PUBLISHED="%s Foetal Presentations published." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_PUBLISHED_1="%s Foetal Presentation published." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_TRASHED="%s Foetal Presentations trashed." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_TRASHED_1="%s Foetal Presentation trashed." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_UNFEATURED="%s Foetal Presentations unfeatured." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_UNFEATURED_1="%s Foetal Presentation unfeatured." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_UNPUBLISHED="%s Foetal Presentations unpublished." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATIONS_N_ITEMS_UNPUBLISHED_1="%s Foetal Presentation unpublished." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_CREATED_BY_DESC="The user that created this Foetal Presentation." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_CREATED_DATE_DESC="The date this Foetal Presentation was created." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_DETAILS="Details" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_EDIT="Editing the Foetal Presentation" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_ERROR_UNIQUE_ALIAS="Another Foetal Presentation has the same alias." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_ID="Id" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_MODIFIED_BY_DESC="The last user that modified this Foetal Presentation." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_MODIFIED_DATE_DESC="The date this Foetal Presentation was modified." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_NAME_DESCRIPTION="Enter Name Here" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_NAME_HINT="Name here" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_NAME_LABEL="Name" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_NAME_MESSAGE="Error! Please add name here." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_NEW="A New Foetal Presentation" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Foetal Presentation to customise the alias." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_STATUS="Status" +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_VERSION_DESC="A count of the number of times this Foetal Presentation has been revised." +COM_EHEALTH_PORTAL_FOETAL_PRESENTATION_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP="General Medical Check Up" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS="General Medical Check Ups" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_ACCESS="General Medical Check Ups Access" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_ACCESS_DESC="Allows the users in this group to access access general medical check ups" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_BATCH_OPTIONS="Batch process the selected General Medical Check Ups" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_BATCH_TIP="All changes will be applied to all selected General Medical Check Ups" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_BATCH_USE="General Medical Check Ups Batch Use" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch general medical check ups" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_DASHBOARD_ADD="General Medical Check Ups Dashboard Add" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of general medical check up" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_DASHBOARD_LIST="General Medical Check Ups Dashboard List" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of general medical check up" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_EDIT_PATIENT="General Medical Check Ups Edit Patient" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_EDIT_PATIENT_DESC="Allows the users in this group to edit patient of general medical check up" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_EDIT_VERSION="General Medical Check Ups Edit Version" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version general medical check ups" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_EXPORT="General Medical Check Ups Export" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_EXPORT_DESC="Allows the users in this group to export export general medical check ups" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_IMPORT="General Medical Check Ups Import" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_IMPORT_DESC="Allows the users in this group to import import general medical check ups" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_ARCHIVED="%s General Medical Check Ups archived." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_ARCHIVED_1="%s General Medical Check Up archived." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_CHECKED_IN_0="No General Medical Check Up successfully checked in." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_CHECKED_IN_1="%d General Medical Check Up successfully checked in." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_CHECKED_IN_MORE="%d General Medical Check Ups successfully checked in." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_DELETED="%s General Medical Check Ups deleted." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_DELETED_1="%s General Medical Check Up deleted." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_FAILED_PUBLISHING="%s General Medical Check Ups failed publishing." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_FAILED_PUBLISHING_1="%s General Medical Check Up failed publishing." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_FEATURED="%s General Medical Check Ups featured." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_FEATURED_1="%s General Medical Check Up featured." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_PUBLISHED="%s General Medical Check Ups published." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_PUBLISHED_1="%s General Medical Check Up published." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_TRASHED="%s General Medical Check Ups trashed." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_TRASHED_1="%s General Medical Check Up trashed." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_UNFEATURED="%s General Medical Check Ups unfeatured." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_UNFEATURED_1="%s General Medical Check Up unfeatured." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_UNPUBLISHED="%s General Medical Check Ups unpublished." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_N_ITEMS_UNPUBLISHED_1="%s General Medical Check Up unpublished." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_SUBMENU="General Medical Check Ups Submenu" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UPS_SUBMENU_DESC="Allows the users in this group to submenu of general medical check up" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_BMI_DESCRIPTION="Enter pulse in beats per minute" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_BMI_LABEL="BMI" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_BP_DIASTOLIC_ONE_DESCRIPTION="Enter BP(1)-Diastolic" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_BP_DIASTOLIC_ONE_LABEL="BP(1)-Diastolic" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_BP_DIASTOLIC_TWO_DESCRIPTION="Enter BP(2)-Diastolic" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_BP_DIASTOLIC_TWO_LABEL="BP(2)-Diastolic" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_BP_SYSTOLIC_ONE_DESCRIPTION="Enter BP(1)-Systolic" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_BP_SYSTOLIC_ONE_LABEL="BP(1)-Systolic" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_BP_SYSTOLIC_TWO_DESCRIPTION="Enter BP(2)-Systolic" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_BP_SYSTOLIC_TWO_LABEL="BP(2)-Systolic" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_CHRONIC_MEDICATION_DESCRIPTION="Chronic Medication" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_CHRONIC_MEDICATION_LABEL="Chronic Medication?" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_COMPLAINT_DESCRIPTION="Add Complaint Here" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_COMPLAINT_HINT="Add Complaint Here" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_COMPLAINT_LABEL="Complaint" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_CREATED_BY_DESC="The user that created this General Medical Check Up." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_CREATED_DATE_DESC="The date this General Medical Check Up was created." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_DIAGNOSIS="Diagnosis" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_DIAGNOSIS_DESCRIPTION="Select Diagnosis" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_DIAGNOSIS_LABEL="Select Diagnosis" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_DISPENSING="Dispensing" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_DISPENSING_LABEL="Dispensing" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_EDIT="Editing the General Medical Check Up" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_ERROR_UNIQUE_ALIAS="Another General Medical Check Up has the same alias." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_HEIGHT_LABEL="Height (m)" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_ID="Id" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_INSTRUCTIONS_DESCRIPTION="Add Instructions Here" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_INSTRUCTIONS_HINT="Add Instructions Here" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_INSTRUCTIONS_LABEL="Instructions" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_INVESTIGATIONS_DESCRIPTION="Add Investigation Here" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_INVESTIGATIONS_HINT="Add Investigation Here" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_INVESTIGATIONS_LABEL="Investigations" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_MEDICATION="Medication" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_MEDICATION_DESCRIPTION="Select Medication" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_MEDICATION_LABEL="Select Medication" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_MODIFIED_BY_DESC="The last user that modified this General Medical Check Up." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_MODIFIED_DATE_DESC="The date this General Medical Check Up was modified." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_NEW="A New General Medical Check Up" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_NOTES_DESCRIPTION="Add Notes Here" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_NOTES_HINT="Add notes here" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_NOTES_LABEL="Notes" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_PATIENT_LABEL="Patient Name" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_PULSE_DESCRIPTION="Enter pulse in beats per minute" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_PULSE_LABEL="Pulse" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_QUANTITY_DESCRIPTION="Enter quantity" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_QUANTITY_LABEL="Quantity" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_REASON_DESCRIPTION="Add Reason Here" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_REASON_HINT="Add Reason Here" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_REASON_LABEL="Reason" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_REFERRALS="Referrals" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_REFERRAL_LABEL="Referred to" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the General Medical Check Up to customise the alias." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_STATUS="Status" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_STRENGTH="Strength" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_STRENGTH_DESCRIPTION="Select Strength" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_STRENGTH_LABEL="Select Strength" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_TEMP_ONE_DESCRIPTION="1st temperature reading in degree celsius" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_TEMP_ONE_LABEL="1st Temp. Reading (*C):" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_TEMP_TWO_DESCRIPTION="2nd temperature reading in degree celsius." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_TEMP_TWO_LABEL="2nd Temp. Reading (*C):" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_UNIT="Unit" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_UNIT_DESCRIPTION="Select Units" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_UNIT_LABEL="Select Unit" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_VERSION_DESC="A count of the number of times this General Medical Check Up has been revised." +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_VITAL_SIGNS="Vital Signs" +COM_EHEALTH_PORTAL_GENERAL_MEDICAL_CHECK_UP_WEIGHT_LABEL="Weight (kg)" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION="Health Education" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS="Health Educations" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_ACCESS="Health Educations Access" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_ACCESS_DESC="Allows the users in this group to access access health educations" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_BATCH_OPTIONS="Batch process the selected Health Educations" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_BATCH_TIP="All changes will be applied to all selected Health Educations" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_BATCH_USE="Health Educations Batch Use" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch health educations" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_DASHBOARD_ADD="Health Educations Dashboard Add" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of health education" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_DASHBOARD_LIST="Health Educations Dashboard List" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of health education" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_EDIT_HEALTH_EDUCATION_TOPIC="Health Educations Edit Health Education Topic" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_EDIT_HEALTH_EDUCATION_TOPIC_DESC="Allows the users in this group to edit health education topic of health education" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_EDIT_VERSION="Health Educations Edit Version" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version health educations" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_EXPORT="Health Educations Export" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_EXPORT_DESC="Allows the users in this group to export export health educations" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_IMPORT="Health Educations Import" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_IMPORT_DESC="Allows the users in this group to import import health educations" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_ARCHIVED="%s Health Educations archived." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_ARCHIVED_1="%s Health Education archived." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_CHECKED_IN_0="No Health Education successfully checked in." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_CHECKED_IN_1="%d Health Education successfully checked in." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_CHECKED_IN_MORE="%d Health Educations successfully checked in." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_DELETED="%s Health Educations deleted." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_DELETED_1="%s Health Education deleted." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_FAILED_PUBLISHING="%s Health Educations failed publishing." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_FAILED_PUBLISHING_1="%s Health Education failed publishing." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_FEATURED="%s Health Educations featured." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_FEATURED_1="%s Health Education featured." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_PUBLISHED="%s Health Educations published." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_PUBLISHED_1="%s Health Education published." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_TRASHED="%s Health Educations trashed." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_TRASHED_1="%s Health Education trashed." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_UNFEATURED="%s Health Educations unfeatured." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_UNFEATURED_1="%s Health Education unfeatured." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_UNPUBLISHED="%s Health Educations unpublished." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_N_ITEMS_UNPUBLISHED_1="%s Health Education unpublished." +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_SUBMENU="Health Educations Submenu" +COM_EHEALTH_PORTAL_HEALTH_EDUCATIONS_SUBMENU_DESC="Allows the users in this group to submenu of health education" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_CREATED_BY_DESC="The user that created this Health Education." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_CREATED_DATE_DESC="The date this Health Education was created." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_DETAILS="Details" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_EDIT="Editing the Health Education" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_EDUCATION_TYPE_DESCRIPTION="Health education type" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_EDUCATION_TYPE_LABEL="Type" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_ERROR_UNIQUE_ALIAS="Another Health Education has the same alias." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_GROUP="Group" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_HEALTH_EDUCATION_TOPIC_DESCRIPTION="Select Health Education Topic" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_HEALTH_EDUCATION_TOPIC_LABEL="Select Topic:" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_ID="Id" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_INDIVIDUAL="Individual" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_MODIFIED_BY_DESC="The last user that modified this Health Education." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_MODIFIED_DATE_DESC="The date this Health Education was modified." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_NEW="A New Health Education" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_PATIENT_LABEL="Patient Name" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Health Education to customise the alias." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_STATUS="Status" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC="Health Education Topic" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS="Health Education Topics" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_ACCESS="Health Education Topics Access" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_ACCESS_DESC="Allows the users in this group to access access health education topics" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_BATCH_OPTIONS="Batch process the selected Health Education Topics" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_BATCH_TIP="All changes will be applied to all selected Health Education Topics" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_BATCH_USE="Health Education Topics Batch Use" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch health education topics" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_EDIT_DESCRIPTION="Health Education Topics Edit Description" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of health education topic" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_EDIT_NAME="Health Education Topics Edit Name" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_EDIT_NAME_DESC="Allows the users in this group to edit name of health education topic" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_EDIT_VERSION="Health Education Topics Edit Version" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version health education topics" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_EXPORT="Health Education Topics Export" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_EXPORT_DESC="Allows the users in this group to export export health education topics" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_IMPORT="Health Education Topics Import" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_IMPORT_DESC="Allows the users in this group to import import health education topics" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_ARCHIVED="%s Health Education Topics archived." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_ARCHIVED_1="%s Health Education Topic archived." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_CHECKED_IN_0="No Health Education Topic successfully checked in." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_CHECKED_IN_1="%d Health Education Topic successfully checked in." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_CHECKED_IN_MORE="%d Health Education Topics successfully checked in." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_DELETED="%s Health Education Topics deleted." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_DELETED_1="%s Health Education Topic deleted." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_FAILED_PUBLISHING="%s Health Education Topics failed publishing." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_FAILED_PUBLISHING_1="%s Health Education Topic failed publishing." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_FEATURED="%s Health Education Topics featured." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_FEATURED_1="%s Health Education Topic featured." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_PUBLISHED="%s Health Education Topics published." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_PUBLISHED_1="%s Health Education Topic published." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_TRASHED="%s Health Education Topics trashed." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_TRASHED_1="%s Health Education Topic trashed." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_UNFEATURED="%s Health Education Topics unfeatured." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_UNFEATURED_1="%s Health Education Topic unfeatured." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_UNPUBLISHED="%s Health Education Topics unpublished." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPICS_N_ITEMS_UNPUBLISHED_1="%s Health Education Topic unpublished." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_CREATED_BY_DESC="The user that created this Health Education Topic." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_CREATED_DATE_DESC="The date this Health Education Topic was created." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_DETAILS="Details" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_EDIT="Editing the Health Education Topic" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_ERROR_UNIQUE_ALIAS="Another Health Education Topic has the same alias." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_ID="Id" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_MODIFIED_BY_DESC="The last user that modified this Health Education Topic." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_MODIFIED_DATE_DESC="The date this Health Education Topic was modified." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_NAME_DESCRIPTION="Enter Name Here" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_NAME_HINT="Name here" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_NAME_LABEL="Name" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_NAME_MESSAGE="Error! Please add name here." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_NEW="A New Health Education Topic" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Health Education Topic to customise the alias." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_STATUS="Status" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_VERSION_DESC="A count of the number of times this Health Education Topic has been revised." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_TOPIC_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_VERSION_DESC="A count of the number of times this Health Education has been revised." +COM_EHEALTH_PORTAL_HEALTH_EDUCATION_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_HELP_MANAGER="Help" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS="HIV Counselings and Testings" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_ACCESS="Hiv Counselings And Testings Access" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_ACCESS_DESC="Allows the users in this group to access access hiv counselings and testings" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_BATCH_OPTIONS="Batch process the selected HIV Counselings and Testings" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_BATCH_TIP="All changes will be applied to all selected HIV Counselings and Testings" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_BATCH_USE="Hiv Counselings And Testings Batch Use" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch hiv counselings and testings" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_DASHBOARD_ADD="Hiv Counselings And Testings Dashboard Add" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of hiv counseling and testing" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_DASHBOARD_LIST="Hiv Counselings And Testings Dashboard List" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of hiv counseling and testing" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_EDIT_VERSION="Hiv Counselings And Testings Edit Version" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version hiv counselings and testings" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_EXPORT="Hiv Counselings And Testings Export" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_EXPORT_DESC="Allows the users in this group to export export hiv counselings and testings" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_IMPORT="Hiv Counselings And Testings Import" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_IMPORT_DESC="Allows the users in this group to import import hiv counselings and testings" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_ARCHIVED="%s HIV Counselings and Testings archived." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_ARCHIVED_1="%s HIV Counseling and Testing archived." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_CHECKED_IN_0="No HIV Counseling and Testing successfully checked in." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_CHECKED_IN_1="%d HIV Counseling and Testing successfully checked in." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_CHECKED_IN_MORE="%d HIV Counselings and Testings successfully checked in." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_DELETED="%s HIV Counselings and Testings deleted." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_DELETED_1="%s HIV Counseling and Testing deleted." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_FAILED_PUBLISHING="%s HIV Counselings and Testings failed publishing." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_FAILED_PUBLISHING_1="%s HIV Counseling and Testing failed publishing." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_FEATURED="%s HIV Counselings and Testings featured." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_FEATURED_1="%s HIV Counseling and Testing featured." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_PUBLISHED="%s HIV Counselings and Testings published." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_PUBLISHED_1="%s HIV Counseling and Testing published." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_TRASHED="%s HIV Counselings and Testings trashed." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_TRASHED_1="%s HIV Counseling and Testing trashed." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_UNFEATURED="%s HIV Counselings and Testings unfeatured." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_UNFEATURED_1="%s HIV Counseling and Testing unfeatured." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_UNPUBLISHED="%s HIV Counselings and Testings unpublished." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_N_ITEMS_UNPUBLISHED_1="%s HIV Counseling and Testing unpublished." +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_SUBMENU="Hiv Counselings And Testings Submenu" +COM_EHEALTH_PORTAL_HIV_COUNSELINGS_AND_TESTINGS_SUBMENU_DESC="Allows the users in this group to submenu of hiv counseling and testing" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING="HIV Counseling and Testing" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_COUNSELING_TYPE_LABEL="Type of counseling?" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_COUPLE="Couple" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_CREATED_BY_DESC="The user that created this HIV Counseling and Testing." +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_CREATED_DATE_DESC="The date this HIV Counseling and Testing was created." +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_DETAILS="Details" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_EDIT="Editing the HIV Counseling and Testing" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_EQA_LABEL="EQA" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_ERROR_UNIQUE_ALIAS="Another HIV Counseling and Testing has the same alias." +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_FINAL_TEST_RESULT_DESCRIPTION="Final test result" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_FINAL_TEST_RESULT_LABEL="Final test result" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_ID="Id" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_INCONCLUSIVE="Inconclusive" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_INDIVIDUAL="Individual" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_LAST_TEST_DATE_DESCRIPTION="When last did you test" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_LAST_TEST_DATE_LABEL="When last did you test" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_MINOR="Minor" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_MODIFIED_BY_DESC="The last user that modified this HIV Counseling and Testing." +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_MODIFIED_DATE_DESC="The date this HIV Counseling and Testing was modified." +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_NA="N/A" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_NEGATIVE="Negative" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_NEVER="Never" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_NEW="A New HIV Counseling and Testing" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_NO="No" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_ONESIX_MONTHS="1-6 Months" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_PATIENT_LABEL="Patient Name" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_POSITIVE="Positive" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_PREV_TEST_RESULT_DESCRIPTION="Previous test results" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_PREV_TEST_RESULT_LABEL="Previous test results" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_REASON_DESCRIPTION="Add Reason Here" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_REASON_HINT="Add Reason Here" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_REASON_LABEL="Reason" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_REFERRALS="Referrals" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_REFERRAL_LABEL="Referred to" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the HIV Counseling and Testing to customise the alias." +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_SEVENTWELVE_MONTHS="7-12 Months" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_STATUS="Status" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_TESTING_REASON_DESCRIPTION="Select reason for testing" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_TESTING_REASON_LABEL="Reason for testing" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_TEST_RESULT_ONE_DESCRIPTION="Test result #1" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_TEST_RESULT_ONE_LABEL="Test result #1" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_TEST_RESULT_TWO_DESCRIPTION="Test result #2" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_TEST_RESULT_TWO_LABEL="Test result #2" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_UNKNOWN="Unknown" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_VERSION_DESC="A count of the number of times this HIV Counseling and Testing has been revised." +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING_YES="Yes" +COM_EHEALTH_PORTAL_HIV_COUNSELING_AND_TESTING__YEAR="> Year" +COM_EHEALTH_PORTAL_IMMUNISATION="Immunisation" +COM_EHEALTH_PORTAL_IMMUNISATIONS="Immunisations" +COM_EHEALTH_PORTAL_IMMUNISATIONS_ACCESS="Immunisations Access" +COM_EHEALTH_PORTAL_IMMUNISATIONS_ACCESS_DESC="Allows the users in this group to access access immunisations" +COM_EHEALTH_PORTAL_IMMUNISATIONS_BATCH_OPTIONS="Batch process the selected Immunisations" +COM_EHEALTH_PORTAL_IMMUNISATIONS_BATCH_TIP="All changes will be applied to all selected Immunisations" +COM_EHEALTH_PORTAL_IMMUNISATIONS_BATCH_USE="Immunisations Batch Use" +COM_EHEALTH_PORTAL_IMMUNISATIONS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch immunisations" +COM_EHEALTH_PORTAL_IMMUNISATIONS_DASHBOARD_ADD="Immunisations Dashboard Add" +COM_EHEALTH_PORTAL_IMMUNISATIONS_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of immunisation" +COM_EHEALTH_PORTAL_IMMUNISATIONS_DASHBOARD_LIST="Immunisations Dashboard List" +COM_EHEALTH_PORTAL_IMMUNISATIONS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of immunisation" +COM_EHEALTH_PORTAL_IMMUNISATIONS_EDIT_PATIENT="Immunisations Edit Patient" +COM_EHEALTH_PORTAL_IMMUNISATIONS_EDIT_PATIENT_DESC="Allows the users in this group to edit patient of immunisation" +COM_EHEALTH_PORTAL_IMMUNISATIONS_EDIT_VERSION="Immunisations Edit Version" +COM_EHEALTH_PORTAL_IMMUNISATIONS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version immunisations" +COM_EHEALTH_PORTAL_IMMUNISATIONS_EXPORT="Immunisations Export" +COM_EHEALTH_PORTAL_IMMUNISATIONS_EXPORT_DESC="Allows the users in this group to export export immunisations" +COM_EHEALTH_PORTAL_IMMUNISATIONS_IMPORT="Immunisations Import" +COM_EHEALTH_PORTAL_IMMUNISATIONS_IMPORT_DESC="Allows the users in this group to import import immunisations" +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_ARCHIVED="%s Immunisations archived." +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_ARCHIVED_1="%s Immunisation archived." +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_CHECKED_IN_0="No Immunisation successfully checked in." +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_CHECKED_IN_1="%d Immunisation successfully checked in." +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_CHECKED_IN_MORE="%d Immunisations successfully checked in." +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_DELETED="%s Immunisations deleted." +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_DELETED_1="%s Immunisation deleted." +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_FAILED_PUBLISHING="%s Immunisations failed publishing." +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_FAILED_PUBLISHING_1="%s Immunisation failed publishing." +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_FEATURED="%s Immunisations featured." +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_FEATURED_1="%s Immunisation featured." +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_PUBLISHED="%s Immunisations published." +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_PUBLISHED_1="%s Immunisation published." +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_TRASHED="%s Immunisations trashed." +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_TRASHED_1="%s Immunisation trashed." +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_UNFEATURED="%s Immunisations unfeatured." +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_UNFEATURED_1="%s Immunisation unfeatured." +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_UNPUBLISHED="%s Immunisations unpublished." +COM_EHEALTH_PORTAL_IMMUNISATIONS_N_ITEMS_UNPUBLISHED_1="%s Immunisation unpublished." +COM_EHEALTH_PORTAL_IMMUNISATIONS_SUBMENU="Immunisations Submenu" +COM_EHEALTH_PORTAL_IMMUNISATIONS_SUBMENU_DESC="Allows the users in this group to submenu of immunisation" +COM_EHEALTH_PORTAL_IMMUNISATION_ADMINISTRATION_PART="Administration Part" +COM_EHEALTH_PORTAL_IMMUNISATION_ADMINISTRATION_PART_DESCRIPTION="Select Administration Body Part" +COM_EHEALTH_PORTAL_IMMUNISATION_ADMINISTRATION_PART_LABEL="Administration Part" +COM_EHEALTH_PORTAL_IMMUNISATION_CREATED_BY_DESC="The user that created this Immunisation." +COM_EHEALTH_PORTAL_IMMUNISATION_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_IMMUNISATION_CREATED_DATE_DESC="The date this Immunisation was created." +COM_EHEALTH_PORTAL_IMMUNISATION_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_IMMUNISATION_DETAILS="Details" +COM_EHEALTH_PORTAL_IMMUNISATION_EDIT="Editing the Immunisation" +COM_EHEALTH_PORTAL_IMMUNISATION_ERROR_UNIQUE_ALIAS="Another Immunisation has the same alias." +COM_EHEALTH_PORTAL_IMMUNISATION_ID="Id" +COM_EHEALTH_PORTAL_IMMUNISATION_IMMUNISATION_LABEL="Immunisation" +COM_EHEALTH_PORTAL_IMMUNISATION_IMMUNISATION_TYPE="Immunisation Type" +COM_EHEALTH_PORTAL_IMMUNISATION_IMMUNISATION_TYPE_DESCRIPTION="Select immunisation type" +COM_EHEALTH_PORTAL_IMMUNISATION_IMMUNISATION_TYPE_LABEL="Type" +COM_EHEALTH_PORTAL_IMMUNISATION_IMMUNISATION_UP_TO_DATE_DESCRIPTION="Immunisation up-to-date" +COM_EHEALTH_PORTAL_IMMUNISATION_IMMUNISATION_UP_TO_DATE_LABEL="Immunisation up-to-date" +COM_EHEALTH_PORTAL_IMMUNISATION_IMMUNISATION_VACCINE_TYPE="Immunisation Vaccine Type" +COM_EHEALTH_PORTAL_IMMUNISATION_IMMUNISATION_VACCINE_TYPE_DESCRIPTION="Select Immunisation Vaccine Type" +COM_EHEALTH_PORTAL_IMMUNISATION_IMMUNISATION_VACCINE_TYPE_LABEL="Vaccine" +COM_EHEALTH_PORTAL_IMMUNISATION_MODIFIED_BY_DESC="The last user that modified this Immunisation." +COM_EHEALTH_PORTAL_IMMUNISATION_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_IMMUNISATION_MODIFIED_DATE_DESC="The date this Immunisation was modified." +COM_EHEALTH_PORTAL_IMMUNISATION_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_IMMUNISATION_NEW="A New Immunisation" +COM_EHEALTH_PORTAL_IMMUNISATION_NO="No" +COM_EHEALTH_PORTAL_IMMUNISATION_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_IMMUNISATION_PATIENT_LABEL="Patient Name" +COM_EHEALTH_PORTAL_IMMUNISATION_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_IMMUNISATION_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_IMMUNISATION_REASON_DESCRIPTION="Add Reason Here" +COM_EHEALTH_PORTAL_IMMUNISATION_REASON_HINT="Add Reason Here" +COM_EHEALTH_PORTAL_IMMUNISATION_REASON_LABEL="Reason" +COM_EHEALTH_PORTAL_IMMUNISATION_REFERRALS="Referrals" +COM_EHEALTH_PORTAL_IMMUNISATION_REFERRAL_LABEL="Referred to" +COM_EHEALTH_PORTAL_IMMUNISATION_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Immunisation to customise the alias." +COM_EHEALTH_PORTAL_IMMUNISATION_STATUS="Status" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE="Immunisation Type" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES="Immunisation Types" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_ACCESS="Immunisation Types Access" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_ACCESS_DESC="Allows the users in this group to access access immunisation types" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_BATCH_OPTIONS="Batch process the selected Immunisation Types" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_BATCH_TIP="All changes will be applied to all selected Immunisation Types" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_BATCH_USE="Immunisation Types Batch Use" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch immunisation types" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_EDIT_DESCRIPTION="Immunisation Types Edit Description" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of immunisation type" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_EDIT_NAME="Immunisation Types Edit Name" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_EDIT_NAME_DESC="Allows the users in this group to edit name of immunisation type" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_EDIT_VERSION="Immunisation Types Edit Version" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version immunisation types" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_EXPORT="Immunisation Types Export" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_EXPORT_DESC="Allows the users in this group to export export immunisation types" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_IMPORT="Immunisation Types Import" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_IMPORT_DESC="Allows the users in this group to import import immunisation types" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_ARCHIVED="%s Immunisation Types archived." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_ARCHIVED_1="%s Immunisation Type archived." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_CHECKED_IN_0="No Immunisation Type successfully checked in." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_CHECKED_IN_1="%d Immunisation Type successfully checked in." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_CHECKED_IN_MORE="%d Immunisation Types successfully checked in." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_DELETED="%s Immunisation Types deleted." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_DELETED_1="%s Immunisation Type deleted." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_FAILED_PUBLISHING="%s Immunisation Types failed publishing." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_FAILED_PUBLISHING_1="%s Immunisation Type failed publishing." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_FEATURED="%s Immunisation Types featured." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_FEATURED_1="%s Immunisation Type featured." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_PUBLISHED="%s Immunisation Types published." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_PUBLISHED_1="%s Immunisation Type published." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_TRASHED="%s Immunisation Types trashed." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_TRASHED_1="%s Immunisation Type trashed." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_UNFEATURED="%s Immunisation Types unfeatured." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_UNFEATURED_1="%s Immunisation Type unfeatured." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_UNPUBLISHED="%s Immunisation Types unpublished." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPES_N_ITEMS_UNPUBLISHED_1="%s Immunisation Type unpublished." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_CREATED_BY_DESC="The user that created this Immunisation Type." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_CREATED_DATE_DESC="The date this Immunisation Type was created." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_DETAILS="Details" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_EDIT="Editing the Immunisation Type" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_ERROR_UNIQUE_ALIAS="Another Immunisation Type has the same alias." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_ID="Id" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_MODIFIED_BY_DESC="The last user that modified this Immunisation Type." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_MODIFIED_DATE_DESC="The date this Immunisation Type was modified." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_NAME_DESCRIPTION="Enter Name Here" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_NAME_HINT="Name here" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_NAME_LABEL="Name" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_NAME_MESSAGE="Error! Please add name here." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_NEW="A New Immunisation Type" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Immunisation Type to customise the alias." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_STATUS="Status" +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_VERSION_DESC="A count of the number of times this Immunisation Type has been revised." +COM_EHEALTH_PORTAL_IMMUNISATION_TYPE_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE="Immunisation Vaccine Type" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES="Immunisation Vaccine Types" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_ACCESS="Immunisation Vaccine Types Access" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_ACCESS_DESC="Allows the users in this group to access access immunisation vaccine types" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_BATCH_OPTIONS="Batch process the selected Immunisation Vaccine Types" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_BATCH_TIP="All changes will be applied to all selected Immunisation Vaccine Types" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_BATCH_USE="Immunisation Vaccine Types Batch Use" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch immunisation vaccine types" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_EDIT_DESCRIPTION="Immunisation Vaccine Types Edit Description" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of immunisation vaccine type" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_EDIT_NAME="Immunisation Vaccine Types Edit Name" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_EDIT_NAME_DESC="Allows the users in this group to edit name of immunisation vaccine type" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_EDIT_VERSION="Immunisation Vaccine Types Edit Version" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version immunisation vaccine types" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_EXPORT="Immunisation Vaccine Types Export" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_EXPORT_DESC="Allows the users in this group to export export immunisation vaccine types" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_IMPORT="Immunisation Vaccine Types Import" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_IMPORT_DESC="Allows the users in this group to import import immunisation vaccine types" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_ARCHIVED="%s Immunisation Vaccine Types archived." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_ARCHIVED_1="%s Immunisation Vaccine Type archived." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_CHECKED_IN_0="No Immunisation Vaccine Type successfully checked in." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_CHECKED_IN_1="%d Immunisation Vaccine Type successfully checked in." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_CHECKED_IN_MORE="%d Immunisation Vaccine Types successfully checked in." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_DELETED="%s Immunisation Vaccine Types deleted." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_DELETED_1="%s Immunisation Vaccine Type deleted." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_FAILED_PUBLISHING="%s Immunisation Vaccine Types failed publishing." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_FAILED_PUBLISHING_1="%s Immunisation Vaccine Type failed publishing." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_FEATURED="%s Immunisation Vaccine Types featured." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_FEATURED_1="%s Immunisation Vaccine Type featured." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_PUBLISHED="%s Immunisation Vaccine Types published." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_PUBLISHED_1="%s Immunisation Vaccine Type published." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_TRASHED="%s Immunisation Vaccine Types trashed." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_TRASHED_1="%s Immunisation Vaccine Type trashed." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_UNFEATURED="%s Immunisation Vaccine Types unfeatured." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_UNFEATURED_1="%s Immunisation Vaccine Type unfeatured." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_UNPUBLISHED="%s Immunisation Vaccine Types unpublished." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_N_ITEMS_UNPUBLISHED_1="%s Immunisation Vaccine Type unpublished." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_SUBMENU="Immunisation Vaccine Types Submenu" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPES_SUBMENU_DESC="Allows the users in this group to submenu of immunisation vaccine type" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_ADMINISTRATION_PART_DESCRIPTION="Select Administration Body Part" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_ADMINISTRATION_PART_LABEL="Administration Part" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_CREATED_BY_DESC="The user that created this Immunisation Vaccine Type." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_CREATED_DATE_DESC="The date this Immunisation Vaccine Type was created." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_DETAILS="Details" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_EDIT="Editing the Immunisation Vaccine Type" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_ERROR_UNIQUE_ALIAS="Another Immunisation Vaccine Type has the same alias." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_ID="Id" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_MODIFIED_BY_DESC="The last user that modified this Immunisation Vaccine Type." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_MODIFIED_DATE_DESC="The date this Immunisation Vaccine Type was modified." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_NAME_DESCRIPTION="Enter Name Here" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_NAME_HINT="Name here" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_NAME_LABEL="Name" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_NAME_MESSAGE="Error! Please add name here." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_NEW="A New Immunisation Vaccine Type" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Immunisation Vaccine Type to customise the alias." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_STATUS="Status" +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_VERSION_DESC="A count of the number of times this Immunisation Vaccine Type has been revised." +COM_EHEALTH_PORTAL_IMMUNISATION_VACCINE_TYPE_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_IMMUNISATION_VERSION_DESC="A count of the number of times this Immunisation has been revised." +COM_EHEALTH_PORTAL_IMMUNISATION_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_IMMUNISATION_YES="Yes" +COM_EHEALTH_PORTAL_IMPORT_CONTINUE="Continue" +COM_EHEALTH_PORTAL_IMPORT_DATA="Import Data" +COM_EHEALTH_PORTAL_IMPORT_DATA_DESC="Allows users in this group to import data." +COM_EHEALTH_PORTAL_IMPORT_ERROR="Import error." +COM_EHEALTH_PORTAL_IMPORT_FAILED="Import Failed" +COM_EHEALTH_PORTAL_IMPORT_FILE_COLUMNS="File Columns" +COM_EHEALTH_PORTAL_IMPORT_FORMATS_ACCEPTED="formats accepted" +COM_EHEALTH_PORTAL_IMPORT_FROM_DIRECTORY="Directory" +COM_EHEALTH_PORTAL_IMPORT_FROM_UPLOAD="Upload" +COM_EHEALTH_PORTAL_IMPORT_FROM_URL="URL" +COM_EHEALTH_PORTAL_IMPORT_GET_BOTTON="Get File" +COM_EHEALTH_PORTAL_IMPORT_IGNORE_COLUMN="-- Ignore This Column --" +COM_EHEALTH_PORTAL_IMPORT_LINK_FILE_TO_TABLE_COLUMNS="Link File to Table Columns" +COM_EHEALTH_PORTAL_IMPORT_MSG_DOES_NOT_HAVE_A_VALID_FILE_TYPE="Does not have a valid file type." +COM_EHEALTH_PORTAL_IMPORT_MSG_ENTER_A_URL="Please enter a url." +COM_EHEALTH_PORTAL_IMPORT_MSG_INVALID_URL="Invalid url." +COM_EHEALTH_PORTAL_IMPORT_MSG_NO_FILE_SELECTED="No import file selected." +COM_EHEALTH_PORTAL_IMPORT_MSG_PATH_DOES_NOT_HAVE_A_VALID_PACKAGE="Path does not have a valid file." +COM_EHEALTH_PORTAL_IMPORT_MSG_PLEASE_ENTER_A_PACKAGE_DIRECTORY="Please enter the file directory." +COM_EHEALTH_PORTAL_IMPORT_MSG_PLEASE_SELECT_ALL_COLUMNS="Please link all columns." +COM_EHEALTH_PORTAL_IMPORT_MSG_PLEASE_SELECT_A_DIRECTORY="Please enter the file directory." +COM_EHEALTH_PORTAL_IMPORT_MSG_PLEASE_SELECT_A_FILE="Please select a file to import." +COM_EHEALTH_PORTAL_IMPORT_MSG_WARNIMPORTFILE="Warning, import file error." +COM_EHEALTH_PORTAL_IMPORT_MSG_WARNIMPORTUPLOADERROR="Warning, import upload error." +COM_EHEALTH_PORTAL_IMPORT_NO_IMPORT_TYPE_FOUND="Import type not found." +COM_EHEALTH_PORTAL_IMPORT_PLEASE_SELECT_COLUMN="-- Please Select Column --" +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE="Select File" +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_DIRECTORY="Set the path to file" +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_ADMINISTRATION_PARTS="Select the file to import data to administration_parts." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_ANTENATAL_CARES="Select the file to import data to antenatal_cares." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_BREAST_CANCERS="Select the file to import data to breast_cancers." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_CERVICAL_CANCERS="Select the file to import data to cervical_cancers." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_CLINICS="Select the file to import data to clinics." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_COUNSELING_TYPES="Select the file to import data to counseling_types." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_DIAGNOSIS_TYPES="Select the file to import data to diagnosis_types." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_FAMILY_PLANNINGS="Select the file to import data to family_plannings." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_FOETAL_ENGAGEMENTS="Select the file to import data to foetal_engagements." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_FOETAL_LIES="Select the file to import data to foetal_lies." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_FOETAL_PRESENTATIONS="Select the file to import data to foetal_presentations." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_GENERAL_MEDICAL_CHECK_UPS="Select the file to import data to general_medical_check_ups." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_HEALTH_EDUCATIONS="Select the file to import data to health_educations." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_HEALTH_EDUCATION_TOPICS="Select the file to import data to health_education_topics." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_HIV_COUNSELINGS_AND_TESTINGS="Select the file to import data to hiv_counselings_and_testings." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_IMMUNISATIONS="Select the file to import data to immunisations." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_IMMUNISATION_TYPES="Select the file to import data to immunisation_types." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_IMMUNISATION_VACCINE_TYPES="Select the file to import data to immunisation_vaccine_types." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_MEDICATIONS="Select the file to import data to medications." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_NONPAY_REASONS="Select the file to import data to nonpay_reasons." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_PAYMENTS="Select the file to import data to payments." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_PAYMENT_AMOUNTS="Select the file to import data to payment_amounts." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_PAYMENT_TYPES="Select the file to import data to payment_types." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_PLANNING_TYPES="Select the file to import data to planning_types." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_PROSTATE_AND_TESTICULAR_CANCERS="Select the file to import data to prostate_and_testicular_cancers." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_REFERRALS="Select the file to import data to referrals." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_SITES="Select the file to import data to sites." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_STRENGTHS="Select the file to import data to strengths." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_TESTING_REASONS="Select the file to import data to testing_reasons." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_TESTS="Select the file to import data to tests." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_TUBERCULOSES="Select the file to import data to tuberculoses." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_UNITS="Select the file to import data to units." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_FOR_VMMCS="Select the file to import data to vmmcs." +COM_EHEALTH_PORTAL_IMPORT_SELECT_FILE_URL="Enter file URL" +COM_EHEALTH_PORTAL_IMPORT_SUCCESS="Great! Import successful." +COM_EHEALTH_PORTAL_IMPORT_TABLE_COLUMNS="Table Columns" +COM_EHEALTH_PORTAL_IMPORT_TITLE="Data Importer" +COM_EHEALTH_PORTAL_IMPORT_UNABLE_TO_FIND_IMPORT_PACKAGE="Package to import not found." +COM_EHEALTH_PORTAL_IMPORT_UPDATE_DATA="Import Data" +COM_EHEALTH_PORTAL_IMPORT_UPLOAD_BOTTON="Upload File" +COM_EHEALTH_PORTAL_INACTIVE="Inactive" +COM_EHEALTH_PORTAL_KEEP_ORIGINAL_ACCESS="- Keep Original Access -" +COM_EHEALTH_PORTAL_KEEP_ORIGINAL_CATEGORY="- Keep Original Category -" +COM_EHEALTH_PORTAL_KEEP_ORIGINAL_STATE="- Keep Original State -" +COM_EHEALTH_PORTAL_LICENSE="License" +COM_EHEALTH_PORTAL_MEDICATION="Medication" +COM_EHEALTH_PORTAL_MEDICATIONS="Medications" +COM_EHEALTH_PORTAL_MEDICATIONS_ACCESS="Medications Access" +COM_EHEALTH_PORTAL_MEDICATIONS_ACCESS_DESC="Allows the users in this group to access access medications" +COM_EHEALTH_PORTAL_MEDICATIONS_BATCH_OPTIONS="Batch process the selected Medications" +COM_EHEALTH_PORTAL_MEDICATIONS_BATCH_TIP="All changes will be applied to all selected Medications" +COM_EHEALTH_PORTAL_MEDICATIONS_BATCH_USE="Medications Batch Use" +COM_EHEALTH_PORTAL_MEDICATIONS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch medications" +COM_EHEALTH_PORTAL_MEDICATIONS_EDIT_DESCRIPTION="Medications Edit Description" +COM_EHEALTH_PORTAL_MEDICATIONS_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of medication" +COM_EHEALTH_PORTAL_MEDICATIONS_EDIT_NAME="Medications Edit Name" +COM_EHEALTH_PORTAL_MEDICATIONS_EDIT_NAME_DESC="Allows the users in this group to edit name of medication" +COM_EHEALTH_PORTAL_MEDICATIONS_EDIT_VERSION="Medications Edit Version" +COM_EHEALTH_PORTAL_MEDICATIONS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version medications" +COM_EHEALTH_PORTAL_MEDICATIONS_EXPORT="Medications Export" +COM_EHEALTH_PORTAL_MEDICATIONS_EXPORT_DESC="Allows the users in this group to export export medications" +COM_EHEALTH_PORTAL_MEDICATIONS_IMPORT="Medications Import" +COM_EHEALTH_PORTAL_MEDICATIONS_IMPORT_DESC="Allows the users in this group to import import medications" +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_ARCHIVED="%s Medications archived." +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_ARCHIVED_1="%s Medication archived." +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_CHECKED_IN_0="No Medication successfully checked in." +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_CHECKED_IN_1="%d Medication successfully checked in." +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_CHECKED_IN_MORE="%d Medications successfully checked in." +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_DELETED="%s Medications deleted." +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_DELETED_1="%s Medication deleted." +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_FAILED_PUBLISHING="%s Medications failed publishing." +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_FAILED_PUBLISHING_1="%s Medication failed publishing." +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_FEATURED="%s Medications featured." +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_FEATURED_1="%s Medication featured." +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_PUBLISHED="%s Medications published." +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_PUBLISHED_1="%s Medication published." +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_TRASHED="%s Medications trashed." +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_TRASHED_1="%s Medication trashed." +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_UNFEATURED="%s Medications unfeatured." +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_UNFEATURED_1="%s Medication unfeatured." +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_UNPUBLISHED="%s Medications unpublished." +COM_EHEALTH_PORTAL_MEDICATIONS_N_ITEMS_UNPUBLISHED_1="%s Medication unpublished." +COM_EHEALTH_PORTAL_MEDICATIONS_SUBMENU="Medications Submenu" +COM_EHEALTH_PORTAL_MEDICATIONS_SUBMENU_DESC="Allows the users in this group to submenu of medication" +COM_EHEALTH_PORTAL_MEDICATION_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_MEDICATION_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_MEDICATION_CREATED_BY_DESC="The user that created this Medication." +COM_EHEALTH_PORTAL_MEDICATION_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_MEDICATION_CREATED_DATE_DESC="The date this Medication was created." +COM_EHEALTH_PORTAL_MEDICATION_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_MEDICATION_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_MEDICATION_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_MEDICATION_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_MEDICATION_DETAILS="Details" +COM_EHEALTH_PORTAL_MEDICATION_EDIT="Editing the Medication" +COM_EHEALTH_PORTAL_MEDICATION_ERROR_UNIQUE_ALIAS="Another Medication has the same alias." +COM_EHEALTH_PORTAL_MEDICATION_ID="Id" +COM_EHEALTH_PORTAL_MEDICATION_MODIFIED_BY_DESC="The last user that modified this Medication." +COM_EHEALTH_PORTAL_MEDICATION_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_MEDICATION_MODIFIED_DATE_DESC="The date this Medication was modified." +COM_EHEALTH_PORTAL_MEDICATION_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_MEDICATION_NAME_DESCRIPTION="Enter Name Here" +COM_EHEALTH_PORTAL_MEDICATION_NAME_HINT="Name here" +COM_EHEALTH_PORTAL_MEDICATION_NAME_LABEL="Name" +COM_EHEALTH_PORTAL_MEDICATION_NAME_MESSAGE="Error! Please add name here." +COM_EHEALTH_PORTAL_MEDICATION_NEW="A New Medication" +COM_EHEALTH_PORTAL_MEDICATION_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_MEDICATION_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_MEDICATION_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_MEDICATION_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Medication to customise the alias." +COM_EHEALTH_PORTAL_MEDICATION_STATUS="Status" +COM_EHEALTH_PORTAL_MEDICATION_VERSION_DESC="A count of the number of times this Medication has been revised." +COM_EHEALTH_PORTAL_MEDICATION_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_NEW="New" +COM_EHEALTH_PORTAL_NONPAY_REASON="NonPay Reason" +COM_EHEALTH_PORTAL_NONPAY_REASONS="NonPay Reasons" +COM_EHEALTH_PORTAL_NONPAY_REASONS_ACCESS="Nonpay Reasons Access" +COM_EHEALTH_PORTAL_NONPAY_REASONS_ACCESS_DESC="Allows the users in this group to access access nonpay reasons" +COM_EHEALTH_PORTAL_NONPAY_REASONS_BATCH_OPTIONS="Batch process the selected NonPay Reasons" +COM_EHEALTH_PORTAL_NONPAY_REASONS_BATCH_TIP="All changes will be applied to all selected NonPay Reasons" +COM_EHEALTH_PORTAL_NONPAY_REASONS_BATCH_USE="Nonpay Reasons Batch Use" +COM_EHEALTH_PORTAL_NONPAY_REASONS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch nonpay reasons" +COM_EHEALTH_PORTAL_NONPAY_REASONS_EDIT_DESCRIPTION="Nonpay Reasons Edit Description" +COM_EHEALTH_PORTAL_NONPAY_REASONS_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of nonpay reason" +COM_EHEALTH_PORTAL_NONPAY_REASONS_EDIT_NAME="Nonpay Reasons Edit Name" +COM_EHEALTH_PORTAL_NONPAY_REASONS_EDIT_NAME_DESC="Allows the users in this group to edit name of nonpay reason" +COM_EHEALTH_PORTAL_NONPAY_REASONS_EDIT_VERSION="Nonpay Reasons Edit Version" +COM_EHEALTH_PORTAL_NONPAY_REASONS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version nonpay reasons" +COM_EHEALTH_PORTAL_NONPAY_REASONS_EXPORT="Nonpay Reasons Export" +COM_EHEALTH_PORTAL_NONPAY_REASONS_EXPORT_DESC="Allows the users in this group to export export nonpay reasons" +COM_EHEALTH_PORTAL_NONPAY_REASONS_IMPORT="Nonpay Reasons Import" +COM_EHEALTH_PORTAL_NONPAY_REASONS_IMPORT_DESC="Allows the users in this group to import import nonpay reasons" +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_ARCHIVED="%s NonPay Reasons archived." +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_ARCHIVED_1="%s NonPay Reason archived." +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_CHECKED_IN_0="No NonPay Reason successfully checked in." +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_CHECKED_IN_1="%d NonPay Reason successfully checked in." +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_CHECKED_IN_MORE="%d NonPay Reasons successfully checked in." +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_DELETED="%s NonPay Reasons deleted." +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_DELETED_1="%s NonPay Reason deleted." +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_FAILED_PUBLISHING="%s NonPay Reasons failed publishing." +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_FAILED_PUBLISHING_1="%s NonPay Reason failed publishing." +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_FEATURED="%s NonPay Reasons featured." +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_FEATURED_1="%s NonPay Reason featured." +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_PUBLISHED="%s NonPay Reasons published." +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_PUBLISHED_1="%s NonPay Reason published." +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_TRASHED="%s NonPay Reasons trashed." +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_TRASHED_1="%s NonPay Reason trashed." +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_UNFEATURED="%s NonPay Reasons unfeatured." +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_UNFEATURED_1="%s NonPay Reason unfeatured." +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_UNPUBLISHED="%s NonPay Reasons unpublished." +COM_EHEALTH_PORTAL_NONPAY_REASONS_N_ITEMS_UNPUBLISHED_1="%s NonPay Reason unpublished." +COM_EHEALTH_PORTAL_NONPAY_REASON_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_NONPAY_REASON_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_NONPAY_REASON_CREATED_BY_DESC="The user that created this NonPay Reason." +COM_EHEALTH_PORTAL_NONPAY_REASON_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_NONPAY_REASON_CREATED_DATE_DESC="The date this NonPay Reason was created." +COM_EHEALTH_PORTAL_NONPAY_REASON_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_NONPAY_REASON_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_NONPAY_REASON_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_NONPAY_REASON_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_NONPAY_REASON_DETAILS="Details" +COM_EHEALTH_PORTAL_NONPAY_REASON_EDIT="Editing the NonPay Reason" +COM_EHEALTH_PORTAL_NONPAY_REASON_ERROR_UNIQUE_ALIAS="Another NonPay Reason has the same alias." +COM_EHEALTH_PORTAL_NONPAY_REASON_ID="Id" +COM_EHEALTH_PORTAL_NONPAY_REASON_MODIFIED_BY_DESC="The last user that modified this NonPay Reason." +COM_EHEALTH_PORTAL_NONPAY_REASON_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_NONPAY_REASON_MODIFIED_DATE_DESC="The date this NonPay Reason was modified." +COM_EHEALTH_PORTAL_NONPAY_REASON_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_NONPAY_REASON_NAME_DESCRIPTION="Enter Name Here" +COM_EHEALTH_PORTAL_NONPAY_REASON_NAME_HINT="Name here" +COM_EHEALTH_PORTAL_NONPAY_REASON_NAME_LABEL="Name" +COM_EHEALTH_PORTAL_NONPAY_REASON_NAME_MESSAGE="Error! Please add name here." +COM_EHEALTH_PORTAL_NONPAY_REASON_NEW="A New NonPay Reason" +COM_EHEALTH_PORTAL_NONPAY_REASON_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_NONPAY_REASON_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_NONPAY_REASON_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_NONPAY_REASON_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the NonPay Reason to customise the alias." +COM_EHEALTH_PORTAL_NONPAY_REASON_STATUS="Status" +COM_EHEALTH_PORTAL_NONPAY_REASON_VERSION_DESC="A count of the number of times this NonPay Reason has been revised." +COM_EHEALTH_PORTAL_NONPAY_REASON_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_NOT_FOUND_OR_ACCESS_DENIED="Not found, or access denied." +COM_EHEALTH_PORTAL_NO_ACCESS_GRANTED="No Access Granted!" +COM_EHEALTH_PORTAL_PATIENT_QUEUE="Patient Queue" +COM_EHEALTH_PORTAL_PATIENT_QUEUE_ACCESS="Patient Queue Access" +COM_EHEALTH_PORTAL_PATIENT_QUEUE_ACCESS_DESC="Allows the users in this group to access patient queue." +COM_EHEALTH_PORTAL_PATIENT_QUEUE_DASHBOARD_LIST="Patient Queue Dashboard List" +COM_EHEALTH_PORTAL_PATIENT_QUEUE_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of Patient Queue" +COM_EHEALTH_PORTAL_PATIENT_QUEUE_DESC="A patient queue" +COM_EHEALTH_PORTAL_PATIENT_QUEUE_SUBMENU="Patient Queue Submenu" +COM_EHEALTH_PORTAL_PATIENT_QUEUE_SUBMENU_DESC="Allows the users in this group to submenu of Patient Queue" +COM_EHEALTH_PORTAL_PAYMENT="Payment" +COM_EHEALTH_PORTAL_PAYMENTS="Payments" +COM_EHEALTH_PORTAL_PAYMENTS_ACCESS="Payments Access" +COM_EHEALTH_PORTAL_PAYMENTS_ACCESS_DESC="Allows the users in this group to access access payments" +COM_EHEALTH_PORTAL_PAYMENTS_BATCH_OPTIONS="Batch process the selected Payments" +COM_EHEALTH_PORTAL_PAYMENTS_BATCH_TIP="All changes will be applied to all selected Payments" +COM_EHEALTH_PORTAL_PAYMENTS_BATCH_USE="Payments Batch Use" +COM_EHEALTH_PORTAL_PAYMENTS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch payments" +COM_EHEALTH_PORTAL_PAYMENTS_DASHBOARD_ADD="Payments Dashboard Add" +COM_EHEALTH_PORTAL_PAYMENTS_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of payment" +COM_EHEALTH_PORTAL_PAYMENTS_DASHBOARD_LIST="Payments Dashboard List" +COM_EHEALTH_PORTAL_PAYMENTS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of payment" +COM_EHEALTH_PORTAL_PAYMENTS_EDIT_PATIENT="Payments Edit Patient" +COM_EHEALTH_PORTAL_PAYMENTS_EDIT_PATIENT_DESC="Allows the users in this group to edit patient of payment" +COM_EHEALTH_PORTAL_PAYMENTS_EDIT_VERSION="Payments Edit Version" +COM_EHEALTH_PORTAL_PAYMENTS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version payments" +COM_EHEALTH_PORTAL_PAYMENTS_EXPORT="Payments Export" +COM_EHEALTH_PORTAL_PAYMENTS_EXPORT_DESC="Allows the users in this group to export export payments" +COM_EHEALTH_PORTAL_PAYMENTS_IMPORT="Payments Import" +COM_EHEALTH_PORTAL_PAYMENTS_IMPORT_DESC="Allows the users in this group to import import payments" +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_ARCHIVED="%s Payments archived." +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_ARCHIVED_1="%s Payment archived." +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_CHECKED_IN_0="No Payment successfully checked in." +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_CHECKED_IN_1="%d Payment successfully checked in." +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_CHECKED_IN_MORE="%d Payments successfully checked in." +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_DELETED="%s Payments deleted." +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_DELETED_1="%s Payment deleted." +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_FAILED_PUBLISHING="%s Payments failed publishing." +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_FAILED_PUBLISHING_1="%s Payment failed publishing." +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_FEATURED="%s Payments featured." +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_FEATURED_1="%s Payment featured." +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_PUBLISHED="%s Payments published." +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_PUBLISHED_1="%s Payment published." +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_TRASHED="%s Payments trashed." +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_TRASHED_1="%s Payment trashed." +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_UNFEATURED="%s Payments unfeatured." +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_UNFEATURED_1="%s Payment unfeatured." +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_UNPUBLISHED="%s Payments unpublished." +COM_EHEALTH_PORTAL_PAYMENTS_N_ITEMS_UNPUBLISHED_1="%s Payment unpublished." +COM_EHEALTH_PORTAL_PAYMENTS_SUBMENU="Payments Submenu" +COM_EHEALTH_PORTAL_PAYMENTS_SUBMENU_DESC="Allows the users in this group to submenu of payment" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT="Payment Amount" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS="Payment Amounts" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_ACCESS="Payment Amounts Access" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_ACCESS_DESC="Allows the users in this group to access access payment amounts" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_BATCH_OPTIONS="Batch process the selected Payment Amounts" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_BATCH_TIP="All changes will be applied to all selected Payment Amounts" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_BATCH_USE="Payment Amounts Batch Use" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch payment amounts" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_EDIT_DESCRIPTION="Payment Amounts Edit Description" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of payment amount" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_EDIT_NAME="Payment Amounts Edit Name" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_EDIT_NAME_DESC="Allows the users in this group to edit name of payment amount" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_EDIT_VERSION="Payment Amounts Edit Version" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version payment amounts" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_EXPORT="Payment Amounts Export" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_EXPORT_DESC="Allows the users in this group to export export payment amounts" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_IMPORT="Payment Amounts Import" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_IMPORT_DESC="Allows the users in this group to import import payment amounts" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_ARCHIVED="%s Payment Amounts archived." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_ARCHIVED_1="%s Payment Amount archived." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_CHECKED_IN_0="No Payment Amount successfully checked in." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_CHECKED_IN_1="%d Payment Amount successfully checked in." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_CHECKED_IN_MORE="%d Payment Amounts successfully checked in." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_DELETED="%s Payment Amounts deleted." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_DELETED_1="%s Payment Amount deleted." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_FAILED_PUBLISHING="%s Payment Amounts failed publishing." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_FAILED_PUBLISHING_1="%s Payment Amount failed publishing." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_FEATURED="%s Payment Amounts featured." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_FEATURED_1="%s Payment Amount featured." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_PUBLISHED="%s Payment Amounts published." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_PUBLISHED_1="%s Payment Amount published." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_TRASHED="%s Payment Amounts trashed." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_TRASHED_1="%s Payment Amount trashed." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_UNFEATURED="%s Payment Amounts unfeatured." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_UNFEATURED_1="%s Payment Amount unfeatured." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_UNPUBLISHED="%s Payment Amounts unpublished." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNTS_N_ITEMS_UNPUBLISHED_1="%s Payment Amount unpublished." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_CREATED_BY_DESC="The user that created this Payment Amount." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_CREATED_DATE_DESC="The date this Payment Amount was created." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_DETAILS="Details" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_EDIT="Editing the Payment Amount" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_ERROR_UNIQUE_ALIAS="Another Payment Amount has the same alias." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_ID="Id" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_MODIFIED_BY_DESC="The last user that modified this Payment Amount." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_MODIFIED_DATE_DESC="The date this Payment Amount was modified." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_NAME_DESCRIPTION="Enter Name Here" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_NAME_HINT="Name here" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_NAME_LABEL="Name" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_NAME_MESSAGE="Error! Please add name here." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_NEW="A New Payment Amount" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Payment Amount to customise the alias." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_STATUS="Status" +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_VERSION_DESC="A count of the number of times this Payment Amount has been revised." +COM_EHEALTH_PORTAL_PAYMENT_AMOUNT_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_PAYMENT_CREATED_BY_DESC="The user that created this Payment." +COM_EHEALTH_PORTAL_PAYMENT_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_PAYMENT_CREATED_DATE_DESC="The date this Payment was created." +COM_EHEALTH_PORTAL_PAYMENT_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_PAYMENT_DEBT_PAYMENT="Debt Payment" +COM_EHEALTH_PORTAL_PAYMENT_DETAILS="Details" +COM_EHEALTH_PORTAL_PAYMENT_EDIT="Editing the Payment" +COM_EHEALTH_PORTAL_PAYMENT_ERROR_UNIQUE_ALIAS="Another Payment has the same alias." +COM_EHEALTH_PORTAL_PAYMENT_ID="Id" +COM_EHEALTH_PORTAL_PAYMENT_MODIFIED_BY_DESC="The last user that modified this Payment." +COM_EHEALTH_PORTAL_PAYMENT_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_PAYMENT_MODIFIED_DATE_DESC="The date this Payment was modified." +COM_EHEALTH_PORTAL_PAYMENT_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_PAYMENT_NEW="A New Payment" +COM_EHEALTH_PORTAL_PAYMENT_NONPAY_REASON_DESCRIPTION="Select Non-Payment Reason" +COM_EHEALTH_PORTAL_PAYMENT_NONPAY_REASON_LABEL="Non-Payment Reason" +COM_EHEALTH_PORTAL_PAYMENT_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_PAYMENT_PATIENT_LABEL="Patient Name" +COM_EHEALTH_PORTAL_PAYMENT_PAYMENT_AMOUNT_DESCRIPTION="Select Amount (N$)" +COM_EHEALTH_PORTAL_PAYMENT_PAYMENT_AMOUNT_LABEL="Amount (N$):" +COM_EHEALTH_PORTAL_PAYMENT_PAYMENT_CATEGORY_DESCRIPTION="Category under which payment falls under" +COM_EHEALTH_PORTAL_PAYMENT_PAYMENT_CATEGORY_LABEL="Payment Category" +COM_EHEALTH_PORTAL_PAYMENT_PAYMENT_TYPE_DESCRIPTION="Type of Payment" +COM_EHEALTH_PORTAL_PAYMENT_PAYMENT_TYPE_LABEL="Type of Payment" +COM_EHEALTH_PORTAL_PAYMENT_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_PAYMENT_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_PAYMENT_RECEIPT_NO_DESCRIPTION="Enter Receipt Number Here" +COM_EHEALTH_PORTAL_PAYMENT_RECEIPT_NO_HINT="Receipt Number Here" +COM_EHEALTH_PORTAL_PAYMENT_RECEIPT_NO_LABEL="Receipt Number" +COM_EHEALTH_PORTAL_PAYMENT_RECEIPT_NO_MESSAGE="Error! Please add Receipt Number here." +COM_EHEALTH_PORTAL_PAYMENT_RECEIVE_PAYMENT="Receive Payment" +COM_EHEALTH_PORTAL_PAYMENT_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Payment to customise the alias." +COM_EHEALTH_PORTAL_PAYMENT_SELECT_AMOUNT_N="Select Amount (N$)" +COM_EHEALTH_PORTAL_PAYMENT_SEVENTY_FIVE="75" +COM_EHEALTH_PORTAL_PAYMENT_STATUS="Status" +COM_EHEALTH_PORTAL_PAYMENT_TEN="10" +COM_EHEALTH_PORTAL_PAYMENT_TYPE="Payment Type" +COM_EHEALTH_PORTAL_PAYMENT_TYPES="Payment Types" +COM_EHEALTH_PORTAL_PAYMENT_TYPES_ACCESS="Payment Types Access" +COM_EHEALTH_PORTAL_PAYMENT_TYPES_ACCESS_DESC="Allows the users in this group to access access payment types" +COM_EHEALTH_PORTAL_PAYMENT_TYPES_BATCH_OPTIONS="Batch process the selected Payment Types" +COM_EHEALTH_PORTAL_PAYMENT_TYPES_BATCH_TIP="All changes will be applied to all selected Payment Types" +COM_EHEALTH_PORTAL_PAYMENT_TYPES_BATCH_USE="Payment Types Batch Use" +COM_EHEALTH_PORTAL_PAYMENT_TYPES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch payment types" +COM_EHEALTH_PORTAL_PAYMENT_TYPES_EDIT_DESCRIPTION="Payment Types Edit Description" +COM_EHEALTH_PORTAL_PAYMENT_TYPES_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of payment type" +COM_EHEALTH_PORTAL_PAYMENT_TYPES_EDIT_NAME="Payment Types Edit Name" +COM_EHEALTH_PORTAL_PAYMENT_TYPES_EDIT_NAME_DESC="Allows the users in this group to edit name of payment type" +COM_EHEALTH_PORTAL_PAYMENT_TYPES_EDIT_VERSION="Payment Types Edit Version" +COM_EHEALTH_PORTAL_PAYMENT_TYPES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version payment types" +COM_EHEALTH_PORTAL_PAYMENT_TYPES_EXPORT="Payment Types Export" +COM_EHEALTH_PORTAL_PAYMENT_TYPES_EXPORT_DESC="Allows the users in this group to export export payment types" +COM_EHEALTH_PORTAL_PAYMENT_TYPES_IMPORT="Payment Types Import" +COM_EHEALTH_PORTAL_PAYMENT_TYPES_IMPORT_DESC="Allows the users in this group to import import payment types" +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_ARCHIVED="%s Payment Types archived." +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_ARCHIVED_1="%s Payment Type archived." +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_CHECKED_IN_0="No Payment Type successfully checked in." +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_CHECKED_IN_1="%d Payment Type successfully checked in." +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_CHECKED_IN_MORE="%d Payment Types successfully checked in." +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_DELETED="%s Payment Types deleted." +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_DELETED_1="%s Payment Type deleted." +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_FAILED_PUBLISHING="%s Payment Types failed publishing." +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_FAILED_PUBLISHING_1="%s Payment Type failed publishing." +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_FEATURED="%s Payment Types featured." +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_FEATURED_1="%s Payment Type featured." +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_PUBLISHED="%s Payment Types published." +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_PUBLISHED_1="%s Payment Type published." +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_TRASHED="%s Payment Types trashed." +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_TRASHED_1="%s Payment Type trashed." +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_UNFEATURED="%s Payment Types unfeatured." +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_UNFEATURED_1="%s Payment Type unfeatured." +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_UNPUBLISHED="%s Payment Types unpublished." +COM_EHEALTH_PORTAL_PAYMENT_TYPES_N_ITEMS_UNPUBLISHED_1="%s Payment Type unpublished." +COM_EHEALTH_PORTAL_PAYMENT_TYPE_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_CREATED_BY_DESC="The user that created this Payment Type." +COM_EHEALTH_PORTAL_PAYMENT_TYPE_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_CREATED_DATE_DESC="The date this Payment Type was created." +COM_EHEALTH_PORTAL_PAYMENT_TYPE_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_DETAILS="Details" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_EDIT="Editing the Payment Type" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_ERROR_UNIQUE_ALIAS="Another Payment Type has the same alias." +COM_EHEALTH_PORTAL_PAYMENT_TYPE_ID="Id" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_MODIFIED_BY_DESC="The last user that modified this Payment Type." +COM_EHEALTH_PORTAL_PAYMENT_TYPE_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_MODIFIED_DATE_DESC="The date this Payment Type was modified." +COM_EHEALTH_PORTAL_PAYMENT_TYPE_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_NAME_DESCRIPTION="Enter Name Here" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_NAME_HINT="Name here" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_NAME_LABEL="Name" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_NAME_MESSAGE="Error! Please add name here." +COM_EHEALTH_PORTAL_PAYMENT_TYPE_NEW="A New Payment Type" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Payment Type to customise the alias." +COM_EHEALTH_PORTAL_PAYMENT_TYPE_STATUS="Status" +COM_EHEALTH_PORTAL_PAYMENT_TYPE_VERSION_DESC="A count of the number of times this Payment Type has been revised." +COM_EHEALTH_PORTAL_PAYMENT_TYPE_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_PAYMENT_VERSION_DESC="A count of the number of times this Payment has been revised." +COM_EHEALTH_PORTAL_PAYMENT_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_PAYMENT_ZERO="0" +COM_EHEALTH_PORTAL_PLANNING_TYPE="Planning Type" +COM_EHEALTH_PORTAL_PLANNING_TYPES="Planning Types" +COM_EHEALTH_PORTAL_PLANNING_TYPES_ACCESS="Planning Types Access" +COM_EHEALTH_PORTAL_PLANNING_TYPES_ACCESS_DESC="Allows the users in this group to access access planning types" +COM_EHEALTH_PORTAL_PLANNING_TYPES_BATCH_OPTIONS="Batch process the selected Planning Types" +COM_EHEALTH_PORTAL_PLANNING_TYPES_BATCH_TIP="All changes will be applied to all selected Planning Types" +COM_EHEALTH_PORTAL_PLANNING_TYPES_BATCH_USE="Planning Types Batch Use" +COM_EHEALTH_PORTAL_PLANNING_TYPES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch planning types" +COM_EHEALTH_PORTAL_PLANNING_TYPES_EDIT_DESCRIPTION="Planning Types Edit Description" +COM_EHEALTH_PORTAL_PLANNING_TYPES_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of planning type" +COM_EHEALTH_PORTAL_PLANNING_TYPES_EDIT_NAME="Planning Types Edit Name" +COM_EHEALTH_PORTAL_PLANNING_TYPES_EDIT_NAME_DESC="Allows the users in this group to edit name of planning type" +COM_EHEALTH_PORTAL_PLANNING_TYPES_EDIT_VERSION="Planning Types Edit Version" +COM_EHEALTH_PORTAL_PLANNING_TYPES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version planning types" +COM_EHEALTH_PORTAL_PLANNING_TYPES_EXPORT="Planning Types Export" +COM_EHEALTH_PORTAL_PLANNING_TYPES_EXPORT_DESC="Allows the users in this group to export export planning types" +COM_EHEALTH_PORTAL_PLANNING_TYPES_IMPORT="Planning Types Import" +COM_EHEALTH_PORTAL_PLANNING_TYPES_IMPORT_DESC="Allows the users in this group to import import planning types" +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_ARCHIVED="%s Planning Types archived." +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_ARCHIVED_1="%s Planning Type archived." +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_CHECKED_IN_0="No Planning Type successfully checked in." +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_CHECKED_IN_1="%d Planning Type successfully checked in." +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_CHECKED_IN_MORE="%d Planning Types successfully checked in." +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_DELETED="%s Planning Types deleted." +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_DELETED_1="%s Planning Type deleted." +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_FAILED_PUBLISHING="%s Planning Types failed publishing." +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_FAILED_PUBLISHING_1="%s Planning Type failed publishing." +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_FEATURED="%s Planning Types featured." +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_FEATURED_1="%s Planning Type featured." +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_PUBLISHED="%s Planning Types published." +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_PUBLISHED_1="%s Planning Type published." +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_TRASHED="%s Planning Types trashed." +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_TRASHED_1="%s Planning Type trashed." +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_UNFEATURED="%s Planning Types unfeatured." +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_UNFEATURED_1="%s Planning Type unfeatured." +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_UNPUBLISHED="%s Planning Types unpublished." +COM_EHEALTH_PORTAL_PLANNING_TYPES_N_ITEMS_UNPUBLISHED_1="%s Planning Type unpublished." +COM_EHEALTH_PORTAL_PLANNING_TYPE_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_PLANNING_TYPE_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_PLANNING_TYPE_CREATED_BY_DESC="The user that created this Planning Type." +COM_EHEALTH_PORTAL_PLANNING_TYPE_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_PLANNING_TYPE_CREATED_DATE_DESC="The date this Planning Type was created." +COM_EHEALTH_PORTAL_PLANNING_TYPE_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_PLANNING_TYPE_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_PLANNING_TYPE_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_PLANNING_TYPE_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_PLANNING_TYPE_DETAILS="Details" +COM_EHEALTH_PORTAL_PLANNING_TYPE_EDIT="Editing the Planning Type" +COM_EHEALTH_PORTAL_PLANNING_TYPE_ERROR_UNIQUE_ALIAS="Another Planning Type has the same alias." +COM_EHEALTH_PORTAL_PLANNING_TYPE_ID="Id" +COM_EHEALTH_PORTAL_PLANNING_TYPE_MODIFIED_BY_DESC="The last user that modified this Planning Type." +COM_EHEALTH_PORTAL_PLANNING_TYPE_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_PLANNING_TYPE_MODIFIED_DATE_DESC="The date this Planning Type was modified." +COM_EHEALTH_PORTAL_PLANNING_TYPE_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_PLANNING_TYPE_NAME_DESCRIPTION="Enter Name Here" +COM_EHEALTH_PORTAL_PLANNING_TYPE_NAME_HINT="Name here" +COM_EHEALTH_PORTAL_PLANNING_TYPE_NAME_LABEL="Name" +COM_EHEALTH_PORTAL_PLANNING_TYPE_NAME_MESSAGE="Error! Please add name here." +COM_EHEALTH_PORTAL_PLANNING_TYPE_NEW="A New Planning Type" +COM_EHEALTH_PORTAL_PLANNING_TYPE_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_PLANNING_TYPE_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_PLANNING_TYPE_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_PLANNING_TYPE_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Planning Type to customise the alias." +COM_EHEALTH_PORTAL_PLANNING_TYPE_STATUS="Status" +COM_EHEALTH_PORTAL_PLANNING_TYPE_VERSION_DESC="A count of the number of times this Planning Type has been revised." +COM_EHEALTH_PORTAL_PLANNING_TYPE_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER="Prostate and Testicular Cancer" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS="Prostate and Testicular Cancers" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_ACCESS="Prostate And Testicular Cancers Access" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_ACCESS_DESC="Allows the users in this group to access access prostate and testicular cancers" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_BATCH_OPTIONS="Batch process the selected Prostate and Testicular Cancers" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_BATCH_TIP="All changes will be applied to all selected Prostate and Testicular Cancers" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_BATCH_USE="Prostate And Testicular Cancers Batch Use" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch prostate and testicular cancers" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_DASHBOARD_ADD="Prostate And Testicular Cancers Dashboard Add" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of prostate and testicular cancer" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_DASHBOARD_LIST="Prostate And Testicular Cancers Dashboard List" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of prostate and testicular cancer" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_EDIT_VERSION="Prostate And Testicular Cancers Edit Version" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version prostate and testicular cancers" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_EXPORT="Prostate And Testicular Cancers Export" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_EXPORT_DESC="Allows the users in this group to export export prostate and testicular cancers" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_IMPORT="Prostate And Testicular Cancers Import" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_IMPORT_DESC="Allows the users in this group to import import prostate and testicular cancers" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_ARCHIVED="%s Prostate and Testicular Cancers archived." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_ARCHIVED_1="%s Prostate and Testicular Cancer archived." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_CHECKED_IN_0="No Prostate and Testicular Cancer successfully checked in." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_CHECKED_IN_1="%d Prostate and Testicular Cancer successfully checked in." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_CHECKED_IN_MORE="%d Prostate and Testicular Cancers successfully checked in." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_DELETED="%s Prostate and Testicular Cancers deleted." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_DELETED_1="%s Prostate and Testicular Cancer deleted." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_FAILED_PUBLISHING="%s Prostate and Testicular Cancers failed publishing." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_FAILED_PUBLISHING_1="%s Prostate and Testicular Cancer failed publishing." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_FEATURED="%s Prostate and Testicular Cancers featured." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_FEATURED_1="%s Prostate and Testicular Cancer featured." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_PUBLISHED="%s Prostate and Testicular Cancers published." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_PUBLISHED_1="%s Prostate and Testicular Cancer published." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_TRASHED="%s Prostate and Testicular Cancers trashed." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_TRASHED_1="%s Prostate and Testicular Cancer trashed." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_UNFEATURED="%s Prostate and Testicular Cancers unfeatured." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_UNFEATURED_1="%s Prostate and Testicular Cancer unfeatured." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_UNPUBLISHED="%s Prostate and Testicular Cancers unpublished." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_N_ITEMS_UNPUBLISHED_1="%s Prostate and Testicular Cancer unpublished." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_SUBMENU="Prostate And Testicular Cancers Submenu" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCERS_SUBMENU_DESC="Allows the users in this group to submenu of prostate and testicular cancer" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_CREATED_BY_DESC="The user that created this Prostate and Testicular Cancer." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_CREATED_DATE_DESC="The date this Prostate and Testicular Cancer was created." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_DETAILS="Details" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_EDIT="Editing the Prostate and Testicular Cancer" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_ERROR_UNIQUE_ALIAS="Another Prostate and Testicular Cancer has the same alias." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_ID="Id" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_MODIFIED_BY_DESC="The last user that modified this Prostate and Testicular Cancer." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_MODIFIED_DATE_DESC="The date this Prostate and Testicular Cancer was modified." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_NEW="A New Prostate and Testicular Cancer" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_NO="No" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_PATIENT_LABEL="Patient Name" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_PTC_AGE_DESCRIPTION="Age > 40 years?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_PTC_AGE_LABEL="Age > 40 years?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_PTC_DIET_DESCRIPTION="Do you eat a high fat diet low in fruit and vegetables?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_PTC_DIET_LABEL="Do you eat a high fat diet low in fruit and vegetables?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_PTC_FAM_HISTORY_DESCRIPTION="Do you have a family history of a father, brother or grandfather with prostate or testicular cancer?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_PTC_FAM_HISTORY_LABEL="Do you have a family history of a father, brother or grandfather with prostate or testicular cancer?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_PTC_OVERWEIGHT_DESCRIPTION="Does the patient appear to be overweight?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_PTC_OVERWEIGHT_LABEL="Does the patient appear to be overweight?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_PTC_PHY_ACTIVITY_DESCRIPTION="Do you do regular physical activity?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_PTC_PHY_ACTIVITY_LABEL="Do you do regular physical activity?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_PTC_URINATE_DESCRIPTION="Do you experience difficulty passing urine?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_PTC_URINATE_LABEL="Do you experience difficulty passing urine?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_PTC_URINE_FREQ_DESCRIPTION="Do you pass urine more frequently than usual, especially at night?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_PTC_URINE_FREQ_LABEL="Do you pass urine more frequently than usual, especially at night?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_REASON_DESCRIPTION="Add Reason Here" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_REASON_HINT="Add Reason Here" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_REASON_LABEL="Reason" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_REFERRALS="Referrals" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_REFERRAL_LABEL="Referred to" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Prostate and Testicular Cancer to customise the alias." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_STATUS="Status" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_AGE_DESCRIPTION="Age > 40 years?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_AGE_HINT="Add text here" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_AGE_LABEL="Comments:" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_DIET_DESCRIPTION="Do you eat a high fat diet low in fruit and vegetables?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_DIET_HINT="Add text Here" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_DIET_LABEL="Comments:" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_FAM_HISTORY_DESCRIPTION="Do you have a family history of a father, brother or grandfather with prostate or testicular cancer?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_FAM_HISTORY_HINT="Add text here" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_FAM_HISTORY_LABEL="Comments:" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_OVERWEIGHT_DESCRIPTION="Does the patient appear to be overweight?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_OVERWEIGHT_HINT="Add text Here" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_OVERWEIGHT_LABEL="Comments:" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_PHY_ACTIVITY_DESCRIPTION="Do you do regular physical activity?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_PHY_ACTIVITY_HINT="Add text Here" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_PHY_ACTIVITY_LABEL="Comments:" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_URINATE_DESCRIPTION="Do you experience difficulty passing urine?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_URINATE_HINT="Add text Here" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_URINATE_LABEL="Comments:" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_URINE_FREQ_DESCRIPTION="Do you pass urine more frequently than usual, especially at night?" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_URINE_FREQ_HINT="Add text Here" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_TXT_PTC_URINE_FREQ_LABEL="Comments:" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_VERSION_DESC="A count of the number of times this Prostate and Testicular Cancer has been revised." +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_PROSTATE_AND_TESTICULAR_CANCER_YES="Yes" +COM_EHEALTH_PORTAL_PUBLISHED="Published" +COM_EHEALTH_PORTAL_REFERRAL="Referral" +COM_EHEALTH_PORTAL_REFERRALS="Referrals" +COM_EHEALTH_PORTAL_REFERRALS_ACCESS="Referrals Access" +COM_EHEALTH_PORTAL_REFERRALS_ACCESS_DESC="Allows the users in this group to access access referrals" +COM_EHEALTH_PORTAL_REFERRALS_BATCH_OPTIONS="Batch process the selected Referrals" +COM_EHEALTH_PORTAL_REFERRALS_BATCH_TIP="All changes will be applied to all selected Referrals" +COM_EHEALTH_PORTAL_REFERRALS_BATCH_USE="Referrals Batch Use" +COM_EHEALTH_PORTAL_REFERRALS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch referrals" +COM_EHEALTH_PORTAL_REFERRALS_EDIT_DESCRIPTION="Referrals Edit Description" +COM_EHEALTH_PORTAL_REFERRALS_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of referral" +COM_EHEALTH_PORTAL_REFERRALS_EDIT_NAME="Referrals Edit Name" +COM_EHEALTH_PORTAL_REFERRALS_EDIT_NAME_DESC="Allows the users in this group to edit name of referral" +COM_EHEALTH_PORTAL_REFERRALS_EDIT_VERSION="Referrals Edit Version" +COM_EHEALTH_PORTAL_REFERRALS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version referrals" +COM_EHEALTH_PORTAL_REFERRALS_EXPORT="Referrals Export" +COM_EHEALTH_PORTAL_REFERRALS_EXPORT_DESC="Allows the users in this group to export export referrals" +COM_EHEALTH_PORTAL_REFERRALS_IMPORT="Referrals Import" +COM_EHEALTH_PORTAL_REFERRALS_IMPORT_DESC="Allows the users in this group to import import referrals" +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_ARCHIVED="%s Referrals archived." +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_ARCHIVED_1="%s Referral archived." +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_CHECKED_IN_0="No Referral successfully checked in." +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_CHECKED_IN_1="%d Referral successfully checked in." +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_CHECKED_IN_MORE="%d Referrals successfully checked in." +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_DELETED="%s Referrals deleted." +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_DELETED_1="%s Referral deleted." +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_FAILED_PUBLISHING="%s Referrals failed publishing." +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_FAILED_PUBLISHING_1="%s Referral failed publishing." +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_FEATURED="%s Referrals featured." +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_FEATURED_1="%s Referral featured." +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_PUBLISHED="%s Referrals published." +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_PUBLISHED_1="%s Referral published." +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_TRASHED="%s Referrals trashed." +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_TRASHED_1="%s Referral trashed." +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_UNFEATURED="%s Referrals unfeatured." +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_UNFEATURED_1="%s Referral unfeatured." +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_UNPUBLISHED="%s Referrals unpublished." +COM_EHEALTH_PORTAL_REFERRALS_N_ITEMS_UNPUBLISHED_1="%s Referral unpublished." +COM_EHEALTH_PORTAL_REFERRALS_SUBMENU="Referrals Submenu" +COM_EHEALTH_PORTAL_REFERRALS_SUBMENU_DESC="Allows the users in this group to submenu of referral" +COM_EHEALTH_PORTAL_REFERRAL_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_REFERRAL_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_REFERRAL_CREATED_BY_DESC="The user that created this Referral." +COM_EHEALTH_PORTAL_REFERRAL_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_REFERRAL_CREATED_DATE_DESC="The date this Referral was created." +COM_EHEALTH_PORTAL_REFERRAL_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_REFERRAL_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_REFERRAL_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_REFERRAL_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_REFERRAL_DETAILS="Details" +COM_EHEALTH_PORTAL_REFERRAL_EDIT="Editing the Referral" +COM_EHEALTH_PORTAL_REFERRAL_ERROR_UNIQUE_ALIAS="Another Referral has the same alias." +COM_EHEALTH_PORTAL_REFERRAL_ID="Id" +COM_EHEALTH_PORTAL_REFERRAL_MODIFIED_BY_DESC="The last user that modified this Referral." +COM_EHEALTH_PORTAL_REFERRAL_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_REFERRAL_MODIFIED_DATE_DESC="The date this Referral was modified." +COM_EHEALTH_PORTAL_REFERRAL_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_REFERRAL_NAME_DESCRIPTION="Enter Name Here" +COM_EHEALTH_PORTAL_REFERRAL_NAME_HINT="Name here" +COM_EHEALTH_PORTAL_REFERRAL_NAME_LABEL="Name" +COM_EHEALTH_PORTAL_REFERRAL_NAME_MESSAGE="Error! Please add name here." +COM_EHEALTH_PORTAL_REFERRAL_NEW="A New Referral" +COM_EHEALTH_PORTAL_REFERRAL_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_REFERRAL_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_REFERRAL_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_REFERRAL_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Referral to customise the alias." +COM_EHEALTH_PORTAL_REFERRAL_STATUS="Status" +COM_EHEALTH_PORTAL_REFERRAL_VERSION_DESC="A count of the number of times this Referral has been revised." +COM_EHEALTH_PORTAL_REFERRAL_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_SAVE_SUCCESS="Great! Item successfully saved." +COM_EHEALTH_PORTAL_SAVE_WARNING="The value already existed so please select another." +COM_EHEALTH_PORTAL_SITE="Site" +COM_EHEALTH_PORTAL_SITES="Sites" +COM_EHEALTH_PORTAL_SITES_ACCESS="Sites Access" +COM_EHEALTH_PORTAL_SITES_ACCESS_DESC="Allows the users in this group to access access sites" +COM_EHEALTH_PORTAL_SITES_BATCH_OPTIONS="Batch process the selected Sites" +COM_EHEALTH_PORTAL_SITES_BATCH_TIP="All changes will be applied to all selected Sites" +COM_EHEALTH_PORTAL_SITES_BATCH_USE="Sites Batch Use" +COM_EHEALTH_PORTAL_SITES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch sites" +COM_EHEALTH_PORTAL_SITES_EDIT_DESCRIPTION="Sites Edit Description" +COM_EHEALTH_PORTAL_SITES_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of site" +COM_EHEALTH_PORTAL_SITES_EDIT_SITE_NAME="Sites Edit Site Name" +COM_EHEALTH_PORTAL_SITES_EDIT_SITE_NAME_DESC="Allows the users in this group to edit site name of site" +COM_EHEALTH_PORTAL_SITES_EDIT_SITE_REGION="Sites Edit Site Region" +COM_EHEALTH_PORTAL_SITES_EDIT_SITE_REGION_DESC="Allows the users in this group to edit site region of site" +COM_EHEALTH_PORTAL_SITES_EDIT_VERSION="Sites Edit Version" +COM_EHEALTH_PORTAL_SITES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version sites" +COM_EHEALTH_PORTAL_SITES_EXPORT="Sites Export" +COM_EHEALTH_PORTAL_SITES_EXPORT_DESC="Allows the users in this group to export export sites" +COM_EHEALTH_PORTAL_SITES_IMPORT="Sites Import" +COM_EHEALTH_PORTAL_SITES_IMPORT_DESC="Allows the users in this group to import import sites" +COM_EHEALTH_PORTAL_SITES_N_ITEMS_ARCHIVED="%s Sites archived." +COM_EHEALTH_PORTAL_SITES_N_ITEMS_ARCHIVED_1="%s Site archived." +COM_EHEALTH_PORTAL_SITES_N_ITEMS_CHECKED_IN_0="No Site successfully checked in." +COM_EHEALTH_PORTAL_SITES_N_ITEMS_CHECKED_IN_1="%d Site successfully checked in." +COM_EHEALTH_PORTAL_SITES_N_ITEMS_CHECKED_IN_MORE="%d Sites successfully checked in." +COM_EHEALTH_PORTAL_SITES_N_ITEMS_DELETED="%s Sites deleted." +COM_EHEALTH_PORTAL_SITES_N_ITEMS_DELETED_1="%s Site deleted." +COM_EHEALTH_PORTAL_SITES_N_ITEMS_FAILED_PUBLISHING="%s Sites failed publishing." +COM_EHEALTH_PORTAL_SITES_N_ITEMS_FAILED_PUBLISHING_1="%s Site failed publishing." +COM_EHEALTH_PORTAL_SITES_N_ITEMS_FEATURED="%s Sites featured." +COM_EHEALTH_PORTAL_SITES_N_ITEMS_FEATURED_1="%s Site featured." +COM_EHEALTH_PORTAL_SITES_N_ITEMS_PUBLISHED="%s Sites published." +COM_EHEALTH_PORTAL_SITES_N_ITEMS_PUBLISHED_1="%s Site published." +COM_EHEALTH_PORTAL_SITES_N_ITEMS_TRASHED="%s Sites trashed." +COM_EHEALTH_PORTAL_SITES_N_ITEMS_TRASHED_1="%s Site trashed." +COM_EHEALTH_PORTAL_SITES_N_ITEMS_UNFEATURED="%s Sites unfeatured." +COM_EHEALTH_PORTAL_SITES_N_ITEMS_UNFEATURED_1="%s Site unfeatured." +COM_EHEALTH_PORTAL_SITES_N_ITEMS_UNPUBLISHED="%s Sites unpublished." +COM_EHEALTH_PORTAL_SITES_N_ITEMS_UNPUBLISHED_1="%s Site unpublished." +COM_EHEALTH_PORTAL_SITE_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_SITE_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_SITE_CREATED_BY_DESC="The user that created this Site." +COM_EHEALTH_PORTAL_SITE_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_SITE_CREATED_DATE_DESC="The date this Site was created." +COM_EHEALTH_PORTAL_SITE_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_SITE_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_SITE_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_SITE_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_SITE_DETAILS="Details" +COM_EHEALTH_PORTAL_SITE_EDIT="Editing the Site" +COM_EHEALTH_PORTAL_SITE_ERROR_UNIQUE_ALIAS="Another Site has the same alias." +COM_EHEALTH_PORTAL_SITE_ID="Id" +COM_EHEALTH_PORTAL_SITE_MODIFIED_BY_DESC="The last user that modified this Site." +COM_EHEALTH_PORTAL_SITE_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_SITE_MODIFIED_DATE_DESC="The date this Site was modified." +COM_EHEALTH_PORTAL_SITE_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_SITE_NEW="A New Site" +COM_EHEALTH_PORTAL_SITE_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_SITE_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_SITE_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_SITE_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Site to customise the alias." +COM_EHEALTH_PORTAL_SITE_SITE_NAME_DESCRIPTION="Enter Site Name Here" +COM_EHEALTH_PORTAL_SITE_SITE_NAME_HINT="Site Name Here" +COM_EHEALTH_PORTAL_SITE_SITE_NAME_LABEL="Site Name" +COM_EHEALTH_PORTAL_SITE_SITE_NAME_MESSAGE="Error! Please add Site Name here." +COM_EHEALTH_PORTAL_SITE_SITE_REGION_DESCRIPTION="Enter Site Region Here" +COM_EHEALTH_PORTAL_SITE_SITE_REGION_HINT="Site Region Here" +COM_EHEALTH_PORTAL_SITE_SITE_REGION_LABEL="Site Region" +COM_EHEALTH_PORTAL_SITE_SITE_REGION_MESSAGE="Error! Please add Site Region here." +COM_EHEALTH_PORTAL_SITE_STATUS="Status" +COM_EHEALTH_PORTAL_SITE_VERSION_DESC="A count of the number of times this Site has been revised." +COM_EHEALTH_PORTAL_SITE_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_STRENGTH="Strength" +COM_EHEALTH_PORTAL_STRENGTHS="Strengths" +COM_EHEALTH_PORTAL_STRENGTHS_ACCESS="Strengths Access" +COM_EHEALTH_PORTAL_STRENGTHS_ACCESS_DESC="Allows the users in this group to access access strengths" +COM_EHEALTH_PORTAL_STRENGTHS_BATCH_OPTIONS="Batch process the selected Strengths" +COM_EHEALTH_PORTAL_STRENGTHS_BATCH_TIP="All changes will be applied to all selected Strengths" +COM_EHEALTH_PORTAL_STRENGTHS_BATCH_USE="Strengths Batch Use" +COM_EHEALTH_PORTAL_STRENGTHS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch strengths" +COM_EHEALTH_PORTAL_STRENGTHS_EDIT_DESCRIPTION="Strengths Edit Description" +COM_EHEALTH_PORTAL_STRENGTHS_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of strength" +COM_EHEALTH_PORTAL_STRENGTHS_EDIT_NAME="Strengths Edit Name" +COM_EHEALTH_PORTAL_STRENGTHS_EDIT_NAME_DESC="Allows the users in this group to edit name of strength" +COM_EHEALTH_PORTAL_STRENGTHS_EDIT_VERSION="Strengths Edit Version" +COM_EHEALTH_PORTAL_STRENGTHS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version strengths" +COM_EHEALTH_PORTAL_STRENGTHS_EXPORT="Strengths Export" +COM_EHEALTH_PORTAL_STRENGTHS_EXPORT_DESC="Allows the users in this group to export export strengths" +COM_EHEALTH_PORTAL_STRENGTHS_IMPORT="Strengths Import" +COM_EHEALTH_PORTAL_STRENGTHS_IMPORT_DESC="Allows the users in this group to import import strengths" +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_ARCHIVED="%s Strengths archived." +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_ARCHIVED_1="%s Strength archived." +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_CHECKED_IN_0="No Strength successfully checked in." +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_CHECKED_IN_1="%d Strength successfully checked in." +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_CHECKED_IN_MORE="%d Strengths successfully checked in." +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_DELETED="%s Strengths deleted." +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_DELETED_1="%s Strength deleted." +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_FAILED_PUBLISHING="%s Strengths failed publishing." +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_FAILED_PUBLISHING_1="%s Strength failed publishing." +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_FEATURED="%s Strengths featured." +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_FEATURED_1="%s Strength featured." +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_PUBLISHED="%s Strengths published." +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_PUBLISHED_1="%s Strength published." +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_TRASHED="%s Strengths trashed." +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_TRASHED_1="%s Strength trashed." +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_UNFEATURED="%s Strengths unfeatured." +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_UNFEATURED_1="%s Strength unfeatured." +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_UNPUBLISHED="%s Strengths unpublished." +COM_EHEALTH_PORTAL_STRENGTHS_N_ITEMS_UNPUBLISHED_1="%s Strength unpublished." +COM_EHEALTH_PORTAL_STRENGTHS_SUBMENU="Strengths Submenu" +COM_EHEALTH_PORTAL_STRENGTHS_SUBMENU_DESC="Allows the users in this group to submenu of strength" +COM_EHEALTH_PORTAL_STRENGTH_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_STRENGTH_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_STRENGTH_CREATED_BY_DESC="The user that created this Strength." +COM_EHEALTH_PORTAL_STRENGTH_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_STRENGTH_CREATED_DATE_DESC="The date this Strength was created." +COM_EHEALTH_PORTAL_STRENGTH_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_STRENGTH_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_STRENGTH_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_STRENGTH_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_STRENGTH_DETAILS="Details" +COM_EHEALTH_PORTAL_STRENGTH_EDIT="Editing the Strength" +COM_EHEALTH_PORTAL_STRENGTH_ERROR_UNIQUE_ALIAS="Another Strength has the same alias." +COM_EHEALTH_PORTAL_STRENGTH_ID="Id" +COM_EHEALTH_PORTAL_STRENGTH_MODIFIED_BY_DESC="The last user that modified this Strength." +COM_EHEALTH_PORTAL_STRENGTH_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_STRENGTH_MODIFIED_DATE_DESC="The date this Strength was modified." +COM_EHEALTH_PORTAL_STRENGTH_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_STRENGTH_NAME_DESCRIPTION="Enter Name Here" +COM_EHEALTH_PORTAL_STRENGTH_NAME_HINT="Name here" +COM_EHEALTH_PORTAL_STRENGTH_NAME_LABEL="Name" +COM_EHEALTH_PORTAL_STRENGTH_NAME_MESSAGE="Error! Please add name here." +COM_EHEALTH_PORTAL_STRENGTH_NEW="A New Strength" +COM_EHEALTH_PORTAL_STRENGTH_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_STRENGTH_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_STRENGTH_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_STRENGTH_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Strength to customise the alias." +COM_EHEALTH_PORTAL_STRENGTH_STATUS="Status" +COM_EHEALTH_PORTAL_STRENGTH_VERSION_DESC="A count of the number of times this Strength has been revised." +COM_EHEALTH_PORTAL_STRENGTH_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_SUBMENU_ADMINISTRATION_PARTS="Administration Parts" +COM_EHEALTH_PORTAL_SUBMENU_ANTENATAL_CARES="Antenatal Cares" +COM_EHEALTH_PORTAL_SUBMENU_BREAST_CANCERS="Breast Cancers" +COM_EHEALTH_PORTAL_SUBMENU_CERVICAL_CANCERS="Cervical Cancers" +COM_EHEALTH_PORTAL_SUBMENU_DASHBOARD="Dashboard" +COM_EHEALTH_PORTAL_SUBMENU_FAMILY_PLANNINGS="Family Plannings" +COM_EHEALTH_PORTAL_SUBMENU_GENERAL_MEDICAL_CHECK_UPS="General Medical Check Ups" +COM_EHEALTH_PORTAL_SUBMENU_HEALTH_EDUCATIONS="Health Educations" +COM_EHEALTH_PORTAL_SUBMENU_HIV_COUNSELINGS_AND_TESTINGS="HIV Counselings and Testings" +COM_EHEALTH_PORTAL_SUBMENU_IMMUNISATIONS="Immunisations" +COM_EHEALTH_PORTAL_SUBMENU_IMMUNISATION_VACCINE_TYPES="Immunisation Vaccine Types" +COM_EHEALTH_PORTAL_SUBMENU_MEDICATIONS="Medications" +COM_EHEALTH_PORTAL_SUBMENU_PATIENT_QUEUE="Patient Queue" +COM_EHEALTH_PORTAL_SUBMENU_PAYMENTS="Payments" +COM_EHEALTH_PORTAL_SUBMENU_PROSTATE_AND_TESTICULAR_CANCERS="Prostate and Testicular Cancers" +COM_EHEALTH_PORTAL_SUBMENU_REFERRALS="Referrals" +COM_EHEALTH_PORTAL_SUBMENU_STRENGTHS="Strengths" +COM_EHEALTH_PORTAL_SUBMENU_TESTS="Tests" +COM_EHEALTH_PORTAL_SUBMENU_TUBERCULOSES="Tuberculoses" +COM_EHEALTH_PORTAL_SUBMENU_UNITS="Units" +COM_EHEALTH_PORTAL_SUBMENU_VMMCS="VMMCs" +COM_EHEALTH_PORTAL_TEST="Test" +COM_EHEALTH_PORTAL_TESTING_REASON="Testing Reason" +COM_EHEALTH_PORTAL_TESTING_REASONS="Testing Reasons" +COM_EHEALTH_PORTAL_TESTING_REASONS_ACCESS="Testing Reasons Access" +COM_EHEALTH_PORTAL_TESTING_REASONS_ACCESS_DESC="Allows the users in this group to access access testing reasons" +COM_EHEALTH_PORTAL_TESTING_REASONS_BATCH_OPTIONS="Batch process the selected Testing Reasons" +COM_EHEALTH_PORTAL_TESTING_REASONS_BATCH_TIP="All changes will be applied to all selected Testing Reasons" +COM_EHEALTH_PORTAL_TESTING_REASONS_BATCH_USE="Testing Reasons Batch Use" +COM_EHEALTH_PORTAL_TESTING_REASONS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch testing reasons" +COM_EHEALTH_PORTAL_TESTING_REASONS_EDIT_DESCRIPTION="Testing Reasons Edit Description" +COM_EHEALTH_PORTAL_TESTING_REASONS_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of testing reason" +COM_EHEALTH_PORTAL_TESTING_REASONS_EDIT_NAME="Testing Reasons Edit Name" +COM_EHEALTH_PORTAL_TESTING_REASONS_EDIT_NAME_DESC="Allows the users in this group to edit name of testing reason" +COM_EHEALTH_PORTAL_TESTING_REASONS_EDIT_VERSION="Testing Reasons Edit Version" +COM_EHEALTH_PORTAL_TESTING_REASONS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version testing reasons" +COM_EHEALTH_PORTAL_TESTING_REASONS_EXPORT="Testing Reasons Export" +COM_EHEALTH_PORTAL_TESTING_REASONS_EXPORT_DESC="Allows the users in this group to export export testing reasons" +COM_EHEALTH_PORTAL_TESTING_REASONS_IMPORT="Testing Reasons Import" +COM_EHEALTH_PORTAL_TESTING_REASONS_IMPORT_DESC="Allows the users in this group to import import testing reasons" +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_ARCHIVED="%s Testing Reasons archived." +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_ARCHIVED_1="%s Testing Reason archived." +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_CHECKED_IN_0="No Testing Reason successfully checked in." +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_CHECKED_IN_1="%d Testing Reason successfully checked in." +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_CHECKED_IN_MORE="%d Testing Reasons successfully checked in." +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_DELETED="%s Testing Reasons deleted." +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_DELETED_1="%s Testing Reason deleted." +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_FAILED_PUBLISHING="%s Testing Reasons failed publishing." +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_FAILED_PUBLISHING_1="%s Testing Reason failed publishing." +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_FEATURED="%s Testing Reasons featured." +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_FEATURED_1="%s Testing Reason featured." +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_PUBLISHED="%s Testing Reasons published." +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_PUBLISHED_1="%s Testing Reason published." +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_TRASHED="%s Testing Reasons trashed." +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_TRASHED_1="%s Testing Reason trashed." +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_UNFEATURED="%s Testing Reasons unfeatured." +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_UNFEATURED_1="%s Testing Reason unfeatured." +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_UNPUBLISHED="%s Testing Reasons unpublished." +COM_EHEALTH_PORTAL_TESTING_REASONS_N_ITEMS_UNPUBLISHED_1="%s Testing Reason unpublished." +COM_EHEALTH_PORTAL_TESTING_REASON_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_TESTING_REASON_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_TESTING_REASON_CREATED_BY_DESC="The user that created this Testing Reason." +COM_EHEALTH_PORTAL_TESTING_REASON_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_TESTING_REASON_CREATED_DATE_DESC="The date this Testing Reason was created." +COM_EHEALTH_PORTAL_TESTING_REASON_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_TESTING_REASON_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_TESTING_REASON_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_TESTING_REASON_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_TESTING_REASON_DETAILS="Details" +COM_EHEALTH_PORTAL_TESTING_REASON_EDIT="Editing the Testing Reason" +COM_EHEALTH_PORTAL_TESTING_REASON_ERROR_UNIQUE_ALIAS="Another Testing Reason has the same alias." +COM_EHEALTH_PORTAL_TESTING_REASON_ID="Id" +COM_EHEALTH_PORTAL_TESTING_REASON_MODIFIED_BY_DESC="The last user that modified this Testing Reason." +COM_EHEALTH_PORTAL_TESTING_REASON_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_TESTING_REASON_MODIFIED_DATE_DESC="The date this Testing Reason was modified." +COM_EHEALTH_PORTAL_TESTING_REASON_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_TESTING_REASON_NAME_DESCRIPTION="Enter Name Here" +COM_EHEALTH_PORTAL_TESTING_REASON_NAME_HINT="Name here" +COM_EHEALTH_PORTAL_TESTING_REASON_NAME_LABEL="Name" +COM_EHEALTH_PORTAL_TESTING_REASON_NAME_MESSAGE="Error! Please add name here." +COM_EHEALTH_PORTAL_TESTING_REASON_NEW="A New Testing Reason" +COM_EHEALTH_PORTAL_TESTING_REASON_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_TESTING_REASON_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_TESTING_REASON_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_TESTING_REASON_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Testing Reason to customise the alias." +COM_EHEALTH_PORTAL_TESTING_REASON_STATUS="Status" +COM_EHEALTH_PORTAL_TESTING_REASON_VERSION_DESC="A count of the number of times this Testing Reason has been revised." +COM_EHEALTH_PORTAL_TESTING_REASON_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_TESTS="Tests" +COM_EHEALTH_PORTAL_TESTS_ACCESS="Tests Access" +COM_EHEALTH_PORTAL_TESTS_ACCESS_DESC="Allows the users in this group to access access tests" +COM_EHEALTH_PORTAL_TESTS_BATCH_OPTIONS="Batch process the selected Tests" +COM_EHEALTH_PORTAL_TESTS_BATCH_TIP="All changes will be applied to all selected Tests" +COM_EHEALTH_PORTAL_TESTS_BATCH_USE="Tests Batch Use" +COM_EHEALTH_PORTAL_TESTS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch tests" +COM_EHEALTH_PORTAL_TESTS_DASHBOARD_ADD="Tests Dashboard Add" +COM_EHEALTH_PORTAL_TESTS_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of test" +COM_EHEALTH_PORTAL_TESTS_DASHBOARD_LIST="Tests Dashboard List" +COM_EHEALTH_PORTAL_TESTS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of test" +COM_EHEALTH_PORTAL_TESTS_EDIT_VERSION="Tests Edit Version" +COM_EHEALTH_PORTAL_TESTS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version tests" +COM_EHEALTH_PORTAL_TESTS_EXPORT="Tests Export" +COM_EHEALTH_PORTAL_TESTS_EXPORT_DESC="Allows the users in this group to export export tests" +COM_EHEALTH_PORTAL_TESTS_IMPORT="Tests Import" +COM_EHEALTH_PORTAL_TESTS_IMPORT_DESC="Allows the users in this group to import import tests" +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_ARCHIVED="%s Tests archived." +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_ARCHIVED_1="%s Test archived." +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_CHECKED_IN_0="No Test successfully checked in." +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_CHECKED_IN_1="%d Test successfully checked in." +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_CHECKED_IN_MORE="%d Tests successfully checked in." +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_DELETED="%s Tests deleted." +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_DELETED_1="%s Test deleted." +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_FAILED_PUBLISHING="%s Tests failed publishing." +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_FAILED_PUBLISHING_1="%s Test failed publishing." +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_FEATURED="%s Tests featured." +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_FEATURED_1="%s Test featured." +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_PUBLISHED="%s Tests published." +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_PUBLISHED_1="%s Test published." +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_TRASHED="%s Tests trashed." +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_TRASHED_1="%s Test trashed." +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_UNFEATURED="%s Tests unfeatured." +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_UNFEATURED_1="%s Test unfeatured." +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_UNPUBLISHED="%s Tests unpublished." +COM_EHEALTH_PORTAL_TESTS_N_ITEMS_UNPUBLISHED_1="%s Test unpublished." +COM_EHEALTH_PORTAL_TESTS_SUBMENU="Tests Submenu" +COM_EHEALTH_PORTAL_TESTS_SUBMENU_DESC="Allows the users in this group to submenu of test" +COM_EHEALTH_PORTAL_TEST_ABNORMAL="Abnormal" +COM_EHEALTH_PORTAL_TEST_CHOLESTEROL="Cholesterol" +COM_EHEALTH_PORTAL_TEST_CHOLESTEROL_READING_DESCRIPTION="Enter Cholesterol reading (g/dL)" +COM_EHEALTH_PORTAL_TEST_CHOLESTEROL_READING_HINT="Your Cholesterol reading (g/dL) Here" +COM_EHEALTH_PORTAL_TEST_CHOLESTEROL_READING_LABEL="Cholesterol reading (g/dL):" +COM_EHEALTH_PORTAL_TEST_CREATED_BY_DESC="The user that created this Test." +COM_EHEALTH_PORTAL_TEST_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_TEST_CREATED_DATE_DESC="The date this Test was created." +COM_EHEALTH_PORTAL_TEST_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_TEST_EDIT="Editing the Test" +COM_EHEALTH_PORTAL_TEST_ERROR_UNIQUE_ALIAS="Another Test has the same alias." +COM_EHEALTH_PORTAL_TEST_GLUCOSE="Glucose" +COM_EHEALTH_PORTAL_TEST_GLUCOSE_FIRST_READING_DESCRIPTION="Enter Glucose 1st reading (mmol/L)" +COM_EHEALTH_PORTAL_TEST_GLUCOSE_FIRST_READING_HINT="Your Glucose 1st reading (mmol/L) Here" +COM_EHEALTH_PORTAL_TEST_GLUCOSE_FIRST_READING_LABEL="1st reading (mmol/L)" +COM_EHEALTH_PORTAL_TEST_GLUCOSE_SECOND_READING_DESCRIPTION="Enter Glucose 2nd reading (mmol/L)" +COM_EHEALTH_PORTAL_TEST_GLUCOSE_SECOND_READING_HINT="Your Glucose 2nd reading (mmol/L) Here" +COM_EHEALTH_PORTAL_TEST_GLUCOSE_SECOND_READING_LABEL="2nd reading (mmol/L):" +COM_EHEALTH_PORTAL_TEST_HAEMOGLOBIN="Haemoglobin" +COM_EHEALTH_PORTAL_TEST_HAEMOGLOBIN_READING_DESCRIPTION="Enter Haemoglobin reading (g/dL)" +COM_EHEALTH_PORTAL_TEST_HAEMOGLOBIN_READING_HINT="Your Haemoglobin reading (g/dL) Here" +COM_EHEALTH_PORTAL_TEST_HAEMOGLOBIN_READING_LABEL="Haemoglobin reading (g/dL):" +COM_EHEALTH_PORTAL_TEST_HEPATITIS_B="Hepatitis B" +COM_EHEALTH_PORTAL_TEST_HEPATITIS_FIRST_READING_DESCRIPTION="1st reading" +COM_EHEALTH_PORTAL_TEST_HEPATITIS_FIRST_READING_LABEL="1st reading:" +COM_EHEALTH_PORTAL_TEST_HEPATITIS_SECOND_READING_DESCRIPTION="2nd reading" +COM_EHEALTH_PORTAL_TEST_HEPATITIS_SECOND_READING_LABEL="2nd reading:" +COM_EHEALTH_PORTAL_TEST_ID="Id" +COM_EHEALTH_PORTAL_TEST_INCONCLUSIVE="Inconclusive" +COM_EHEALTH_PORTAL_TEST_MALARIA="Malaria" +COM_EHEALTH_PORTAL_TEST_MALARIA_FIRST_READING_DESCRIPTION="1st reading" +COM_EHEALTH_PORTAL_TEST_MALARIA_FIRST_READING_LABEL="1st reading:" +COM_EHEALTH_PORTAL_TEST_MALARIA_SECOND_READING_DESCRIPTION="2nd reading" +COM_EHEALTH_PORTAL_TEST_MALARIA_SECOND_READING_LABEL="2nd reading:" +COM_EHEALTH_PORTAL_TEST_MODIFIED_BY_DESC="The last user that modified this Test." +COM_EHEALTH_PORTAL_TEST_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_TEST_MODIFIED_DATE_DESC="The date this Test was modified." +COM_EHEALTH_PORTAL_TEST_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_TEST_NEGATIVE="Negative" +COM_EHEALTH_PORTAL_TEST_NEW="A New Test" +COM_EHEALTH_PORTAL_TEST_NORMAL="Normal" +COM_EHEALTH_PORTAL_TEST_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_TEST_PATIENT_LABEL="Patient Name" +COM_EHEALTH_PORTAL_TEST_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_TEST_POSITIVE="Positive" +COM_EHEALTH_PORTAL_TEST_PREGNANCY="Pregnancy" +COM_EHEALTH_PORTAL_TEST_PREGNANCY_FIRST_READING_DESCRIPTION="1st reading" +COM_EHEALTH_PORTAL_TEST_PREGNANCY_FIRST_READING_LABEL="1st reading:" +COM_EHEALTH_PORTAL_TEST_PREGNANCY_SECOND_READING_DESCRIPTION="2nd reading" +COM_EHEALTH_PORTAL_TEST_PREGNANCY_SECOND_READING_LABEL="2nd reading:" +COM_EHEALTH_PORTAL_TEST_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_TEST_REASON_DESCRIPTION="Add Reason Here" +COM_EHEALTH_PORTAL_TEST_REASON_HINT="Add Reason Here" +COM_EHEALTH_PORTAL_TEST_REASON_LABEL="Reason" +COM_EHEALTH_PORTAL_TEST_REFERRALS="Referrals" +COM_EHEALTH_PORTAL_TEST_REFERRAL_LABEL="Referred to" +COM_EHEALTH_PORTAL_TEST_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Test to customise the alias." +COM_EHEALTH_PORTAL_TEST_STATUS="Status" +COM_EHEALTH_PORTAL_TEST_SYPHILIS_FIRST_READING_DESCRIPTION="1st reading" +COM_EHEALTH_PORTAL_TEST_SYPHILIS_FIRST_READING_LABEL="1st reading:" +COM_EHEALTH_PORTAL_TEST_SYPHILIS_SECOND_READING_DESCRIPTION="2nd reading" +COM_EHEALTH_PORTAL_TEST_SYPHILIS_SECOND_READING_LABEL="2nd reading:" +COM_EHEALTH_PORTAL_TEST_SYPHILLIS="Syphillis" +COM_EHEALTH_PORTAL_TEST_URINE="Urine" +COM_EHEALTH_PORTAL_TEST_URINE_TEST_RESULT_DESCRIPTION="Urine test result" +COM_EHEALTH_PORTAL_TEST_URINE_TEST_RESULT_LABEL="Urine test result" +COM_EHEALTH_PORTAL_TEST_VERSION_DESC="A count of the number of times this Test has been revised." +COM_EHEALTH_PORTAL_TEST_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_TRASHED="Trashed" +COM_EHEALTH_PORTAL_TUBERCULOSES="Tuberculoses" +COM_EHEALTH_PORTAL_TUBERCULOSES_ACCESS="Tuberculoses Access" +COM_EHEALTH_PORTAL_TUBERCULOSES_ACCESS_DESC="Allows the users in this group to access access tuberculoses" +COM_EHEALTH_PORTAL_TUBERCULOSES_BATCH_OPTIONS="Batch process the selected Tuberculoses" +COM_EHEALTH_PORTAL_TUBERCULOSES_BATCH_TIP="All changes will be applied to all selected Tuberculoses" +COM_EHEALTH_PORTAL_TUBERCULOSES_BATCH_USE="Tuberculoses Batch Use" +COM_EHEALTH_PORTAL_TUBERCULOSES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch tuberculoses" +COM_EHEALTH_PORTAL_TUBERCULOSES_DASHBOARD_ADD="Tuberculoses Dashboard Add" +COM_EHEALTH_PORTAL_TUBERCULOSES_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of tuberculosis" +COM_EHEALTH_PORTAL_TUBERCULOSES_DASHBOARD_LIST="Tuberculoses Dashboard List" +COM_EHEALTH_PORTAL_TUBERCULOSES_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of tuberculosis" +COM_EHEALTH_PORTAL_TUBERCULOSES_EDIT_PATIENT="Tuberculoses Edit Patient" +COM_EHEALTH_PORTAL_TUBERCULOSES_EDIT_PATIENT_DESC="Allows the users in this group to edit patient of tuberculosis" +COM_EHEALTH_PORTAL_TUBERCULOSES_EDIT_VERSION="Tuberculoses Edit Version" +COM_EHEALTH_PORTAL_TUBERCULOSES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version tuberculoses" +COM_EHEALTH_PORTAL_TUBERCULOSES_EXPORT="Tuberculoses Export" +COM_EHEALTH_PORTAL_TUBERCULOSES_EXPORT_DESC="Allows the users in this group to export export tuberculoses" +COM_EHEALTH_PORTAL_TUBERCULOSES_IMPORT="Tuberculoses Import" +COM_EHEALTH_PORTAL_TUBERCULOSES_IMPORT_DESC="Allows the users in this group to import import tuberculoses" +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_ARCHIVED="%s Tuberculoses archived." +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_ARCHIVED_1="%s Tuberculosis archived." +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_CHECKED_IN_0="No Tuberculosis successfully checked in." +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_CHECKED_IN_1="%d Tuberculosis successfully checked in." +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_CHECKED_IN_MORE="%d Tuberculoses successfully checked in." +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_DELETED="%s Tuberculoses deleted." +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_DELETED_1="%s Tuberculosis deleted." +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_FAILED_PUBLISHING="%s Tuberculoses failed publishing." +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_FAILED_PUBLISHING_1="%s Tuberculosis failed publishing." +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_FEATURED="%s Tuberculoses featured." +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_FEATURED_1="%s Tuberculosis featured." +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_PUBLISHED="%s Tuberculoses published." +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_PUBLISHED_1="%s Tuberculosis published." +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_TRASHED="%s Tuberculoses trashed." +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_TRASHED_1="%s Tuberculosis trashed." +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_UNFEATURED="%s Tuberculoses unfeatured." +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_UNFEATURED_1="%s Tuberculosis unfeatured." +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_UNPUBLISHED="%s Tuberculoses unpublished." +COM_EHEALTH_PORTAL_TUBERCULOSES_N_ITEMS_UNPUBLISHED_1="%s Tuberculosis unpublished." +COM_EHEALTH_PORTAL_TUBERCULOSES_SUBMENU="Tuberculoses Submenu" +COM_EHEALTH_PORTAL_TUBERCULOSES_SUBMENU_DESC="Allows the users in this group to submenu of tuberculosis" +COM_EHEALTH_PORTAL_TUBERCULOSIS="Tuberculosis" +COM_EHEALTH_PORTAL_TUBERCULOSIS_BLOOD_STREAKED_SPUTUM_DESCRIPTION="Coughing blood-streaked sputum" +COM_EHEALTH_PORTAL_TUBERCULOSIS_BLOOD_STREAKED_SPUTUM_LABEL="Coughing blood-streaked sputum" +COM_EHEALTH_PORTAL_TUBERCULOSIS_CREATED_BY_DESC="The user that created this Tuberculosis." +COM_EHEALTH_PORTAL_TUBERCULOSIS_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_TUBERCULOSIS_CREATED_DATE_DESC="The date this Tuberculosis was created." +COM_EHEALTH_PORTAL_TUBERCULOSIS_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_TUBERCULOSIS_DATE_OF_TREATMENT_DESCRIPTION="Enter date/year of treatment" +COM_EHEALTH_PORTAL_TUBERCULOSIS_DATE_OF_TREATMENT_LABEL="Date/year of treatment" +COM_EHEALTH_PORTAL_TUBERCULOSIS_DIAGNOSED_WITH_DISEASE_DESCRIPTION="Have you been recently diagnosed with diabetes, halitosis, HIV, renal/liver disease?" +COM_EHEALTH_PORTAL_TUBERCULOSIS_DIAGNOSED_WITH_DISEASE_LABEL="Have you been recently diagnosed with diabetes, halitosis, HIV, renal/liver disease?" +COM_EHEALTH_PORTAL_TUBERCULOSIS_EDIT="Editing the Tuberculosis" +COM_EHEALTH_PORTAL_TUBERCULOSIS_ERROR_UNIQUE_ALIAS="Another Tuberculosis has the same alias." +COM_EHEALTH_PORTAL_TUBERCULOSIS_ID="Id" +COM_EHEALTH_PORTAL_TUBERCULOSIS_INCONCLUSIVE="Inconclusive" +COM_EHEALTH_PORTAL_TUBERCULOSIS_MODIFIED_BY_DESC="The last user that modified this Tuberculosis." +COM_EHEALTH_PORTAL_TUBERCULOSIS_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_TUBERCULOSIS_MODIFIED_DATE_DESC="The date this Tuberculosis was modified." +COM_EHEALTH_PORTAL_TUBERCULOSIS_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_TUBERCULOSIS_NEGATIVE="Negative" +COM_EHEALTH_PORTAL_TUBERCULOSIS_NEW="A New Tuberculosis" +COM_EHEALTH_PORTAL_TUBERCULOSIS_NO="No" +COM_EHEALTH_PORTAL_TUBERCULOSIS_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_TUBERCULOSIS_PAIN_IN_CHEST_DESCRIPTION="Pain in chest when breathing or coughing" +COM_EHEALTH_PORTAL_TUBERCULOSIS_PAIN_IN_CHEST_LABEL="Pain in chest when breathing or coughing" +COM_EHEALTH_PORTAL_TUBERCULOSIS_PATIENT_LABEL="Patient Name" +COM_EHEALTH_PORTAL_TUBERCULOSIS_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_TUBERCULOSIS_PERSISTENT_COUGH_DESCRIPTION="Persistent cough of > 1 month duration" +COM_EHEALTH_PORTAL_TUBERCULOSIS_PERSISTENT_COUGH_LABEL="Persistent cough of > 1 month duration" +COM_EHEALTH_PORTAL_TUBERCULOSIS_POSITIVE="Positive" +COM_EHEALTH_PORTAL_TUBERCULOSIS_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_TUBERCULOSIS_REASON_DESCRIPTION="Add Reason Here" +COM_EHEALTH_PORTAL_TUBERCULOSIS_REASON_HINT="Add Reason Here" +COM_EHEALTH_PORTAL_TUBERCULOSIS_REASON_LABEL="Reason" +COM_EHEALTH_PORTAL_TUBERCULOSIS_RECURRING_NIGHT_SWEATS_DESCRIPTION="Recurring night sweats during previous month" +COM_EHEALTH_PORTAL_TUBERCULOSIS_RECURRING_NIGHT_SWEATS_LABEL="Recurring night sweats during previous month" +COM_EHEALTH_PORTAL_TUBERCULOSIS_REFERRALS="Referrals" +COM_EHEALTH_PORTAL_TUBERCULOSIS_REFERRAL_LABEL="Referred to" +COM_EHEALTH_PORTAL_TUBERCULOSIS_REFERRED_SECOND_SPUTUM_DESCRIPTION="Referred for 2nd sputum" +COM_EHEALTH_PORTAL_TUBERCULOSIS_REFERRED_SECOND_SPUTUM_LABEL="Referred for 2nd sputum" +COM_EHEALTH_PORTAL_TUBERCULOSIS_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Tuberculosis to customise the alias." +COM_EHEALTH_PORTAL_TUBERCULOSIS_SCREENING="Screening" +COM_EHEALTH_PORTAL_TUBERCULOSIS_SHORTNESS_OF_BREATH_DESCRIPTION="Shortness of breath (SOB) with increasing severity and frequency" +COM_EHEALTH_PORTAL_TUBERCULOSIS_SHORTNESS_OF_BREATH_LABEL="Shortness of breath (SOB) with increasing severity and frequency" +COM_EHEALTH_PORTAL_TUBERCULOSIS_SPUTUM_COLLECTION="Sputum Collection" +COM_EHEALTH_PORTAL_TUBERCULOSIS_SPUTUM_COLLECTION_ONE_DESCRIPTION="1st Sputum collected" +COM_EHEALTH_PORTAL_TUBERCULOSIS_SPUTUM_COLLECTION_ONE_LABEL="1st Sputum collected" +COM_EHEALTH_PORTAL_TUBERCULOSIS_SPUTUM_RESULT_ONE_DESCRIPTION="1st Sputum result" +COM_EHEALTH_PORTAL_TUBERCULOSIS_SPUTUM_RESULT_ONE_LABEL="1st Sputum result" +COM_EHEALTH_PORTAL_TUBERCULOSIS_SPUTUM_RESULT_TWO_DESCRIPTION="2nd Sputum result" +COM_EHEALTH_PORTAL_TUBERCULOSIS_SPUTUM_RESULT_TWO_LABEL="2nd Sputum result" +COM_EHEALTH_PORTAL_TUBERCULOSIS_STATUS="Status" +COM_EHEALTH_PORTAL_TUBERCULOSIS_TB_EXPOSED_DESCRIPTION="Have you recently been exposed to: a patient(s), colleague, close relative with suspected or confirmed active TB?" +COM_EHEALTH_PORTAL_TUBERCULOSIS_TB_EXPOSED_LABEL="Have you recently been exposed to: a patient(s), colleague, close relative with suspected or confirmed active TB?" +COM_EHEALTH_PORTAL_TUBERCULOSIS_TB_FEVER_DESCRIPTION="Fever lasting > 1 month" +COM_EHEALTH_PORTAL_TUBERCULOSIS_TB_FEVER_LABEL="Fever lasting > 1 month" +COM_EHEALTH_PORTAL_TUBERCULOSIS_TB_REASON_ONE_DESCRIPTION="Enter Reason" +COM_EHEALTH_PORTAL_TUBERCULOSIS_TB_REASON_ONE_HINT="Your Reason Here" +COM_EHEALTH_PORTAL_TUBERCULOSIS_TB_REASON_ONE_LABEL="Reason" +COM_EHEALTH_PORTAL_TUBERCULOSIS_TB_REASON_ONE_MESSAGE="Error! Please add some text here." +COM_EHEALTH_PORTAL_TUBERCULOSIS_TB_REASON_TWO_DESCRIPTION="Enter Reason" +COM_EHEALTH_PORTAL_TUBERCULOSIS_TB_REASON_TWO_HINT="Your Reason Here" +COM_EHEALTH_PORTAL_TUBERCULOSIS_TB_REASON_TWO_LABEL="Reason" +COM_EHEALTH_PORTAL_TUBERCULOSIS_TB_REASON_TWO_MESSAGE="Error! Please add some text here." +COM_EHEALTH_PORTAL_TUBERCULOSIS_TB_TREATMENT_DESCRIPTION="Have you ever been treated for TB before?" +COM_EHEALTH_PORTAL_TUBERCULOSIS_TB_TREATMENT_LABEL="Have you ever been treated for TB before?" +COM_EHEALTH_PORTAL_TUBERCULOSIS_TREATING_DHC_DESCRIPTION="Enter Treating doctor/hospital/clinic" +COM_EHEALTH_PORTAL_TUBERCULOSIS_TREATING_DHC_HINT="Your Treating doctor/hospital/clinic Here" +COM_EHEALTH_PORTAL_TUBERCULOSIS_TREATING_DHC_LABEL="Treating doctor/hospital/clinic" +COM_EHEALTH_PORTAL_TUBERCULOSIS_TREATING_DHC_MESSAGE="Error! Please add some text here." +COM_EHEALTH_PORTAL_TUBERCULOSIS_UNCERTAIN="Uncertain" +COM_EHEALTH_PORTAL_TUBERCULOSIS_UNUSUAL_TIREDNESS_DESCRIPTION="Unusual tiredness or weakness lasting weeks" +COM_EHEALTH_PORTAL_TUBERCULOSIS_UNUSUAL_TIREDNESS_LABEL="Unusual tiredness or weakness lasting weeks" +COM_EHEALTH_PORTAL_TUBERCULOSIS_VERSION_DESC="A count of the number of times this Tuberculosis has been revised." +COM_EHEALTH_PORTAL_TUBERCULOSIS_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_TUBERCULOSIS_WEIGHT_LOSS_WDIETING_DESCRIPTION="Weight loss without dieting in the previous 2-3 months" +COM_EHEALTH_PORTAL_TUBERCULOSIS_WEIGHT_LOSS_WDIETING_LABEL="Weight loss without dieting in the previous 2-3 months" +COM_EHEALTH_PORTAL_TUBERCULOSIS_YES="Yes" +COM_EHEALTH_PORTAL_UNIT="Unit" +COM_EHEALTH_PORTAL_UNITS="Units" +COM_EHEALTH_PORTAL_UNITS_ACCESS="Units Access" +COM_EHEALTH_PORTAL_UNITS_ACCESS_DESC="Allows the users in this group to access access units" +COM_EHEALTH_PORTAL_UNITS_BATCH_OPTIONS="Batch process the selected Units" +COM_EHEALTH_PORTAL_UNITS_BATCH_TIP="All changes will be applied to all selected Units" +COM_EHEALTH_PORTAL_UNITS_BATCH_USE="Units Batch Use" +COM_EHEALTH_PORTAL_UNITS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch units" +COM_EHEALTH_PORTAL_UNITS_EDIT_DESCRIPTION="Units Edit Description" +COM_EHEALTH_PORTAL_UNITS_EDIT_DESCRIPTION_DESC="Allows the users in this group to edit description of unit" +COM_EHEALTH_PORTAL_UNITS_EDIT_NAME="Units Edit Name" +COM_EHEALTH_PORTAL_UNITS_EDIT_NAME_DESC="Allows the users in this group to edit name of unit" +COM_EHEALTH_PORTAL_UNITS_EDIT_VERSION="Units Edit Version" +COM_EHEALTH_PORTAL_UNITS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version units" +COM_EHEALTH_PORTAL_UNITS_EXPORT="Units Export" +COM_EHEALTH_PORTAL_UNITS_EXPORT_DESC="Allows the users in this group to export export units" +COM_EHEALTH_PORTAL_UNITS_IMPORT="Units Import" +COM_EHEALTH_PORTAL_UNITS_IMPORT_DESC="Allows the users in this group to import import units" +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_ARCHIVED="%s Units archived." +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_ARCHIVED_1="%s Unit archived." +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_CHECKED_IN_0="No Unit successfully checked in." +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_CHECKED_IN_1="%d Unit successfully checked in." +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_CHECKED_IN_MORE="%d Units successfully checked in." +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_DELETED="%s Units deleted." +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_DELETED_1="%s Unit deleted." +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_FAILED_PUBLISHING="%s Units failed publishing." +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_FAILED_PUBLISHING_1="%s Unit failed publishing." +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_FEATURED="%s Units featured." +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_FEATURED_1="%s Unit featured." +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_PUBLISHED="%s Units published." +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_PUBLISHED_1="%s Unit published." +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_TRASHED="%s Units trashed." +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_TRASHED_1="%s Unit trashed." +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_UNFEATURED="%s Units unfeatured." +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_UNFEATURED_1="%s Unit unfeatured." +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_UNPUBLISHED="%s Units unpublished." +COM_EHEALTH_PORTAL_UNITS_N_ITEMS_UNPUBLISHED_1="%s Unit unpublished." +COM_EHEALTH_PORTAL_UNITS_SUBMENU="Units Submenu" +COM_EHEALTH_PORTAL_UNITS_SUBMENU_DESC="Allows the users in this group to submenu of unit" +COM_EHEALTH_PORTAL_UNIT_ALIAS_HINT="Auto-generated from name" +COM_EHEALTH_PORTAL_UNIT_ALIAS_LABEL="Alias" +COM_EHEALTH_PORTAL_UNIT_CREATED_BY_DESC="The user that created this Unit." +COM_EHEALTH_PORTAL_UNIT_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_UNIT_CREATED_DATE_DESC="The date this Unit was created." +COM_EHEALTH_PORTAL_UNIT_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_UNIT_DESCRIPTION_DESCRIPTION="Add Description Here" +COM_EHEALTH_PORTAL_UNIT_DESCRIPTION_HINT="Add Description Here" +COM_EHEALTH_PORTAL_UNIT_DESCRIPTION_LABEL="Description" +COM_EHEALTH_PORTAL_UNIT_DETAILS="Details" +COM_EHEALTH_PORTAL_UNIT_EDIT="Editing the Unit" +COM_EHEALTH_PORTAL_UNIT_ERROR_UNIQUE_ALIAS="Another Unit has the same alias." +COM_EHEALTH_PORTAL_UNIT_ID="Id" +COM_EHEALTH_PORTAL_UNIT_MODIFIED_BY_DESC="The last user that modified this Unit." +COM_EHEALTH_PORTAL_UNIT_MODIFIED_BY_LABEL="Modified By" +COM_EHEALTH_PORTAL_UNIT_MODIFIED_DATE_DESC="The date this Unit was modified." +COM_EHEALTH_PORTAL_UNIT_MODIFIED_DATE_LABEL="Modified Date" +COM_EHEALTH_PORTAL_UNIT_NAME_DESCRIPTION="Enter Name Here" +COM_EHEALTH_PORTAL_UNIT_NAME_HINT="Name here" +COM_EHEALTH_PORTAL_UNIT_NAME_LABEL="Name" +COM_EHEALTH_PORTAL_UNIT_NAME_MESSAGE="Error! Please add name here." +COM_EHEALTH_PORTAL_UNIT_NEW="A New Unit" +COM_EHEALTH_PORTAL_UNIT_ORDERING_LABEL="Ordering" +COM_EHEALTH_PORTAL_UNIT_PERMISSION="Permissions" +COM_EHEALTH_PORTAL_UNIT_PUBLISHING="Publishing" +COM_EHEALTH_PORTAL_UNIT_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Unit to customise the alias." +COM_EHEALTH_PORTAL_UNIT_STATUS="Status" +COM_EHEALTH_PORTAL_UNIT_VERSION_DESC="A count of the number of times this Unit has been revised." +COM_EHEALTH_PORTAL_UNIT_VERSION_LABEL="Version" +COM_EHEALTH_PORTAL_USE_BATCH="Use Batch" +COM_EHEALTH_PORTAL_USE_BATCH_DESC="Allows users in this group to use batch copy/update method." +COM_EHEALTH_PORTAL_VERSION="Version" +COM_EHEALTH_PORTAL_VMMC="VMMC" +COM_EHEALTH_PORTAL_VMMCS="VMMCs" +COM_EHEALTH_PORTAL_VMMCS_ACCESS="Vmmcs Access" +COM_EHEALTH_PORTAL_VMMCS_ACCESS_DESC="Allows the users in this group to access access vmmcs" +COM_EHEALTH_PORTAL_VMMCS_BATCH_OPTIONS="Batch process the selected VMMCs" +COM_EHEALTH_PORTAL_VMMCS_BATCH_TIP="All changes will be applied to all selected VMMCs" +COM_EHEALTH_PORTAL_VMMCS_BATCH_USE="Vmmcs Batch Use" +COM_EHEALTH_PORTAL_VMMCS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch vmmcs" +COM_EHEALTH_PORTAL_VMMCS_DASHBOARD_ADD="Vmmcs Dashboard Add" +COM_EHEALTH_PORTAL_VMMCS_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of vmmc" +COM_EHEALTH_PORTAL_VMMCS_DASHBOARD_LIST="Vmmcs Dashboard List" +COM_EHEALTH_PORTAL_VMMCS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of vmmc" +COM_EHEALTH_PORTAL_VMMCS_EDIT_VERSION="Vmmcs Edit Version" +COM_EHEALTH_PORTAL_VMMCS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version vmmcs" +COM_EHEALTH_PORTAL_VMMCS_EXPORT="Vmmcs Export" +COM_EHEALTH_PORTAL_VMMCS_EXPORT_DESC="Allows the users in this group to export export vmmcs" +COM_EHEALTH_PORTAL_VMMCS_IMPORT="Vmmcs Import" +COM_EHEALTH_PORTAL_VMMCS_IMPORT_DESC="Allows the users in this group to import import vmmcs" +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_ARCHIVED="%s VMMCs archived." +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_ARCHIVED_1="%s VMMC archived." +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_CHECKED_IN_0="No VMMC successfully checked in." +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_CHECKED_IN_1="%d VMMC successfully checked in." +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_CHECKED_IN_MORE="%d VMMCs successfully checked in." +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_DELETED="%s VMMCs deleted." +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_DELETED_1="%s VMMC deleted." +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_FAILED_PUBLISHING="%s VMMCs failed publishing." +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_FAILED_PUBLISHING_1="%s VMMC failed publishing." +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_FEATURED="%s VMMCs featured." +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_FEATURED_1="%s VMMC featured." +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_PUBLISHED="%s VMMCs published." +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_PUBLISHED_1="%s VMMC published." +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_TRASHED="%s VMMCs trashed." +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_TRASHED_1="%s VMMC trashed." +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_UNFEATURED="%s VMMCs unfeatured." +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_UNFEATURED_1="%s VMMC unfeatured." +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_UNPUBLISHED="%s VMMCs unpublished." +COM_EHEALTH_PORTAL_VMMCS_N_ITEMS_UNPUBLISHED_1="%s VMMC unpublished." +COM_EHEALTH_PORTAL_VMMCS_SUBMENU="Vmmcs Submenu" +COM_EHEALTH_PORTAL_VMMCS_SUBMENU_DESC="Allows the users in this group to submenu of vmmc" +COM_EHEALTH_PORTAL_VMMC_ARE_YOU_CIRCUMCISED_DESCRIPTION="Are you circumcised?" +COM_EHEALTH_PORTAL_VMMC_ARE_YOU_CIRCUMCISED_LABEL="Are you circumcised?" +COM_EHEALTH_PORTAL_VMMC_CREATED_BY_DESC="The user that created this VMMC." +COM_EHEALTH_PORTAL_VMMC_CREATED_BY_LABEL="Created By" +COM_EHEALTH_PORTAL_VMMC_CREATED_DATE_DESC="The date this VMMC was created." +COM_EHEALTH_PORTAL_VMMC_CREATED_DATE_LABEL="Created Date" +COM_EHEALTH_PORTAL_VMMC_DETAILS="Details" +COM_EHEALTH_PORTAL_VMMC_EDIT="Editing the VMMC" +COM_EHEALTH_PORTAL_VMMC_ERROR_UNIQUE_ALIAS="Another VMMC has the same alias." +COM_EHEALTH_PORTAL_VMMC_FEMALE="Female" +COM_EHEALTH_PORTAL_VMMC_ID="Id" +COM_EHEALTH_PORTAL_VMMC_INFO_BEN_VMCC_DESCRIPTION="Provided with information on benefits of VMMC?" +COM_EHEALTH_PORTAL_VMMC_INF