O documento descreve o projeto de internet/intranet do Hospital de Clínicas de Porto Alegre no Brasil. O projeto migrou de um sistema antigo proprietário para um novo sistema baseado no CMS Joomla de código aberto para melhorar a manutenibilidade, desempenho e usabilidade. O novo sistema controla o acesso interno e externo e permite o acesso seguro à intranet de fora da rede hospitalar.
arte retrato de um povo - Expressão Cultural e Identidade Nacional
Joomla! Day Brasil 2007 - Case Hospital das Clínicas de Porto Alegre
1. Hospital de Clínicas de Porto Alegre
Tecnologia da Informação à Serviço daTecnologia da Informação à Serviço da
SaúdeSaúde
Projeto Internet/Intranet do Hospital de
Clínicas de Porto Alegre - HCPA
Belini Fagundes de Mello – Analista Júnior
bmello@hcpa.ufrgs.br
2. Hospital de Clínicas de Porto Alegre
Porte do HCPAPorte do HCPA
Assistência (anual)Assistência (anual)
538.520 consultas
33.755 cirurgias
3.971 partos
27.033 internações
2.091.441 exames
331 transplantes
Faturamento (anual)Faturamento (anual)
R$ 79.000.000
InstalaçõesInstalações
749 leitos
144 consultórios
62 especialidades
Recursos HumanosRecursos Humanos
3983 funcionários
272 Prof Medicina
20 Prof Enfermagem
298 Médicos Residentes
300 Médicos Contratados
3. Hospital de Clínicas de Porto Alegre
Cultura Web HCPACultura Web HCPA
• Publicadores de conteúdo em diversas áreasPublicadores de conteúdo em diversas áreas
• Notícias do site gerenciadas por jornalistasNotícias do site gerenciadas por jornalistas
• Suporte e manutenção feitos pelo Grupo deSuporte e manutenção feitos pelo Grupo de
SistemasSistemas
• Uso de Sistema Gerenciador de ConteúdoUso de Sistema Gerenciador de Conteúdo
(Content Managemant System-CMS)(Content Managemant System-CMS)
4. Hospital de Clínicas de Porto Alegre
AntigaAntiga Internet/Internet/IntranetIntranet
• Servidor IBMServidor IBM
• Windows 2000 ServerWindows 2000 Server
• SQL Server 2000SQL Server 2000
• Internet Information Services - IISInternet Information Services - IIS
• ASP 3.0ASP 3.0
• Objetos COM+Objetos COM+
• CMS proprietárioCMS proprietário
5. Hospital de Clínicas de Porto Alegre
Administração E-ManagerAdministração E-Manager
7. Hospital de Clínicas de Porto Alegre
Problemas da Antiga Internet/IntranetProblemas da Antiga Internet/Intranet
• CMS ProprietárioCMS Proprietário
• Objetos COM+ sem fontesObjetos COM+ sem fontes
• Baixa manutenibilidade e portabilidadeBaixa manutenibilidade e portabilidade
• Problemas de performanceProblemas de performance
• Editores de conteúdo com funcionalidadesEditores de conteúdo com funcionalidades
problemáticasproblemáticas
• ExpansibilidadeExpansibilidade
• Suporte e novos recursos dependente doSuporte e novos recursos dependente do
desenvolvedordesenvolvedor
8. Hospital de Clínicas de Porto Alegre
Escolha do CMSEscolha do CMS
• Contemplar contingência de servidoresContemplar contingência de servidores
• Portal Internet/Intranet únicosPortal Internet/Intranet únicos
• Curva de aprendizado menor paraCurva de aprendizado menor para
publicadorespublicadores
• Possibilidade de acrescentar novasPossibilidade de acrescentar novas
funcionalidadesfuncionalidades
• Facilidade para alterar o código fonteFacilidade para alterar o código fonte
• Domínio da comunidade na linguagem deDomínio da comunidade na linguagem de
programação do CMSprogramação do CMS
9. Hospital de Clínicas de Porto Alegre
CMS TestadosCMS Testados
• XoopsXoops
• PHP NukePHP Nuke
• Post NukePost Nuke
• XarayaXaraya
• Mambo (Joomla)Mambo (Joomla)
12. Hospital de Clínicas de Porto Alegre
Nova Internet/IntranetNova Internet/Intranet
• Servidor DellServidor Dell
• Linux Red Hat AS4Linux Red Hat AS4
• PHP 4.3.9PHP 4.3.9
• Apache 2.0.52Apache 2.0.52
• My SQL 4.1.12My SQL 4.1.12
• Joomla!Joomla!
13. Hospital de Clínicas de Porto Alegre
Vantagens da Nova Internet/IntranetVantagens da Nova Internet/Intranet
• CMS de código abertoCMS de código aberto
• Possibilidade de alterar o fontePossibilidade de alterar o fonte
• ManutenibilidadeManutenibilidade
• PortabilidadePortabilidade
• UsabilidadeUsabilidade
• PerformancePerformance
14. Hospital de Clínicas de Porto Alegre
Requisitos Nova Internet/IntranetRequisitos Nova Internet/Intranet
• Templates diferentes para Internet e IntranetTemplates diferentes para Internet e Intranet
• Permitir diferenciar conteúdo específico daPermitir diferenciar conteúdo específico da
Internet e IntranetInternet e Intranet
• Permitir que o publicador possa alterarPermitir que o publicador possa alterar
somente ao seu próprio conteúdosomente ao seu próprio conteúdo
• Permitir acionar aplicativos do micro doPermitir acionar aplicativos do micro do
usuário diretamente do portal Intranetusuário diretamente do portal Intranet
• Formulários para comunicaçãoFormulários para comunicação
interna/externa integrados ao corpo do siteinterna/externa integrados ao corpo do site
15. Hospital de Clínicas de Porto Alegre
Requisitos Nova Internet/IntranetRequisitos Nova Internet/Intranet
• Repositório para documentos internosRepositório para documentos internos
• Permitir acesso externo à Intranet paraPermitir acesso externo à Intranet para
usuários do hospital (https)usuários do hospital (https)
• Acesso interno à intranet deve serAcesso interno à intranet deve ser
transparente com logon automáticotransparente com logon automático
• Ter calendário dos eventos com folder eTer calendário dos eventos com folder e
possibilidade de inscriçãopossibilidade de inscrição
• Menu pull-down com scroll internoMenu pull-down com scroll interno
16. Hospital de Clínicas de Porto Alegre
Componentes, Módulos e Bots de terceirosComponentes, Módulos e Bots de terceiros
• JEvents - Agenda de eventos e calendárioJEvents - Agenda de eventos e calendário
• JACLPlus – Criação e manutenção de gruposJACLPlus – Criação e manutenção de grupos
de usuários (Access Control List)de usuários (Access Control List)
• ExitPull - Criação, manutenção e exibição deExitPull - Criação, manutenção e exibição de
enquetes e resultadosenquetes e resultados
• JCE Editor/TMEdit - Editor WYISWYGJCE Editor/TMEdit - Editor WYISWYG
• DOCMAN - Gerenciador de documentosDOCMAN - Gerenciador de documentos
• MamVideo – Gerenciador de vídeosMamVideo – Gerenciador de vídeos
17. Hospital de Clínicas de Porto Alegre
Componentes, Módulos e Bots própriosComponentes, Módulos e Bots próprios
• Componente para registro e visualização deComponente para registro e visualização de
download de editaisdownload de editais
• Vários módulos com links de destaques paraVários módulos com links de destaques para
diferentes seções do sitediferentes seções do site
• Formulários convertidos para componentesFormulários convertidos para componentes
para integração no corpo do Joomlapara integração no corpo do Joomla
• Novo componente de LogonNovo componente de Logon
• Módulo com links para aplicativos diferenciadoMódulo com links para aplicativos diferenciado
por estações da redepor estações da rede
• Hacks diversosHacks diversos
21. Hospital de Clínicas de Porto Alegre
Usuários do PortalUsuários do Portal
• ExternoExterno
– InternautasInternautas
– Usuários do Hospital acessando a IntranetUsuários do Hospital acessando a Intranet
• InternoInterno
– Usuários da rede interna do HospitalUsuários da rede interna do Hospital
acessando conteúdo da Internet e Intranetacessando conteúdo da Internet e Intranet
22. Hospital de Clínicas de Porto Alegre
Formas de Acesso à IntranetFormas de Acesso à Intranet
• ExternoExterno
– Através do link do portalAtravés do link do portal
• Formulário de logon encriptado (https)Formulário de logon encriptado (https)
• InternoInterno
– Acesso direto (sem logon explicito):Acesso direto (sem logon explicito):
• Através do link do portalAtravés do link do portal
• URLURL http://intranethttp://intranet
23. Hospital de Clínicas de Porto Alegre
Esquema de AcessoEsquema de Acesso
Acesso Externo/Interno
Link do Portal
IP Externo IP Interno
Script PHP
http://intranet
Joomla
Novo Componente de Logon
Domínio VirtualDomínio Virtual
24. Hospital de Clínicas de Porto Alegre
Novo Componente de LogonNovo Componente de Logon
• Controla e centraliza o acesso tanto internoControla e centraliza o acesso tanto interno
quanto externoquanto externo
• Permite logon no Joomla de formaPermite logon no Joomla de forma
transparentetransparente
• Aceita Logon automático através da URL:Aceita Logon automático através da URL:
http://intranethttp://intranet
• Protege com https o logon externoProtege com https o logon externo
• Verifica no LDAP se usuário válido (acessoVerifica no LDAP se usuário válido (acesso
externo)externo)
25. Hospital de Clínicas de Porto Alegre
Esquema do Componente de LogonEsquema do Componente de Logon
Novo Componente de Logon
Caso Externo Caso Interno
Muda URL/https
Form seguro
Verifica LDAP
Intranet
Logon no Joomla
com usuário genérico
Form com Autosubmit
Acesso Negado
OKOK
26. Hospital de Clínicas de Porto Alegre
Controlando Acesso ao ConteúdoControlando Acesso ao Conteúdo
• Componente JACLPlusComponente JACLPlus
• Criação de novos níveis/grupos de acessoCriação de novos níveis/grupos de acesso
(New Access Control List - ACL)(New Access Control List - ACL)
• Acesso ao conteúdo do site depende do ACLAcesso ao conteúdo do site depende do ACL
aplicadoaplicado
• Usuários/Conteúdos/Template IntranetUsuários/Conteúdos/Template Intranet
pertencem a um ACL específicopertencem a um ACL específico
27. Hospital de Clínicas de Porto Alegre
Níveis/Grupos de AcessoNíveis/Grupos de Acesso
• Níveis de acesso (ACL):Níveis de acesso (ACL):
– PublicPublic
– InternetInternet
– IntranetIntranet
• Grupos de Usuário:Grupos de Usuário:
– Public FrontEnd (Public, Internet)Public FrontEnd (Public, Internet)
– Usuários Intranet (Public, Registered,Usuários Intranet (Public, Registered,
Intranet)Intranet)
28. Hospital de Clínicas de Porto Alegre
Níveis de Acesso/Grupos de UsuáriosNíveis de Acesso/Grupos de Usuários
• Public FrontEnd (Public, Internet)Public FrontEnd (Public, Internet)
– Usuário com acesso ao conteúdo aberto doUsuário com acesso ao conteúdo aberto do
portalportal
– Não necessita de logonNão necessita de logon
• Usuários Intranet (Public, Registered,Usuários Intranet (Public, Registered,
Intranet)Intranet)
– Usuário com acesso para ambos conteúdosUsuário com acesso para ambos conteúdos
aberto e da intranet do portal, excetoaberto e da intranet do portal, exceto
material exclusivo da internet.material exclusivo da internet.
– Necessita de logonNecessita de logon
29. Hospital de Clínicas de Porto Alegre
Níveis de AcessoNíveis de Acesso
• Conteúdo exclusivo ou compartilhadoConteúdo exclusivo ou compartilhado
– MenusMenus
– Conteúdo EstáticoConteúdo Estático
– Seções/CategoriasSeções/Categorias
– MódulosMódulos
– ComponentesComponentes
30. Hospital de Clínicas de Porto Alegre
HacksHacks
• index.phpindex.php
– Mudar tema para Intranet caso usuárioMudar tema para Intranet caso usuário
tenha ACL “intranet”tenha ACL “intranet”
– Incluir código:Incluir código:
// loads template file
if (strstr($my->jaclplus, '6')) $cur_template = "intranet";
31. Hospital de Clínicas de Porto Alegre
HacksHacks
• includes/joomla.php:includes/joomla.php:
– Permitir logon múltiplos com o mesmoPermitir logon múltiplos com o mesmo
usuário, comentar:usuário, comentar:
// check to see if site is a production site
// allows multiple logins with same user for a demo site
/*
* COMENTADO PELO GSIS/SSR/BD PARA PERMITIR
* MULTIPLOS LOGONS COM O MESMO USUÁRIO
*
* if ( $_VERSION->SITE ) {
// delete any old front sessions to stop duplicate sessions
$query = "DELETE FROM #__session"
. "n WHERE session_id != '$session->session_id'"
. "n AND username = '$row->username'"
. "n AND userid = $row->id"
. "n AND gid = $row->gid"
. "n AND guest = 0"
;
$this->_db->setQuery( $query );
$this->_db->query();
} FIM DO COMENTÁRIO*/
32. Hospital de Clínicas de Porto Alegre
Módulo: Link para AplicativosMódulo: Link para Aplicativos
• Identifica o nome da máquinaIdentifica o nome da máquina
• Busca no banco Oracle a relação deBusca no banco Oracle a relação de
aplicativos da referida máquinaaplicativos da referida máquina
• Grava Cookie com nome da máquinaGrava Cookie com nome da máquina
• Monta lista com links para arquivos .lnkMonta lista com links para arquivos .lnk
contendo a chamada ao aplicativocontendo a chamada ao aplicativo
• Atualização feita por aplicativo OracleAtualização feita por aplicativo Oracle
(Designer)(Designer)
33. Hospital de Clínicas de Porto Alegre
Adaptações FuturasAdaptações Futuras
• Permitir criar usuário automaticamente:Permitir criar usuário automaticamente:
• Usuários ExternosUsuários Externos
– Usuário digita informações em form seguroUsuário digita informações em form seguro
– Verificar se usuário é válido no LDAPVerificar se usuário é válido no LDAP
– Verificar se usuário não existe no JoomlaVerificar se usuário não existe no Joomla
• Caso não existe criarCaso não existe criar
• Logar no JoomlaLogar no Joomla
34. Hospital de Clínicas de Porto Alegre
Adaptações FuturasAdaptações Futuras
• Usuários InternosUsuários Internos
– Usuário clica no link ou usa URL diretaUsuário clica no link ou usa URL direta
– Script obtém nome do usuário logado noScript obtém nome do usuário logado no
sistemasistema
– Verificar se usuário é válido no LDAPVerificar se usuário é válido no LDAP
– Verificar se usuário não existe no JoomlaVerificar se usuário não existe no Joomla
• Caso não existe criarCaso não existe criar
• Logar no JoomlaLogar no Joomla