Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

Table Excerpt Include
isFirstTimeEntertrue
v2
nameLOGO_JUNTA
merge-tablestrue
pageRecursos
transposeauto
typepage

Contenido

Tabla de contenidos
maxLevel5
indent20px
exclude(Cumplimiento normativo|Histórico de cambios)

 

Resumen
Sección
Columna
width50%
Sugerencia
  • Versión: v01r21
  • Fecha publicación:  
  • Entrada en vigor desde:  
Image Removed





Columna
width1%

Image Added



Cumplimiento normativo

Advertencia

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

Histórico de cambios

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 cabeceras de la tablas dónde se indican las fechas de entrada en vigor y versión.

Expandir
titleVersiones de la normativa
Versiónv01r21Fecha publicación

 

Fecha entrada en vigor

 

Alcance
  • Integración con BDU para desarrollos Java desde la versión 2.2.0 del componente.


1. Introducció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:

  • Versión <= 1.2
    • Consulta detallada.
    • Consulta corta.
    • Consulta recien recién nacido
  • Version Versión >= 2.0
    • Se matienen mantienen las interfaces de las versiones anteriores 1.2.
    • Se añaden métodos para consulta paginadas, funcionales solamente en la implementación del conector JPA. El conector actual basado en WS lanzará NotSupportedException. 
  • Version Versión >= 2.23 | 3.0.1.1
    • Se añaden servicios de alta de usuarios y recién nacidos para la implemetación implementación WS.
  • Versión >= 2.4 | 3.1.0
    • Se añaden servicios de modificación de datos de usuarios para la implementación WS.

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

2. Dependencias


Nota
titleNota sobre el versionado dual (Ramas 2.x vs 3.x)

Para dar soporte a las diferentes plataformas tecnológicas del SAS, la librería mantiene dos líneas de desarrollo concurrentes. La rama  2.x  está diseñada para mantener la retrocompatibilidad con entornos  JDK 1.7 / Java EE. Por su parte, la rama  3.x  está adaptada a las nuevas arquitecturas basadas en  JDK 21 / Jakarta EE. Ambas ramas son funcionalmente equivalentes y evolucionan en paralelo en cuanto a contratos y servicios públicos se refiere, siendo la 3.0.1 equivalente a la base funcional de la 2.3.3, y nivelándose progresivamente en versiones posteriores.


2. Dependencias


v1.1.0.1Uso de la nueva libreria de maco
BduApiClientMacoApiClientsasutils-xmlsasutils-parsesasutils-file2.2.02.0.02.0.22.0.22.0.22.0.0.11.8.0.21.1.0.11.1.0.11.1.0.11.
BduApiClient (JDK 1.7)MacoApiClientsasutils-xmlsasutils-parsesasutils-filesasconfiguration-annotationestructuraApiClient-apiclaveequipo-api-client
2.5.02.0.12.0.2
2.0.2
1
2.
8.
0.21.
0
1.02.1.41.
0
1.0
2.
11
4.02.0.1
1.
2.0.
1
2
1
2.
8.
0.
1
2
1
2.0.
0.1
21.
0
1.02.
1
1.
0.0.1
41.1.0
.
2
1
.
7
3.
2.2
32
1.0
.0.1
1
2.0.22.0.
1
2
1
2.0.
0.1
21.1.02.1.41.
7
1.0
2.3.2
1.0
2.0.1
1
2.0.
0.1
22.0.22
1
.0.
0
21.1
1
.02.1.
1
41.
7
1.0
2.3.1
1
2.0.12.0.
1
2
1
2.0.22.0.
1
21.
0
1.02.1.41.
0
1.0
.1
1
2.3.
1.1
0
1
2.0.0
.1
1
2.0.22.0.
1
2
1
2.0.
0
21.1.0

3. Historial de Cambios

  • v2.0.2

    • Modificación de la política de versionado con reducción a tres dígitos
    • Alta de recién nacidos a través del web-service de bdu expuesto para tal fin y bajo el contrato de la versión 2.12.
    • Alta de usuarios en bdu a través del web-service de bdu expuesto para tal fin y bajo el contrato actual de la versión 2.12. 
    • Fixes para el servicio de consulta de recien nacidos en base al nuhsa de los progenitores
    • Maestras conteniendo enumerados para los elementos más habituales relacionados con BDU según la spec del último contrato disponible en la documentación de la OTI que está versionado como 2.3
    • Proyecto de ejemplo con interacción mixta de las dos implementaciones en base a indentificación de servicios con @Named
    • Modificaciones en las entities a nivel de api:
      • En las políticas de los getters nulos, devolviéndose ahora objetos vacíos listos para su uso en lugar de nulos.
      • Nuevos elementos de negocio para direcciones,adscripcion, etc..
    • Se añade una nueva interfaz para la interacción con los datos de BDU para el alta de usuarios  BduRepository, esta sustituirá a futuro el componente de negocio actual BduSearch, pero aún no se marca como deprecado. 
    • Se actualizan las dependencias de todos los componentes estructurales pasando a ser:
      • macoApiClient:2.0.0
      • Jpa-impl:
        • estructuraApiClient:2.1.4
        • claveEquipoApiClient:1.1.0
      • sasutils:2.0.2
  • v2.0.0.1
    • Actualización de las dependencias a sas-utils en su versión mas reciente 1.1.0.1
    • Se modifican los servicios de bduSearch para dar soporte a la paginación de registros.
    • Se incluye el conector JPA para consulta de BDU.
    • Se incluyen valores comunes de maestras relacionadas con bdu en el empaquetado bduApiClient-maestras.
    • Se incluyen dependencias a estructuraApiClient para poder traer la información relativa a los profesionales y estructura que se requiera para las consultas detalladas. 
  • v1.2.0.2

    • Hotfix para cambiar a la version 1.8.0.2 de la libreria de maco
  • v1.2.0.1
    • Adaptacion a la libreria de sasconfiguration
  • v1.1.0.2

    • Hotfix para cambiar el orden de generacion de las propiedades del header de los mensajes 
  • 2.1.41.1.0
    2.2.02.0.02.0.22.0.22.0.21.1.02.1.41.1.0
    2.0.0.11.8.0.21.1.0.11.1.0.11.1.0.11.1.02.1.2.21.0.0.1
    1.2.0.21.8.0.21.0.0.11.0.0.11.0.0.11.0.0.1--
    1.2.0.11.8.0.11.0.0.11.0.0.11.0.0.11.0.0.1--
    1.1.0.2
    1.7.2.2
    v1
    1.0.
    1
    0.1
    • Modificado el constructor de la clase de configuracion.
    1.0.0.11
    v1
    .0.0.1
  • Añadidos servicios de consulta
  • 4. Integración de la librería

    Image Removed

    Integración con el api client

    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:

    1. Agregar el repositorio de la Junta de Andalucía. Es posible realizarlo de dos formas diferentes.
    ---
    1.1.0.11.7.2.21.0.0.11.0.0.11.0.0.1---
    1.0.1.11.7.0.11.0.0.11.0.0.11.0.0.1---
    1.0.0.11.3.1.11.0.0.11.0.0.11.0.0.1---


    BduApiClient (JDK 21)MacoApiClientsasutils-xmlsasutils-parsesasutils-filesasconfiguration-annotationestructuraApiClient-apiclaveequipo-api-client
    3.2.03.0.12.0.22.0.22.0.23.0.23.0.02.0.1
    3.1.03.0.12.0.22.0.22.0.23.0.23.0.02.0.1
    3.0.1.13.0.12.0.22.0.22.0.23.0.23.0.02.0.1
    3.0.0.13.0.12.0.22.0.22.0.23.0.23.0.02.0.0.1


    3. Historial de Cambios


    Expandir
    titleVersión 2.5.0 (JDK 1.7) / 3.2.0 (JDK 21)
    • Corrección en la obtención de información de desplazamiento de usuarios para determinar si el usuario está desplazado (OTARQ-2644). Esta versión resuelve un bug por el cual no se indicaba adecuadamente si el desplazamiento se encontraba activo o no. Igualmente permite recuperar la fecha de inicio del desplazamiento, y los meses de su duración.
    Expandir
    titleVersión 2.4.0 (JDK 1.7) / 3.1.0 (JDK 21)
    Expandir
    titleVersión 2.3.3 (JDK 1.7) / 3.0.1.1 (JDK 21)
    • Forzado de endpoints HTTPS.
    • Actualización del componente a JDK 21 y Jakarta EE 10 (Versión v3.x):
      • Se refactorizan los pom.xml para centralizar la gestión del versionado de los componentes y plugins en el proyecto padre.
      • Actualización a Jakarta EE 10.0.0 (La versión con soporte oficial para JDK 21 es la 11.0.0 - https://jakarta.ee/specifications/platform/11/)
        • Refactorizado de paquetes al actualizar a Jakarta 10.0.0:
          • javax.annotation.* => jakarta.annotation.*
          • javax.ejb.* => jakarta.ejb.*
          • javax.el.* => jakarta.el.*
          • javax.enterprise.* => jakarta.enterprise.*
          • javax.faces.* => jakarta.faces.*
          • javax.inject.* => jakarta.inject.*
          • javax.persistence.* => jakarta.persistence.*
          • javax.servlet.* => jakarta.servlet.*
      • Actualización de schemas xml: beans.xml, persistence.xml y diversos entity-mappings.xml
      • Actualización de Mockito a 5.17.0
        • Refactorizado de paquetes al actualizar a Mockito 5.17.0:
          • org.mockito.Matchers.any => org.mockito.ArgumentMatchers.any
          • org.mockito.Matchers.anyObject => org.mockito.ArgumentMatchers.any
          • org.mockito.Matchers.eq => org.mockito.ArgumentMatchers.eq
      • Actualización de JUnit 4 a JUnit 5
      • Actualización de dependencias::
      • Eliminación de dependencia obsoleta powermock e incompatible con JUnit5. Se suple con una implementación nativa:
        • Se adapta el test es.ja.csalud.sas.componentescomunes.bduapiclient.jpa.control.jpa.PartialListQueryTest
      • Actualización de Shrinkwrap de 2.2.4 a 3.3.4
      • Actualización de Arquillian de 1.1.11.Final a 1.9.4.Final
        • Reemplazo de Arquillian-Openliberty por Arquillian-Payara ya que se presentaban problemas con Jakarta 10. Arquillian-Openliberty según la documentación requiere arquillian-support-jakarta:3.0 (Actualmente solo disponible en SNAPSHOT en repositorio git - https://github.com/OpenLiberty/liberty-arquillian/blob/main/pom.xml), pero esa versión aún se encuentra en desarrollo, siendo la última publicada en mvnrepository la 2.1 - https://mvnrepository.com/artifact/io.openliberty.arquillian/arquillian-liberty-support-jakarta
        • Inclusión de configuración de arquillian-payara (Payara) en src/testpayara/config/glassfish-resources.xml
        • Inclusión de almacén de certificados personalizado para conexiones seguras entre Payara y la infraestructura del SAS (/cacerts-sas-ssl.p12)
        • Configuración de profile "integration-managed" para pruebas de integración
        • Correcciones y ajustes en pruebas de integración de los componentes de la librería (BaseBduSearchTestIT, BduFrameworkBaseTestIT)
      • Actualización de Dropwizard Metrics a 4.2.32
      • Actualizados componentes comunes del SAS:
        • sasutils.version: 2.0.2 (Sin cambios)
        • macoApiClient: 2.0.1 => 3.0.1
        • claveequipoApiClient: 1.1.0 => 2.0.1
        • estructuraApiClient: 2.1.4 => 3.0.0
        • sasconfiguration-annotation: 1.1.0 => 3.0.2
        • sasconfiguration-api: 1.2.0 => 3.0.2
        • sasconfiguration-cdi: 2.2.1 => 3.0.2
        • sasconfiguration-core: 2.2.1 => 3.0.2
      • Se crea una base de datos en memoria para pruebas con H2, eliminando la dependencia de tener que tener acceso a los esquemas de Oracle.
      • Migración del proyecto de ejemplo "bduApiClient-testproject" para hacer uso de las nuevas versiones de componentes.
    Expandir
    titleVersión 2.3.2 (JDK 1.7)
    • Añadido configuración de endpoints para poder soportar HTTPS
    Expandir
    titleVersión 2.3.1 (JDK 1.7)
    • Modificación de la política de versionado con reducción a tres dígitos
    • Alta de recién nacidos a través del web-service de BDU expuesto para tal fin y bajo el contrato de la versión 2.12.
    • Alta de usuarios en BDU a través del web-service de BDUexpuesto para tal fin y bajo el contrato actual de la versión 2.12. 
    • Fixes para el servicio de consulta de recién nacidos en base al nuhsa de los progenitores
    • Maestras conteniendo enumerados para los elementos más habituales relacionados con BDU según la spec del último contrato disponible en la documentación de la OTI que está versionado como 2.3
    • Proyecto de ejemplo con interacción mixta de las dos implementaciones en base a identificación de servicios con @Named
    • Modificaciones en las entities a nivel de API:
      • En las políticas de los getters nulos, devolviéndose ahora objetos vacíos listos para su uso en lugar de nulos.
      • Nuevos elementos de negocio para direcciones,adscripción, etc..
    • Se añade una nueva interfaz para la interacción con los datos de BDU para el alta de usuarios  BduRepository, esta sustituirá a futuro el componente de negocio actual BduSearch, pero aún no se marca como deprecado. 
    • Se actualizan las dependencias de todos los componentes estructurales pasando a ser:
      • macoApiClient:2.0.1
      • Jpa-impl:
        • estructuraApiClient:2.1.4
        • claveEquipoApiClient:1.1.0
      • sasutils:2.0.2
    Expandir
    titleVersión 2.3.0 (JDK 1.7)
    • Se incluyen los campos citizenshipcode y citizenship para consultar la nacionalidad del paciente.

    • Se incluye la fecha de fallecimiento, para pasivos por fallecimiento y nacidos exitus.

    • Se actualiza la versión del contrato del ws, pasándo a ser la 2.16 de WSBDU

    • Se incorporan las consultas:
      • Consulta de nacionalidad.
      • Consulta de fecha de fallecimiento.
    Expandir
    titleVersión 2.2.0 (JDK 1.7)
    • Alta de nuevos usuarios en bdu a través del modelo INSUSU01 [bduApiClient-ws-impl]
      • No soporta desplazamientos estos deben hacerse a través del modelo de modificación de datos en BDU
    • Alta de recien nacidos en bdu a través del modelo INSUSU03 [bduApiClient-ws-impl]
      • No soporta desplazamientos estos deben hacerse a través del modelo de modificación de datos EN BDU
      • La bandera relativa a "nacido muerto" se calcula en base al tipo de pasivo indicado para el paciente.
      • LA bandera relativa a "no identificable" se calcula en base los id del paciente sino dispone de ninguno de:
        • DOCUMENTO IDENTIFICATIVO
        • E111
        • CODSNS
        • NUHSA
        • CIP
    • Actualización de dependencias
    Expandir
    titleVersión 2.0.0.1 (JDK 1.7)
    • Actualización de las dependencias a sas-utils en su versión mas reciente 1.1.0.1
    • Se modifican los servicios de bduSearch para dar soporte a la paginación de registros.
    • Se incluye el conector JPA para consulta de BDU.
    • Se incluyen valores comunes de maestras relacionadas con bdu en el empaquetado bduApiClient-maestras.
    • Se incluyen dependencias a estructuraApiClient para poder traer la información relativa a los profesionales y estructura que se requiera para las consultas detalladas.
    • Creación de proyecto test-project de ejemplo para futuras intregaciones con bdu
    Expandir
    titleVersión 1.2.0.2 (JDK 1.7)
    • Hotfix para cambiar a la versión 1.8.0.2 de la librería de maco
    Expandir
    titleVersión 1.2.0.1 (JDK 1.7)
    • Adaptación a la librería de sasconfiguration
    Expandir
    titleVersión 1.1.0.2 (JDK 1.7)
    • Hotfix para cambiar el orden de generación de las propiedades del header de los mensajes
    Expandir
    titleVersión 1.1.0.1 (JDK 1.7)
    • Uso de la nueva librería de maco 1.7.2.2
    Expandir
    titleVersión 1.0.1.1 (JDK 1.7)
    • Modificado el constructor de la clase de configuración.
    Expandir
    titleVersión 1.0.0.1 (JDK 1.7)
    • Añadidos servicios de consulta:
      • Consulta detallada.
      • Consulta corta.
      • Consulta recien nacido

    4. Integración de la librería

    Image Added

    Integración con el api client

    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 tecnoló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:

    1. Agregar el repositorio de la Junta de Andalucía. Para ello, seguir las indicaciones de la página Repositorio de artefactos

    Especificando el repositorio en la configuración global.

        
    Bloque de código
    <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

    Bloque de código
    <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
    1. .

    2. Especificar la dependencia principal contra la api en API en el POM del proyecto que requiere la funcionalidad

      

    Bloque de código
    ...
        <dependencies>
            <!--BDU-->
            <dependency>
                <groupId>es.ja.csalud.sas.componentescomunes.bduapiclient</groupId>
                <artifactId>bduApiClient-api</artifactId>
                <version>x.x.x.x</version>
            </dependency>
    ... 


            
    • Conector JPA
    Bloque de código
    ...
        <dependencies>
            <!--BDU-->
            <dependency>
                <groupId>es.ja.csalud.sas.componentescomunes.bduapiclient</groupId>
                <artifactId>bduApiClient-jpa-impl</artifactId>
                <version>x.x.x.x</version>
            </dependency>
    ... 


    • Conector JAX-WS
    Bloque de código
    ...
        <dependencies>
            <!--BDU-->
            <dependency>
                <groupId>es.ja.csalud.sas.componentescomunes.bduapiclient</groupId>
                <artifactId>bduApiClient-ws-impl</artifactId>
                <version>x.x.x.x</version>
        </dependency>
    ...



    Configuración

    Según sea la solución tecnológica utilizada la configuración de la infraestructura necesaria para interaccionar con bdu BDU es diferente, aunque ambas soluciones basadas en SasConfiguration.

    JAX-WS

    Para que la libreria librería se autoconfigure mediante la libreria librería sasconfiguration, se tendran tendrán que realizar las siguientes acciones:

    • Añadir la siguiente dependencia:

      Bloque de código
      ...
          <dependencies>
              <!--BDU-->
              <dependency>
                  <groupId>es.ja.csalud.sas.componentescomunes.bduapiclient</groupId>
                  <artifactId>bduApiClient-config</artifactId>
                  <version>x.x.x.x</version>
              </dependency>
      ... 
    • Agregar las dependencias necesarias de la libreria librería sasconfiguration
    • definir los siguientes parametrosparámetros:
      • es.ja.csalud.sas.componentescomunes.bduapiclient.config.url                 |  Se Se configura el valor de la url dónde se encuentra el ws WS de bduBDU.
      • es.ja.csalud.sas.componentescomunes.bduapiclient.config.modulecode | Se configura el código maco del módulo que representa la aplicación.

    De forma alternativa se podran podrán definir manualmente estas configuraciones. Estos parametros parámetros se definiran definirán usando la libreria librería sasconfiguration.(SAS configuration)

    Actualmente existe un objeto de configuración:

    • BduApiConfig gestiona la configuración general de la librería.
      Ejemplo:

    Bloque de código
    languagejava
    ...
    @Produces public BduApiConfig getBduApiConfig() {
            EnumMap<BduEndPointType, String> endPoints = new EnumMap<BduEndPointType, String>(BduEndPointType.class);
            endPoints.put(BduEndPointType.SOLICITUD, "/wsBDU.ashx");
           ...
    @Produces public BduApiConfig getBduApiConfig() {
     final BduApiConfig bduApiConfig = new BduApiConfigBaseBduApiConfig("http://ws-bdu-servicios.pre.diraya-testsas.sspa.junta-andalucia.es/web_services/usuario", "338"endPoints);
            bduApiConfig.setModuleCode("CÓDIGO_EN_MACO_MODULO_SISTEMA");
     ...
            return bduApiConfig;
     }
    ... 
    Para su uso mediante la FactoriaFactoría, se deberadeberá de crear la factoriafactoría pasandolepasándole al constructor como parametroparámetro la configuracionconfiguración de la librerialibrería.
    Bloque de código
    languagejava
    ...
    public BduFactory getBduFactory() {
     return new BduFactory(getBduApiConfig());
    }
    ... 


    JPA

    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 principio 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. 

    Operación

    Criterias

    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.

    • Flags, estos son los modificadores soportados:estos son los modificadores soportados:
      • detailedInfo: Booleano indicando si se desea la información detallada (true) o resumida (false). Default: false.
      • famarciaInfo: Booleano indicando si se desea la información detallada sobre farmacia. Default: False
      • fullAddress
      • detailedInfo: Booleano indicando si se desea la información detallada (true) o resumida (false). Default: false.
      • famarciaInfo: Booleano indicando si se desea la información detallada sobre farmacia. Default: False
      • fullAddress: Booleano indicando si se desea la información detallada del domicilio del paciente. Default: False.
    • Identificadores de usuario único
      • Nhusa: Alfanumérico.
      • codSns: Alfanumérico.
      • socialSecurityNumber: Alfanumérico.
      • documentIdType + documentType + documentId: La tripla permite identificar un paciente por el identificador definido, en caso de no informar de forma explicita el tipo de indentificador, se supone por defecto DNI. 
    • Filtros de búsqueda
      • birthDateYear: Alfanumérico.
      • name: Alfanumérico. Soporta modificadores "startWith","endsWith","contains" y "exact match".
      • lastname1: Alfanumérico. Soporta modificadores "startWith","endsWith","contains" y "exact match".
      • lastName2: Alfanumérico. Soporta modificadores "startWith","endsWith","contains" y "exact match".

    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 

    • startWith: "*<search_string>"
    • endsWith: "<search_string>*"
    • contains: "*<search_string>*"
    • exact match: "<match_string>"

    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.

    • Un identificador.
    • Una lista de nhusas con al menos un elemento.
    • Una tupla de nombre,apellido1 y apellido2 en cualquiera de sus posibles combinaciones.

    Métodos de 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. 
      • del domicilio del paciente. Default: False.
    • Identificadores de usuario único
      • Nhusa: Alfanumérico.
      • codSns: Alfanumérico.
      • socialSecurityNumber: Alfanumérico.
      • documentIdType + documentType + documentId: La tripla permite identificar un paciente por el identificador definido, en caso de no informar de forma explicita el tipo de identificador, se supone por defecto DNI. 
    • Filtros de búsqueda
      • birthDateYear: Alfanumérico.
      • name: Alfanumérico. Soporta modificadores "startWith","endsWith","contains" y "exact match".
      • lastname1: Alfanumérico. Soporta modificadores "startWith","endsWith","contains" y "exact match".
      • lastName2: Alfanumérico. Soporta modificadores "startWith","endsWith","contains" y "exact match".

    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 

    • startWith: "*<search_string>"
    • endsWith: "<search_string>*"
    • contains: "*<search_string>*"
    • exact match: "<match_string>"

    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.

    • Un identificador.
    • Una lista de nhusas con al menos un elemento.
    • Una tupla de nombre,apellido1 y apellido2 en cualquiera de sus posibles combinaciones.

    Métodos de 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 también tienen soporte para la paginación. 

    Modificación de usuarios:

    La librería proporciona cuatro métodos especializados para la modificación de datos de pacientes existentes en el BDU, cada uno correspondiente a un servicio específico del Sistema de Información Diraya. Todos los métodos requieren un usuario MACO (`petitionerUser`) con permisos adecuados y devuelven el paciente actualizado confirmado por el BDU.

    Modificación de datos básicos (MODUSU01)

    El método `updatePatientBasicData` recibe un objeto `UpdateBduUserBasicDataDto`. Y permite modificar información administrativa fundamental del paciente.

    Modificación de domicilio y datos de contacto (MODUSU02)

    El método `updatePatientAddress` recibe un objeto `UpdateBduUserAddressDto`. Y permite actualizar la dirección de residencia y la información de contacto del paciente.

    Modificación de datos de control (MODUSU03)

    El método `updatePatientControlData` recibe un objeto `UpdateBduUserControlDataDto`. Y permite modificar la situación administrativa y fechas de control del paciente.

    Modificación de datos de desplazamiento (MODUSU04)

    El método `updatePatientDisplacement` recibe un objeto `UpdateBduUserDisplacementDto`. Y  permite registrar o modificar la información de desplazamiento temporal del paciente.


    Todos los métodos de servicio están preparados para elevar excepciones internas encapsuladas en una excepción de tipo 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.