diff --git a/1.sources/MyHealth/.classpath b/1.sources/MyHealth/.classpath
new file mode 100644
index 0000000..6177316
--- /dev/null
+++ b/1.sources/MyHealth/.classpath
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/1.sources/MyHealth/.gitignore b/1.sources/MyHealth/.gitignore
new file mode 100644
index 0000000..8cc580e
--- /dev/null
+++ b/1.sources/MyHealth/.gitignore
@@ -0,0 +1,5 @@
+/build/
+/dist/
+/MyHealth.ear
+/MyHealth.jar
+/MyHealth.war
diff --git a/1.sources/MyHealth/.packages b/1.sources/MyHealth/.packages
new file mode 100644
index 0000000..56d242c
--- /dev/null
+++ b/1.sources/MyHealth/.packages
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/1.sources/MyHealth/.project b/1.sources/MyHealth/.project
new file mode 100644
index 0000000..359ab94
--- /dev/null
+++ b/1.sources/MyHealth/.project
@@ -0,0 +1,23 @@
+
+
+ MyHealth
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.jboss.ide.eclipse.archives.core.archivesBuilder
+
+
+
+
+
+ org.jboss.ide.eclipse.archives.core.archivesNature
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/1.sources/MyHealth/.settings/org.eclipse.jdt.core.prefs b/1.sources/MyHealth/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..2c1391e
--- /dev/null
+++ b/1.sources/MyHealth/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,13 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/1.sources/MyHealth/.settings/org.jboss.ide.eclipse.as.core.prefs b/1.sources/MyHealth/.settings/org.jboss.ide.eclipse.as.core.prefs
new file mode 100644
index 0000000..a64acc9
--- /dev/null
+++ b/1.sources/MyHealth/.settings/org.jboss.ide.eclipse.as.core.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.jboss.ide.eclipse.as.core.singledeployable.deployableList=
diff --git a/1.sources/MyHealth/bin/.gitignore b/1.sources/MyHealth/bin/.gitignore
new file mode 100644
index 0000000..7c6170f
--- /dev/null
+++ b/1.sources/MyHealth/bin/.gitignore
@@ -0,0 +1,6 @@
+/META-INF/
+/TO/
+/ejb/
+/jpa/
+/log4j.properties
+/managedbean/
diff --git a/1.sources/MyHealth/bin/common/.gitignore b/1.sources/MyHealth/bin/common/.gitignore
new file mode 100644
index 0000000..fb6ead6
--- /dev/null
+++ b/1.sources/MyHealth/bin/common/.gitignore
@@ -0,0 +1,2 @@
+/AuthorizationFilter.class
+/SessionUtils.class
diff --git a/1.sources/MyHealth/build.xml b/1.sources/MyHealth/build.xml
new file mode 100644
index 0000000..1720166
--- /dev/null
+++ b/1.sources/MyHealth/build.xml
@@ -0,0 +1,92 @@
+
+
+ PDS MyHealth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/1.sources/MyHealth/docroot/WEB-INF/faces-config.xml b/1.sources/MyHealth/docroot/WEB-INF/faces-config.xml
new file mode 100644
index 0000000..4f1a7f5
--- /dev/null
+++ b/1.sources/MyHealth/docroot/WEB-INF/faces-config.xml
@@ -0,0 +1,13 @@
+
+
+
+ /login.xhtml
+
+ admin
+ /admin.xhtml
+
+
+
diff --git a/1.sources/MyHealth/docroot/WEB-INF/web.xml b/1.sources/MyHealth/docroot/WEB-INF/web.xml
new file mode 100644
index 0000000..0796bbf
--- /dev/null
+++ b/1.sources/MyHealth/docroot/WEB-INF/web.xml
@@ -0,0 +1,43 @@
+
+
+
+
+ Define the value returned by Application.getProjectStage(). Allowed values: Production, Development,
+ UnitTest, SystemTest, Extension. Default value is Production.
+
+ javax.faces.PROJECT_STAGE
+ Development
+
+
+
+
+ Do not render comments in facelets (xhtml) pages. Default is false.
+ javax.faces.FACELETS_SKIP_COMMENTS
+ true
+
+
+
+ Faces Servlet
+ javax.faces.webapp.FacesServlet
+ 1
+
+
+
+ Faces Servlet
+ *.xhtml
+
+
+
+ 500
+ ErrowView.xhtml
+
+
+
+
+ HomeView.xhtml
+
+
+
diff --git a/1.sources/MyHealth/docroot/error.xhtml b/1.sources/MyHealth/docroot/error.xhtml
new file mode 100644
index 0000000..1f552b1
--- /dev/null
+++ b/1.sources/MyHealth/docroot/error.xhtml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
Se ha producido un error
+
+
Descripcion del error:
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/1.sources/MyHealth/docroot/header.xhtml b/1.sources/MyHealth/docroot/header.xhtml
new file mode 100644
index 0000000..8ad53eb
--- /dev/null
+++ b/1.sources/MyHealth/docroot/header.xhtml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+ myHealth page header
+
+
+
+
+
+
+
myHealth page header
+
+
+
+
+ Content
+
+
+
+
+
diff --git a/1.sources/MyHealth/docroot/home.xhtml b/1.sources/MyHealth/docroot/home.xhtml
new file mode 100644
index 0000000..f66c7a2
--- /dev/null
+++ b/1.sources/MyHealth/docroot/home.xhtml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/1.sources/MyHealth/docroot/login.xhtml b/1.sources/MyHealth/docroot/login.xhtml
new file mode 100644
index 0000000..06419e8
--- /dev/null
+++ b/1.sources/MyHealth/docroot/login.xhtml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ login
+
+
+
+
+ myHealth login page
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/1.sources/MyHealth/docroot/medicaltest/testView.xhtml b/1.sources/MyHealth/docroot/medicaltest/testView.xhtml
new file mode 100644
index 0000000..7d9aee8
--- /dev/null
+++ b/1.sources/MyHealth/docroot/medicaltest/testView.xhtml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
test Page
+
+
TestPage:
+
+ test page content
+
+
+
+
+
+
+
+
+
diff --git a/1.sources/MyHealth/docroot/profile/testView_1.xhtml b/1.sources/MyHealth/docroot/profile/testView_1.xhtml
new file mode 100644
index 0000000..7d9aee8
--- /dev/null
+++ b/1.sources/MyHealth/docroot/profile/testView_1.xhtml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
test Page
+
+
TestPage:
+
+ test page content
+
+
+
+
+
+
+
+
+
diff --git a/1.sources/MyHealth/docroot/resources/css/estilos.css b/1.sources/MyHealth/docroot/resources/css/estilos.css
new file mode 100644
index 0000000..ba794fe
--- /dev/null
+++ b/1.sources/MyHealth/docroot/resources/css/estilos.css
@@ -0,0 +1,304 @@
+BODY{
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+}
+
+.ErrorMessage {
+ color: red;
+ font-size: 1.5em;
+}
+
+.col1 {
+ width: 200px;
+}
+
+.col2 {
+ width: 370px;
+}
+
+.col3 {
+ width: 130px;
+ text-align: center;
+}
+
+.estilomenu {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: bold;
+}
+
+.estilomenu2 {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: bold;
+}
+
+
+a.estilomenu2:link {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;color: #939393;font-weight: bold;text-decoration: none}
+a.estilomenu2:visited {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;color: #939393;font-weight: bold;text-decoration: none}
+a.estilomenu2:active {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;color: #939393;font-weight: bold;text-decoration: none}
+a.estilomenu2:hover {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;color: #939393;font-weight: bold;text-decoration: none}
+
+.fecha {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+}
+
+a.fecha:link {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;color: #939393;text-decoration: none}
+a.fecha:visited {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;color: #939393;text-decoration: none}
+a.fecha:active {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;color: #939393;text-decoration: none}
+a.fecha:hover {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;color: #939393;text-decoration: none}
+
+.Titulo {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 2.5em;
+ font-weight: normal;
+ text-align: center;
+}
+.paginacentral {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 16px;
+ font-weight: bold;
+ color: #939393;
+}
+.titulopequeno {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 9px;
+ font-weight: bold;
+}
+
+.estilomenucabecera {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: bold;
+}
+
+.formularios {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+}
+.listado {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+}
+
+
+.estiloidiomas {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: 400;
+
+}
+
+
+
+
+
+
+
+.formulariospequeno {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: 600;
+}
+
+.rojo { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold ; color: #FF0000}
+
+
+a:link {color: #FFFFFF}
+a:active {color: #FFFFFF}
+a:visited {color: #FFFFFF}
+a:hover {color: #FFFFFF}
+
+
+.noticias1 { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold; color: #FFFFFF; text-decoration:none }
+
+a.apartados:link {font-family: Verdana;color: #939393; text-decoration: none; font-size: 12px; font-size: 10px; font-weight: bold}
+a.apartados:visited {font-family: Verdana;color: #939393; text-decoration: none; font-size: 12px; font-size: 10px; font-weight: bold}
+a.apartados:active {font-family: Verdana;color: #939393; text-decoration: none; font-size: 12px; font-size: 10px; font-weight: bold}
+a.apartados:hover {font-family: Verdana;color: #939393; text-decoration: none; font-size: 12px; font-size: 10px; font-weight: bold}
+
+
+.pestanas {font-family: Arial, Helvetica, sans-serif;font-size: 12px;font-weight: bold;}
+
+a.pestanas:link {font-family: Arial, Helvetica, sans-serif;font-size: 12px;font-weight:bold; color: #939393; text-decoration: none}
+a.pestanas:visited {font-family: Arial, Helvetica, sans-serif;font-size: 12px;font-weight: bold;color: #939393; text-decoration: none}
+a.pestanas:active {font-family: Arial, Helvetica, sans-serif;font-size: 12px;font-weight: bold;color: #939393; text-decoration: none}
+a.pestanas:hover {font-family: Arial, Helvetica, sans-serif;font-size: 12px;font-weight: bold;color: #939393 ; text-decoration: none}
+
+
+
+.estiloidiomas {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;font-weight: 400;}
+
+a.estiloidiomas:link {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;font-weight: 400;color: #939393; text-decoration: none}
+a.estiloidiomas:visited {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;font-weight: 400;color: #939393; text-decoration: none}
+a.estiloidiomas:active {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;font-weight: 400;color: #939393; text-decoration: none}
+a.estiloidiomas:hover {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;font-weight: 400;color: #939393; text-decoration: none}
+
+
+a.estiloidiomas2:link {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;font-weight: 400;color: #939393; text-decoration: underline}
+a.estiloidiomas2:visited {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;font-weight: 400;color: #939393; text-decoration: none}
+a.estiloidiomas2:active {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;font-weight: 400;color: #939393; text-decoration: underline}
+a.estiloidiomas2:hover {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;font-weight: 400;color: #939393; text-decoration: underline}
+
+
+
+a.linknegritasubrrado:link {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;font-weight: bold;color: #939393; text-decoration: underline}
+a.linknegritasubrrado:visited {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;font-weight: bold;color: #939393; text-decoration: none}
+a.linknegritasubrrado:active {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;font-weight: bold;color: #939393; text-decoration: underline}
+a.linknegritasubrrado:hover {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;font-weight: bold;color: #939393; text-decoration: underline}
+
+
+
+
+
+
+a.apartados2:link {font-family: Verdana;color:#3131D1 ; text-decoration: none; font-size: 12px; font-size: 10px; font-weight: bold}
+a.apartados2:visited {font-family: Verdana;color: #3131D1; text-decoration: none; font-size: 12px; font-size: 10px; font-weight: bold}
+a.apartados2:active {font-family: Verdana;color: #3131D1; text-decoration: none; font-size: 12px; font-size: 10px; font-weight: bold}
+a.apartados2:hover {font-family: Verdana;color: #3131D1; text-decoration: none; font-size: 12px; font-size: 10px; font-weight: bold}
+
+
+a.apartados3:link {font-family: Verdana;color:#3131D1 ; text-decoration: underline; font-size: 13px; font-size: 10px; font-weight: bold}
+a.apartados3:visited {font-family: Verdana;color: #3131D1; text-decoration: underline; font-size: 13px; font-size: 10px; font-weight: bold}
+a.apartados3:active {font-family: Verdana;color: #3131D1; text-decoration: underline; font-size: 13px; font-size: 10px; font-weight: bold}
+a.apartados3:hover {font-family: Verdana;color: #3131D1; text-decoration: underline; font-size: 13px; font-size: 10px; font-weight: bold}
+
+
+
+
+a.titulopequeno:link {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; font-weight: bold;color: #939393;text-decoration: none}
+a.titulopequeno:visited {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; font-weight: bold;color: #939393;text-decoration: none}
+a.titulopequeno:active {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; font-weight: bold;color: #939393;text-decoration: none}
+a.titulopequeno:hover {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; font-weight: bold;color: #939393;text-decoration: none}
+
+
+
+
+
+
+a.inicio:link {font-family: Verdana;color: #939393; text-decoration: none; font-size: 12px; font-size: 14px; font-weight: bold}
+a.inicio:visited {font-family: Verdana;color: #939393; text-decoration: none; font-size: 12px; font-size: 14px; font-weight: bold}
+a.inicio:active {font-family: Verdana;color: #939393; text-decoration: none; font-size: 12px; font-size: 14px; font-weight: bold}
+a.inicio:hover {font-family: Verdana;color: #939393; text-decoration: none; font-size: 12px; font-size: 14px; font-weight: bold}
+.masinfo {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: 400; text-decoration: underline;}
+
+
+
+
+a.listado:link {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #939393;text-decoration:none}
+a.listado:visited {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #939393;text-decoration:none}
+a.listado:active {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #939393;text-decoration:none}
+a.listado:hover {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #939393;text-decoration:none}
+
+
+
+.carrito {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold;}
+
+
+a.carrito:link {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold;color: #939393;text-decoration:none}
+a.carrito:visited {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold;color: #939393;text-decoration:none}
+a.carrito:active {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold;color: #939393;text-decoration:none}
+a.carrito:hover {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold;color: #939393; text-decoration:none}
+
+
+
+.linksabajo {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;font-weight: 400;color: #666666;}
+
+a.linksabajo:link {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;font-weight: 400;color: #666666;}
+a.linksabajo:visited {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;font-weight: 400;color: #666666;}
+a.linksabajo:active {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;font-weight: 400;color: #666666;}
+a.linksabajo:hover {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;font-weight: 400;color: #666666;}
+
+
+
+a.masinfo:link {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: 400; text-decoration: underline;color: #939393;}
+a.masinfo:visited {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: 400; text-decoration: underline;color: #939393;}
+a.masinfo:active {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: 400; text-decoration: underline;color: #939393;}
+a.masinfo:hover {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: 400; text-decoration: underline;color: #939393;}.estilonoticias {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: 600;
+ letter-spacing: 2px;
+}
+.estilorecomanacions {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: 600;
+ letter-spacing: 2px;
+ color: #A0630F;
+
+}
+.estilonovetats {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: 600;
+ letter-spacing: 2px;
+ color: #2F2F2F;
+
+}
+.resaltado {
+
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: 600;
+ letter-spacing: 2px;
+ color: #2F2F2F;
+}
+.destacado {
+
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: 600;
+ letter-spacing: 2px;
+ color: #800000;
+}
+.registro {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold ; color: #939393}
+
+
+a.registro:link {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold ; color: #939393; text-decoration: none}
+a.registro:visited {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold ; color: #939393; text-decoration: none}
+a.registro:active {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold ; color: #939393; text-decoration: none}
+a.registro:hover {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold ; color: #939393; text-decoration: underline}
+
+
+
+
+.listadogris {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #939393; font-weight: bold;}
+
+a.listadogris:link {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #939393; font-weight: bold; text-decoration: none}
+a.listadogris:visited {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #939393; font-weight: bold; text-decoration: none}
+a.listadogris:active {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #939393; font-weight: bold; text-decoration: none}
+a.listadogris:hover {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #939393; font-weight: bold; text-decoration: underline}
+
+
+
+
+
+.botonpeque {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+}
+.formulariosNegrita {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: bold;
+
+}
+.destacadopeque {
+
+
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: bold;
+ color: #404040;
+}
+.listadogris {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ color: #939393;
+ font-weight: bold;
+
+
+}
+.linklistado { font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;font-weight: 400;color: #939393; }
\ No newline at end of file
diff --git a/1.sources/MyHealth/docroot/systemAdmin/testView_2.xhtml b/1.sources/MyHealth/docroot/systemAdmin/testView_2.xhtml
new file mode 100644
index 0000000..7d9aee8
--- /dev/null
+++ b/1.sources/MyHealth/docroot/systemAdmin/testView_2.xhtml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
test Page
+
+
TestPage:
+
+ test page content
+
+
+
+
+
+
+
+
+
diff --git a/1.sources/MyHealth/docroot/visit/testView_3.xhtml b/1.sources/MyHealth/docroot/visit/testView_3.xhtml
new file mode 100644
index 0000000..7d9aee8
--- /dev/null
+++ b/1.sources/MyHealth/docroot/visit/testView_3.xhtml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
test Page
+
+
TestPage:
+
+ test page content
+
+
+
+
+
+
+
+
+
diff --git a/1.sources/MyHealth/src/META-INF/application.xml b/1.sources/MyHealth/src/META-INF/application.xml
new file mode 100644
index 0000000..80831e2
--- /dev/null
+++ b/1.sources/MyHealth/src/META-INF/application.xml
@@ -0,0 +1,13 @@
+
+ MyHealth
+
+
+ MyHealth.war
+ /MyHealth
+
+
+
+ MyHealth.jar
+
+
+
diff --git a/1.sources/MyHealth/src/META-INF/persistence.xml b/1.sources/MyHealth/src/META-INF/persistence.xml
new file mode 100644
index 0000000..c34d46a
--- /dev/null
+++ b/1.sources/MyHealth/src/META-INF/persistence.xml
@@ -0,0 +1,15 @@
+
+
+
+ org.hibernate.ejb.HibernatePersistence
+ java:jboss/postgresDS
+
+
+
+
+
\ No newline at end of file
diff --git a/1.sources/MyHealth/src/TO/medicalTest/MedicalTestTO.java b/1.sources/MyHealth/src/TO/medicalTest/MedicalTestTO.java
new file mode 100644
index 0000000..62d3a86
--- /dev/null
+++ b/1.sources/MyHealth/src/TO/medicalTest/MedicalTestTO.java
@@ -0,0 +1,29 @@
+package TO.medicalTest;
+
+import java.io.Serializable;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * Transfer object (TO) MedicalSpecialtyTO Para el intercambio de datos entre la
+ * capa de interfaz y la capa de negocio
+ *
+ * Además esta clase facilita la implementación futura de una Capa SOA (Se
+ * define la anotación para la serialización de esta clase: @XmlRootElement(name
+ * = "medicalspeciality")
+ *
+ * @author mark
+ *
+ */
+@XmlRootElement(name = "MedicalTestTO")
+public class MedicalTestTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+
+ public MedicalTestTO() {
+ super();
+ }
+
+
+}
diff --git a/1.sources/MyHealth/src/TO/profile/ProfileTO.java b/1.sources/MyHealth/src/TO/profile/ProfileTO.java
new file mode 100644
index 0000000..cee47c3
--- /dev/null
+++ b/1.sources/MyHealth/src/TO/profile/ProfileTO.java
@@ -0,0 +1,29 @@
+package TO.profile;
+
+import java.io.Serializable;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * Transfer object (TO) MedicalSpecialtyTO Para el intercambio de datos entre la
+ * capa de interfaz y la capa de negocio
+ *
+ * Además esta clase facilita la implementación futura de una Capa SOA (Se
+ * define la anotación para la serialización de esta clase: @XmlRootElement(name
+ * = "medicalspeciality")
+ *
+ * @author mark
+ *
+ */
+@XmlRootElement(name = "ProfileTO")
+public class ProfileTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+
+ public ProfileTO() {
+ super();
+ }
+
+
+}
diff --git a/1.sources/MyHealth/src/TO/systemAdmin/SystemAdminTO.java b/1.sources/MyHealth/src/TO/systemAdmin/SystemAdminTO.java
new file mode 100644
index 0000000..17ccfea
--- /dev/null
+++ b/1.sources/MyHealth/src/TO/systemAdmin/SystemAdminTO.java
@@ -0,0 +1,29 @@
+package TO.systemAdmin;
+
+import java.io.Serializable;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * Transfer object (TO) MedicalSpecialtyTO Para el intercambio de datos entre la
+ * capa de interfaz y la capa de negocio
+ *
+ * Además esta clase facilita la implementación futura de una Capa SOA (Se
+ * define la anotación para la serialización de esta clase: @XmlRootElement(name
+ * = "medicalspeciality")
+ *
+ * @author mark
+ *
+ */
+@XmlRootElement(name = "SystemAdminTO")
+public class SystemAdminTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+
+ public SystemAdminTO() {
+ super();
+ }
+
+
+}
diff --git a/1.sources/MyHealth/src/TO/visit/VisitTO.java b/1.sources/MyHealth/src/TO/visit/VisitTO.java
new file mode 100644
index 0000000..3ff705b
--- /dev/null
+++ b/1.sources/MyHealth/src/TO/visit/VisitTO.java
@@ -0,0 +1,29 @@
+package TO.visit;
+
+import java.io.Serializable;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * Transfer object (TO) MedicalSpecialtyTO Para el intercambio de datos entre la
+ * capa de interfaz y la capa de negocio
+ *
+ * Además esta clase facilita la implementación futura de una Capa SOA (Se
+ * define la anotación para la serialización de esta clase: @XmlRootElement(name
+ * = "medicalspeciality")
+ *
+ * @author mark
+ *
+ */
+@XmlRootElement(name = "TestClass")
+public class VisitTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+
+ public VisitTO() {
+ super();
+ }
+
+
+}
diff --git a/1.sources/MyHealth/src/common/AuthorizationFilter.java b/1.sources/MyHealth/src/common/AuthorizationFilter.java
new file mode 100644
index 0000000..05fb830
--- /dev/null
+++ b/1.sources/MyHealth/src/common/AuthorizationFilter.java
@@ -0,0 +1,52 @@
+
+package common;
+
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.annotation.WebFilter;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+@WebFilter(filterName = "AuthFilter", urlPatterns = { "*.xhtml" })
+public class AuthorizationFilter implements Filter {
+
+ public AuthorizationFilter() {
+ }
+
+ @Override
+ public void init(FilterConfig filterConfig) throws ServletException {
+
+ }
+
+ @Override
+ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
+ throws IOException, ServletException {
+ try {
+
+ HttpServletRequest reqt = (HttpServletRequest) request;
+ HttpServletResponse resp = (HttpServletResponse) response;
+ HttpSession ses = reqt.getSession(false);
+
+ String reqURI = reqt.getRequestURI();
+ if (reqURI.indexOf("/login.xhtml") >= 0 || (ses != null && ses.getAttribute("username") != null)
+ || reqURI.indexOf("/public/") >= 0 || reqURI.contains("javax.faces.resource"))
+ chain.doFilter(request, response);
+ else
+ resp.sendRedirect(reqt.getContextPath() + "/faces/login.xhtml");
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+ }
+ }
+
+ @Override
+ public void destroy() {
+
+ }
+}
diff --git a/1.sources/MyHealth/src/common/SessionUtils.java b/1.sources/MyHealth/src/common/SessionUtils.java
new file mode 100644
index 0000000..7360cea
--- /dev/null
+++ b/1.sources/MyHealth/src/common/SessionUtils.java
@@ -0,0 +1,30 @@
+
+package common;
+
+import javax.faces.context.FacesContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+
+public class SessionUtils {
+
+ public static HttpSession getSession() {
+ return (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
+ }
+
+ public static HttpServletRequest getRequest() {
+ return (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
+ }
+
+ public static String getUserName() {
+ HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
+ return session.getAttribute("username").toString();
+ }
+
+ public static String getUserId() {
+ HttpSession session = getSession();
+ if (session != null)
+ return (String) session.getAttribute("userid");
+ else
+ return null;
+ }
+}
diff --git a/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeBean.java b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeBean.java
new file mode 100644
index 0000000..c0ddb23
--- /dev/null
+++ b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeBean.java
@@ -0,0 +1,26 @@
+package ejb.medicalTest;
+
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+
+/**
+ * EJB Session Bean Class para la Practica 2, Ejercicio 1 (ISCSD) Implementa los
+ * métodos de la capa de negocio que implementan la logica de negocio y la
+ * interacción con la capa de persistencia.
+ *
+ * @author mark
+ *
+ */
+@Stateless
+public class MedicalTestFacadeBean implements MedicalTestFacadeRemote {
+
+ // Persistence Unit Context
+ @PersistenceContext(unitName = "MyHealth")
+ private EntityManager entman;
+
+ public void ejbMethod(String parameter) {
+
+ }
+}
\ No newline at end of file
diff --git a/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java
new file mode 100644
index 0000000..d1b02ed
--- /dev/null
+++ b/1.sources/MyHealth/src/ejb/medicalTest/MedicalTestFacadeRemote.java
@@ -0,0 +1,18 @@
+package ejb.medicalTest;
+
+import javax.ejb.Remote;
+
+/**
+ * Interfaz remota del EJB Definimos los métodos que estarán disponibles para
+ * los clientes del EJB
+ *
+ * @author mark
+ *
+ */
+@Remote
+public interface MedicalTestFacadeRemote {
+ /**
+ * Definimos la interfaz remota
+ */
+ public void ejbMethod(String parameter);
+}
\ No newline at end of file
diff --git a/1.sources/MyHealth/src/ejb/profile/ProfileFacadeBean.java b/1.sources/MyHealth/src/ejb/profile/ProfileFacadeBean.java
new file mode 100644
index 0000000..c2017f5
--- /dev/null
+++ b/1.sources/MyHealth/src/ejb/profile/ProfileFacadeBean.java
@@ -0,0 +1,28 @@
+package ejb.profile;
+
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+
+/**
+ * EJB Session Bean Class para la Practica 2, Ejercicio 1 (ISCSD) Implementa los
+ * métodos de la capa de negocio que implementan la logica de negocio y la
+ * interacción con la capa de persistencia.
+ *
+ * @author mark
+ *
+ */
+@Stateless
+public class ProfileFacadeBean implements ProfileFacadeRemote {
+
+ // Persistence Unit Context
+ @PersistenceContext(unitName = "MyHealth")
+ private EntityManager entman;
+
+ public void ejbMethod(String parameter)
+ {
+
+ }
+
+}
diff --git a/1.sources/MyHealth/src/ejb/profile/ProfileFacadeRemote.java b/1.sources/MyHealth/src/ejb/profile/ProfileFacadeRemote.java
new file mode 100644
index 0000000..6bbaf28
--- /dev/null
+++ b/1.sources/MyHealth/src/ejb/profile/ProfileFacadeRemote.java
@@ -0,0 +1,18 @@
+package ejb.profile;
+
+import javax.ejb.Remote;
+
+/**
+ * Interfaz remota del EJB Definimos los métodos que estarán disponibles para
+ * los clientes del EJB
+ *
+ * @author mark
+ *
+ */
+@Remote
+public interface ProfileFacadeRemote {
+ /**
+ * Definimos la interfaz remota
+ */
+ public void ejbMethod(String parameter);
+}
\ No newline at end of file
diff --git a/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeBean.java b/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeBean.java
new file mode 100644
index 0000000..e5bffd6
--- /dev/null
+++ b/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeBean.java
@@ -0,0 +1,28 @@
+package ejb.systemAdmin;
+
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+
+/**
+ * EJB Session Bean Class para la Practica 2, Ejercicio 1 (ISCSD) Implementa los
+ * métodos de la capa de negocio que implementan la logica de negocio y la
+ * interacción con la capa de persistencia.
+ *
+ * @author mark
+ *
+ */
+@Stateless
+public class SystemAdminFacadeBean implements SystemAdminFacadeRemote {
+
+ // Persistence Unit Context
+ @PersistenceContext(unitName = "MyHealth")
+ private EntityManager entman;
+
+ public void ejbMethod(String parameter)
+ {
+
+ }
+
+}
diff --git a/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeRemote.java b/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeRemote.java
new file mode 100644
index 0000000..189afce
--- /dev/null
+++ b/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeRemote.java
@@ -0,0 +1,18 @@
+package ejb.systemAdmin;
+
+import javax.ejb.Remote;
+
+/**
+ * Interfaz remota del EJB Definimos los métodos que estarán disponibles para
+ * los clientes del EJB
+ *
+ * @author mark
+ *
+ */
+@Remote
+public interface SystemAdminFacadeRemote {
+ /**
+ * Definimos la interfaz remota
+ */
+ public void ejbMethod(String parameter);
+}
\ No newline at end of file
diff --git a/1.sources/MyHealth/src/ejb/visit/VisitFacadeBean.java b/1.sources/MyHealth/src/ejb/visit/VisitFacadeBean.java
new file mode 100644
index 0000000..fc9ce06
--- /dev/null
+++ b/1.sources/MyHealth/src/ejb/visit/VisitFacadeBean.java
@@ -0,0 +1,28 @@
+package ejb.visit;
+
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+
+/**
+ * EJB Session Bean Class para la Practica 2, Ejercicio 1 (ISCSD) Implementa los
+ * métodos de la capa de negocio que implementan la logica de negocio y la
+ * interacción con la capa de persistencia.
+ *
+ * @author mark
+ *
+ */
+@Stateless
+public class VisitFacadeBean implements VisitFacadeRemote {
+
+ // Persistence Unit Context
+ @PersistenceContext(unitName = "MyHealth")
+ private EntityManager entman;
+
+ public void ejbMethod(String parameter)
+ {
+
+ }
+
+}
diff --git a/1.sources/MyHealth/src/ejb/visit/VisitFacadeRemote.java b/1.sources/MyHealth/src/ejb/visit/VisitFacadeRemote.java
new file mode 100644
index 0000000..995977d
--- /dev/null
+++ b/1.sources/MyHealth/src/ejb/visit/VisitFacadeRemote.java
@@ -0,0 +1,18 @@
+package ejb.visit;
+
+import javax.ejb.Remote;
+
+/**
+ * Interfaz remota del EJB Definimos los métodos que estarán disponibles para
+ * los clientes del EJB
+ *
+ * @author mark
+ *
+ */
+@Remote
+public interface VisitFacadeRemote {
+ /**
+ * Definimos la interfaz remota
+ */
+ public void ejbMethod(String parameter);
+}
\ No newline at end of file
diff --git a/1.sources/MyHealth/src/jpa/TestTableJPA.java b/1.sources/MyHealth/src/jpa/TestTableJPA.java
new file mode 100644
index 0000000..74c7372
--- /dev/null
+++ b/1.sources/MyHealth/src/jpa/TestTableJPA.java
@@ -0,0 +1,50 @@
+package jpa;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+/**
+ * Calse JPA MedicalSpecialty, para interactuar con la base de datos.
+ */
+@Entity
+@Table(name = "TestTable")
+public class TestTableJPA implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ private String name;
+ private String description;
+
+ /**
+ * Class constructor methods
+ */
+ public TestTableJPA() {
+ super();
+ }
+
+ public TestTableJPA(String name, String description) {
+ this.name = name;
+ this.description = description;
+ }
+
+ @Id
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+}
diff --git a/1.sources/MyHealth/src/log4j.properties b/1.sources/MyHealth/src/log4j.properties
new file mode 100644
index 0000000..9ba1099
--- /dev/null
+++ b/1.sources/MyHealth/src/log4j.properties
@@ -0,0 +1,15 @@
+### direct log messages to stdout ###
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.Target=System.out
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
+
+### direct messages to file hibernate.log ###
+#log4j.appender.file=org.apache.log4j.FileAppender
+#log4j.appender.file.File=hibernate.log
+#log4j.appender.file.layout=org.apache.log4j.PatternLayout
+#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
+
+### set log levels - for more verbose logging change 'info' to 'debug' ###
+
+log4j.rootLogger= info, stdout
diff --git a/1.sources/MyHealth/src/managedbean/medicalTest/MedicalTestMBean.java b/1.sources/MyHealth/src/managedbean/medicalTest/MedicalTestMBean.java
new file mode 100644
index 0000000..d601661
--- /dev/null
+++ b/1.sources/MyHealth/src/managedbean/medicalTest/MedicalTestMBean.java
@@ -0,0 +1,51 @@
+package managedbean.medicalTest;
+
+import java.io.Serializable;
+import java.util.Properties;
+
+import javax.ejb.EJB;
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.SessionScoped;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+import ejb.medicalTest.MedicalTestFacadeRemote;
+
+/**
+ * ManagedBEan que gestiona la edición y actualización de una especialidad
+ * médica.
+ *
+ * @author mark
+ *
+ */
+@ManagedBean(name = "MedicalTestMBean")
+@SessionScoped
+public class MedicalTestMBean implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @EJB
+ private MedicalTestFacadeRemote remoteManager;
+
+ /**
+ * Constructor. Inicializa la conexión con el EJB Remoto
+ *
+ * @throws Exception
+ */
+ public MedicalTestMBean() throws Exception {
+ initializeAdminFacadeRemote();
+ }
+
+ /**
+ * Inicializa la conexión con el EJB Remoto
+ *
+ * @throws Exception
+ */
+ private void initializeAdminFacadeRemote() throws Exception {
+ Properties props = System.getProperties();
+ Context ctx = new InitialContext(props);
+ remoteManager = (MedicalTestFacadeRemote) ctx
+ .lookup("java:app/myHealth.jar/MedicalTestFacadeBean!ejb.component.MedicalTestFacadeRemote");
+ }
+
+}
diff --git a/1.sources/MyHealth/src/managedbean/profile/ProfileMBean.java b/1.sources/MyHealth/src/managedbean/profile/ProfileMBean.java
new file mode 100644
index 0000000..370dce1
--- /dev/null
+++ b/1.sources/MyHealth/src/managedbean/profile/ProfileMBean.java
@@ -0,0 +1,51 @@
+package managedbean.profile;
+
+import java.io.Serializable;
+import java.util.Properties;
+
+import javax.ejb.EJB;
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.SessionScoped;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+import ejb.profile.ProfileFacadeRemote;
+
+/**
+ * ManagedBEan que gestiona la edición y actualización de una especialidad
+ * médica.
+ *
+ * @author mark
+ *
+ */
+@ManagedBean(name = "ManagedBeanName")
+@SessionScoped
+public class ProfileMBean implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @EJB
+ private ProfileFacadeRemote remoteManager;
+
+ /**
+ * Constructor. Inicializa la conexión con el EJB Remoto
+ *
+ * @throws Exception
+ */
+ public ProfileMBean() throws Exception {
+ initializeAdminFacadeRemote();
+ }
+
+ /**
+ * Inicializa la conexión con el EJB Remoto
+ *
+ * @throws Exception
+ */
+ private void initializeAdminFacadeRemote() throws Exception {
+ Properties props = System.getProperties();
+ Context ctx = new InitialContext(props);
+ remoteManager = (ProfileFacadeRemote) ctx
+ .lookup("java:app/myHealth.jar/ProfileFacadeBean!ejb.component.ProfileFacadeRemote");
+ }
+
+}
diff --git a/1.sources/MyHealth/src/managedbean/systemAdmin/Login.java b/1.sources/MyHealth/src/managedbean/systemAdmin/Login.java
new file mode 100644
index 0000000..a0c933e
--- /dev/null
+++ b/1.sources/MyHealth/src/managedbean/systemAdmin/Login.java
@@ -0,0 +1,68 @@
+package managedbean.systemAdmin;
+
+import java.io.Serializable;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.SessionScoped;
+import javax.faces.context.FacesContext;
+import javax.servlet.http.HttpSession;
+
+import common.SessionUtils;
+
+@ManagedBean
+@SessionScoped
+public class Login implements Serializable {
+
+ private static final long serialVersionUID = 1094801825228386363L;
+
+ private String Password;
+ private String msg;
+ private String userName;
+
+ public String getPassword() {
+ return Password;
+ }
+
+ public void setPassword(String pwd) {
+ this.Password = pwd;
+ }
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public String getuserName() {
+ return userName;
+ }
+
+ public void setuserName(String user) {
+ this.userName = user;
+ }
+
+ // validate login
+ public String validateUsernamePassword() {
+ // TODO: Validar login
+ boolean valid = true;
+ if (valid) {
+ HttpSession session = SessionUtils.getSession();
+ session.setAttribute("username", userName);
+ return "home";
+ } else {
+ FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN,
+ "Usuario o contraseña incorrecta", "Por favor, intentalo de nuevo"));
+ return "login";
+ }
+ }
+
+ // logout event, invalidate session
+ public String logout() {
+ HttpSession session = SessionUtils.getSession();
+ session.invalidate();
+ return "home";
+ }
+}
diff --git a/1.sources/MyHealth/src/managedbean/systemAdmin/SystemAdminMBean.java b/1.sources/MyHealth/src/managedbean/systemAdmin/SystemAdminMBean.java
new file mode 100644
index 0000000..3432a49
--- /dev/null
+++ b/1.sources/MyHealth/src/managedbean/systemAdmin/SystemAdminMBean.java
@@ -0,0 +1,51 @@
+package managedbean.systemAdmin;
+
+import java.io.Serializable;
+import java.util.Properties;
+
+import javax.ejb.EJB;
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.SessionScoped;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+import ejb.systemAdmin.SystemAdminFacadeRemote;
+
+/**
+ * ManagedBEan que gestiona la edición y actualización de una especialidad
+ * médica.
+ *
+ * @author mark
+ *
+ */
+@ManagedBean(name = "SystemAdminMBean")
+@SessionScoped
+public class SystemAdminMBean implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @EJB
+ private SystemAdminFacadeRemote remoteManager;
+
+ /**
+ * Constructor. Inicializa la conexión con el EJB Remoto
+ *
+ * @throws Exception
+ */
+ public SystemAdminMBean() throws Exception {
+ initializeAdminFacadeRemote();
+ }
+
+ /**
+ * Inicializa la conexión con el EJB Remoto
+ *
+ * @throws Exception
+ */
+ private void initializeAdminFacadeRemote() throws Exception {
+ Properties props = System.getProperties();
+ Context ctx = new InitialContext(props);
+ remoteManager = (SystemAdminFacadeRemote) ctx
+ .lookup("java:app/myHealth.jar/ClassFacadeBean!ejb.component.SystemAdminFacadeRemote");
+ }
+
+}
diff --git a/1.sources/MyHealth/src/managedbean/visit/VisitMBean.java b/1.sources/MyHealth/src/managedbean/visit/VisitMBean.java
new file mode 100644
index 0000000..26bff4e
--- /dev/null
+++ b/1.sources/MyHealth/src/managedbean/visit/VisitMBean.java
@@ -0,0 +1,51 @@
+package managedbean.visit;
+
+import java.io.Serializable;
+import java.util.Properties;
+
+import javax.ejb.EJB;
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.SessionScoped;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+import ejb.visit.VisitFacadeRemote;
+
+/**
+ * ManagedBEan que gestiona la edición y actualización de una especialidad
+ * médica.
+ *
+ * @author mark
+ *
+ */
+@ManagedBean(name = "SystemAdminMBean")
+@SessionScoped
+public class VisitMBean implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @EJB
+ private VisitFacadeRemote remoteManager;
+
+ /**
+ * Constructor. Inicializa la conexión con el EJB Remoto
+ *
+ * @throws Exception
+ */
+ public VisitMBean() throws Exception {
+ initializeAdminFacadeRemote();
+ }
+
+ /**
+ * Inicializa la conexión con el EJB Remoto
+ *
+ * @throws Exception
+ */
+ private void initializeAdminFacadeRemote() throws Exception {
+ Properties props = System.getProperties();
+ Context ctx = new InitialContext(props);
+ remoteManager = (VisitFacadeRemote) ctx
+ .lookup("java:app/myHealth.jar/ClassFacadeBean!ejb.component.VisitFacadeRemote");
+ }
+
+}