Las normas expuestas son de obligado cumplimiento. La STIC podrá estudiar los casos excepcionales los cuales serán gestionados a través de los responsables del proyecto correspondiente y autorizados por el Área de Gobernanza de la STIC. Asimismo cualquier aspecto no recogido en estas normas deberá regirse en primera instancia por las guías técnicas correspondientes al esquema nacional de seguridad y esquema nacional de interoperabilidad según correspondencia y en su defecto a los marcos normativos y de desarrollo software establecidos por la Junta de Andalucía, debiendo ser puesto de manifiesto ante la STIC.
La STIC se reserva el derecho a la modificación de la norma sin previo aviso, tras lo cual, notificará del cambio a los actores implicados para su adopción inmediata según la planificación de cada proyecto.
En el caso de que algún actor considere conveniente y/o necesario el incumplimiento de alguna de las normas y/o recomendaciones, deberá aportar previamente la correspondiente justificación fehaciente documentada de la solución alternativa propuesta, así como toda aquella documentación que le sea requerida por la STIC para proceder a su validación técnica.
Contacto Arquitectura: l-arquitectura.stic@juntadeandalucia.es
Los cambios en la normativa vendrán acompañados de un registro de las modificaciones. De este modo se podrá realizar un seguimiento y consultar su evolución. Ordenándose de mas recientes a menos recientes, prestando especial cuidado a las cabezeras de la tablas dónde se indican las fechas de entrada en vigor y versión.
Esta librería permitirá de hacer uso de la Api proporcionada por Bdu y tener acceso a utilidades relacionadas con la operativa de Bdu.
Actualmente la librería tiene las siguiente funcionalidades:
De cara a priorizar futuras funcionalidades, si algún proveedor tiene la necesidad de alguna funcionalidad adicional se deberá de comunicar a l-arquitectura.stic.sspa@juntadeandalucia.es
BduApiClient | MacoApiClient | sasutils-xml | sasutils-parse | sasutils-file |
---|---|---|---|---|
2.2.0 | 2.0.0 | 2.0.2 | 2.0.2 | 2.0.2 |
2.0.0.1 | 1.8.0.2 | 1.1.0.1 | 1.1.0.1 | 1.1.0.1 |
1.2.0.2 | 1.8.0.2 | 1.0.0.1 | 1.0.0.1 | 1.0.0.1 |
1.2.0.1 | 1.8.0.1 | 1.0.0.1 | 1.0.0.1 | 1.0.0.1 |
1.1.0.2 | 1.7.2.2 | 1.0.0.1 | 1.0.0.1 | 1.0.0.1 |
1.1.0.1 | 1.7.2.2 | 1.0.0.1 | 1.0.0.1 | 1.0.0.1 |
1.0.1.1 | 1.7.0.1 | 1.0.0.1 | 1.0.0.1 | 1.0.0.1 |
1.0.0.1 | 1.3.1.1 | 1.0.0.1 | 1.0.0.1 | 1.0.0.1 |
v2.0.2
v1.2.0.2
v1.1.0.2
v1.0.1.1
La api de integración con bdu, está construida en base a un contrato de servicio especificado en "bduApiClient-api" que es implementado por conectores específicos a la solución tecnológica que se decida en el ámbito del proyecto. Actualmente las soluciones tecnlógicas aportadas resuelven los datasources de BDU mediante JAX-WS ó JPA.
Para incluir la librería en un proyecto Maven es necesario realizar los siguientes pasos:
Especificando el repositorio en la configuración global.
<project> ... <repositories> <repository> <id>Repo_SAS</id> <name>Repo_SAS</name> <url>http://calidad.sas.junta-andalucia.es/artifactory/sas-internal</url> </repository> </repositories> ... </project>
Otra opción es especificar un perfil en concreto en ${user.home}/.m2/settings.xml
<mirrors> <mirror> <id>Repo_SAS</id> <name>Repo_SAS</name> <url>http://snap.java.lib.repository.dev.alm.sas.junta-andalucia.es</url> <mirrorOf>*</mirrorOf> </mirror> </mirrors> <profiles> <profile> <activation> <activeByDefault>true</activeByDefault> </activation> <repositories> <repository> <id>nexus-public</id> <name>Nexus Public Repository</name> <url>http://snap.java.lib.repository.alm.pre.sas.junta-andalucia.es</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories> </profile> </profiles>
Hay que tener en cuenta, que se deberá de tener activo el perfil.
2. Especificar la dependencia principal contra la api en el POM del proyecto que requiere la funcionalidad
... <dependencies> <!--BDU--> <dependency> <groupId>es.ja.csalud.sas.componentescomunes.bduapiclient</groupId> <artifactId>bduApiClient-api</artifactId> <version>x.x.x.x</version> </dependency> ...
... <dependencies> <!--BDU--> <dependency> <groupId>es.ja.csalud.sas.componentescomunes.bduapiclient</groupId> <artifactId>bduApiClient-jpa-impl</artifactId> <version>x.x.x.x</version> </dependency> ...
... <dependencies> <!--BDU--> <dependency> <groupId>es.ja.csalud.sas.componentescomunes.bduapiclient</groupId> <artifactId>bduApiClient-ws-impl</artifactId> <version>x.x.x.x</version> </dependency> ...
Según sea la solución tecnológica utilizada la configuración de la infraestructura necesaria para interaccionar con bdu es diferente, aunque ambas soluciones basadas en SasConfiguration.
Para que la libreria se autoconfigure mediante la libreria sasconfiguration, se tendran que realizar las siguientes acciones:
Añadir la siguiente dependencia:
... <dependencies> <!--BDU--> <dependency> <groupId>es.ja.csalud.sas.componentescomunes.bduapiclient</groupId> <artifactId>bduApiClient-config</artifactId> <version>x.x.x.x</version> </dependency> ...
De forma alternativa se podran definir manualmente estas configuraciones.Estos parametros se definiran usando la libreria sasconfiguration.(SAS configuration)
Actualmente existe un objeto de configuración:
BduApiConfig
gestiona la configuración general de la librería.... @Produces public BduApiConfig getBduApiConfig() { final BduApiConfig bduApiConfig = new BduApiConfig("http://ws-bdu-pre.diraya-test.sspa.junta-andalucia.es/web_services/", "338"); ... return bduApiConfig; } ...
Para su uso mediante la Factoria, se debera de crear la factoria pasandole al constructor como parametro la configuracion de la libreria.
... public BduFactory getBduFactory() { return new BduFactory(getBduApiConfig()); } ...
La configuración del conector JPA espera una clase del tipo "BduApiConfig" propia de JPA, debido a las características propias de las impl de ws y jpa se mantendrán separadas las dos necesidades, atendiendo al ppo de segregación de responsabilidades, y permitiendo la coexistencia de varias implementaciones de los servicios expuestos en caso de ser necesario.
Básicamente define una serie de timeouts para los servicios integrados, ya que el resto de configuración necesaria para el datasource se realizará como es habitual en un proyecto JPA mediante su "persistence.xml" correspondiente en el proyecto de su aplicación, así como el mapeo de tablas a entidades.
El objeto QuerysBduUserSearchDto, es la representación de los criterios de búsqueda que son soportados por el api client. Dicho objeto permite los siguientes valores.
Los filtros de búsqueda basados en cadenas que soportan modificadores se habilitan pasando al criteria el wildcard "*" y en base a su posición se comportan de un modo u otro. Las restricciones impuestas para la longitud de las cadenas entrantes como parámetros son dependientes
Es obligatorio informar al menos uno de los siguientes campos para poder hacer uso del criteria, en caso de no informarse se dará una "UnsupportedOperationException" al operar el servicio.
Los métodos de servicio que la api proporciona son los siguientes:
Búsqueda de usuarios (consulta detallada/corta)
La búsqueda de usuarios se realizará mediante los métodos "findUsers" que soportan el criteria descrito anteriormente. Adicionalmente para el conector JPA dichos métodos soportan la indicación de valores para la paginación ó la definición de un valor máximo para el número de resultados devueltos.
Los métodos sin paginación se han marcado para su retirada por obsolescencia y serán retirados a partir de la versión 3.0 del api client. La información devuelta para los métodos paginados devolverán en lugar de una lista de pacientes un objeto de tipo "Page" de pacientes.
Una cuestión importante a tener en cuenta es que el conector basado en JAX-WS no dispone de soporte de paginación ni de máximo número de resultados devueltos actualmente debido a las limitaciones de los contratos de interoperación, y en caso de hacer uso de dichos métodos de servicio se elevarán excepciones fuera de la capa de servicio.
Búsqueda de recién nacidos
La búsqueda de recién nacidos nos devolverá una lista de usuarios que están asociados al nhusa indicado y tambien tienen soporte para la paginación.
Todos los métodos de servicio están preparados para elevar excepciones internas encapsuladas en una excepción de tipo BduApiClientException, sin embargo las implementaciones finales de los conectores a los datasource (JAX-WS ó JPA) son los que disponen de los valores de categorización y tipificación de la excepción.
Paginación
Conector JPA
El conector JPA dispone de características internas para paginar sobre el número de resultados devueltos, además es posible especificar conjuntos de valores especiales que permiten conocer el total del registros del dataset que puede ser devuelto por la búsqueda al definir ambos valores de "page" y "count" a cero.
La implementación actual lo que espera por parte de los desarrolladores es que se haga un uso razonable de los servicios de búsqueda, haciendo uso de las características de paginación cuando sea apropiado, y consultado la información detallada sólo en aquellos casos en los que una navegación en profundidad sea necesaria.
Por otro lado el conector JPA no soporta la devolución de información detallada paginada por cuestiones de rendimiento, devolviendo una excepción en caso de un uso inadecuado.
En el caso de hacer uso de las búsquedas sin soporte para paginación los límites establecidos para los contratos del servicio SOA CCUSU01 serán los aplicables, actualmente 50 registros.
Conector JAX-WS
El conector JAX-WS no tiene soporte a paginación y su limitación sobre el número de resultados devueltos será la aplicable definida en los contratos de operación del servicio CCUSU01.
En caso de operar los servicios con paginación haciendo uso de este conector, se elevarán excepciones hasta la capa de servicio.