Compare commits
1 Commits
main
..
pip-platform
| Author | SHA1 | Date | |
|---|---|---|---|
| 8615e213de |
@@ -1,6 +0,0 @@
|
||||
custom-apis:
|
||||
- name: "localai"
|
||||
endpoint: "http://10.25.2.33:18080"
|
||||
model: "ornith-1.0-9b"
|
||||
api_key: "your-api-key" # only if auth is enabled
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"anthropicBaseURL": "http://10.25.2.33:18080/v1",
|
||||
"anthropicApiKey": "localai",
|
||||
"anthropicCustomModelOption": "ornith-1.0-9b"
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
# FarmaFinder Environment Variables
|
||||
|
||||
# PostgreSQL
|
||||
PG_PASSWORD=change-me-in-production
|
||||
|
||||
# Backend
|
||||
SESSION_SECRET=change-me-in-production
|
||||
CORS_ORIGIN=http://localhost:4000
|
||||
FARMACIAS_WEBHOOK_URL=
|
||||
|
||||
# Redis
|
||||
REDIS_PASSWORD=
|
||||
|
||||
# N8N Workflow Automation
|
||||
N8N_USER=admin
|
||||
N8N_PASSWORD=change-me
|
||||
N8N_EMAIL=admin@farmafinder.com
|
||||
|
||||
# Parapharmacy API
|
||||
PARAPHARMACY_API_URL=http://parapharmacy-api:3002
|
||||
PARAPHARMACY_CORS_ORIGIN=http://localhost:4000
|
||||
MONGODB_URI=mongodb://mongodb:27017/parapharmacy
|
||||
INGEST_API_KEY=dev-ingest-key-change-me
|
||||
ADMIN_API_KEY=dev-admin-key-change-me
|
||||
|
||||
# Expo Push Notifications (mobile)
|
||||
EXPO_ACCESS_TOKEN=
|
||||
|
||||
# OpenTelemetry
|
||||
VITE_FARO_ENDPOINT=http://localhost:4318
|
||||
VITE_FARO_APP_NAME=farmafinder-frontend
|
||||
VITE_FARO_ENV=production
|
||||
VITE_FARO_APP_VERSION=1.0.0
|
||||
+23
-235
@@ -5,165 +5,31 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
schedule:
|
||||
- cron: '0 6 * * 1'
|
||||
|
||||
jobs:
|
||||
audit-dependencies:
|
||||
name: Dependency Audit
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '22'
|
||||
cache: 'npm'
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
- name: Audit for known vulnerabilities
|
||||
run: npm audit --omit=dev --audit-level=high
|
||||
- name: Audit (all, informational)
|
||||
if: always()
|
||||
run: npm audit --audit-level=moderate || true
|
||||
|
||||
detect-changes:
|
||||
name: Detect Changes
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
backend: ${{ steps.filter.outputs.backend }}
|
||||
frontend: ${{ steps.filter.outputs.frontend }}
|
||||
parapharmacy-api: ${{ steps.filter.outputs.parapharmacy-api }}
|
||||
pip-platform: ${{ steps.filter.outputs.pip-platform }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dorny/paths-filter@v3
|
||||
id: filter
|
||||
with:
|
||||
filters: |
|
||||
backend:
|
||||
- 'apps/backend/**'
|
||||
- 'packages/**'
|
||||
frontend:
|
||||
- 'apps/frontend/**'
|
||||
- 'packages/**'
|
||||
parapharmacy-api:
|
||||
- 'apps/parapharmacy-api/**'
|
||||
- 'packages/**'
|
||||
pip-platform:
|
||||
- 'apps/pip-platform/**'
|
||||
|
||||
test-backend:
|
||||
name: Backend Tests
|
||||
needs: detect-changes
|
||||
if: needs.detect-changes.outputs.backend == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 15
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '22'
|
||||
cache: 'npm'
|
||||
- uses: actions/checkout@v3
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
- name: Install backend native deps
|
||||
run: npm rebuild sqlite3 bcrypt --workspace=farma-clic-backend
|
||||
run: cd backend && npm ci
|
||||
- name: Run tests
|
||||
run: npm test --workspace=farma-clic-backend
|
||||
|
||||
test-parapharmacy-api:
|
||||
name: Parapharmacy API Tests
|
||||
needs: detect-changes
|
||||
if: needs.detect-changes.outputs.parapharmacy-api == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 15
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '22'
|
||||
cache: 'npm'
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
- name: Run Parapharmacy API Tests
|
||||
run: npm test --workspace=farmafinder-parapharmacy-api
|
||||
|
||||
test-pip-platform:
|
||||
name: Pip Platform Tests
|
||||
needs: detect-changes
|
||||
if: false && needs.detect-changes.outputs.pip-platform == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 15
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
env:
|
||||
POSTGRES_DB: pip_test
|
||||
POSTGRES_USER: pip
|
||||
POSTGRES_PASSWORD: pip_test
|
||||
ports:
|
||||
- 5432:5432
|
||||
options: >-
|
||||
--health-cmd="pg_isready -U pip"
|
||||
--health-interval=10s
|
||||
--health-timeout=5s
|
||||
--health-retries=5
|
||||
redis:
|
||||
image: redis:alpine
|
||||
ports:
|
||||
- 6379:6379
|
||||
options: >-
|
||||
--health-cmd="redis-cli ping"
|
||||
--health-interval=10s
|
||||
--health-timeout=5s
|
||||
--health-retries=5
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.13'
|
||||
- name: Install uv
|
||||
run: pip install uv
|
||||
- name: Install dependencies
|
||||
working-directory: apps/pip-platform
|
||||
run: uv sync --extra dev
|
||||
- name: Run Tests
|
||||
working-directory: apps/pip-platform
|
||||
run: uv run pytest
|
||||
run: cd backend && npm test -- --ci
|
||||
|
||||
test-frontend:
|
||||
name: Frontend Tests
|
||||
needs: detect-changes
|
||||
if: needs.detect-changes.outputs.frontend == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '22'
|
||||
cache: 'npm'
|
||||
- uses: actions/checkout@v3
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
run: cd frontend && npm ci
|
||||
- name: Run tests
|
||||
run: npm test --workspace=farma-clic-frontend -- --run --reporter=basic
|
||||
run: cd frontend && npm test -- --run --reporter=basic
|
||||
|
||||
build-backend:
|
||||
name: Build Backend
|
||||
needs: [ detect-changes, test-backend ]
|
||||
if: |
|
||||
always() &&
|
||||
needs.detect-changes.outputs.backend == 'true' &&
|
||||
(needs.test-backend.result == 'success' || needs.test-backend.result == 'skipped')
|
||||
needs: [ test-backend, test-frontend ]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v3
|
||||
- name: Log in to Gitea registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
@@ -174,74 +40,17 @@ jobs:
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
file: ./apps/backend/Dockerfile
|
||||
file: ./backend/Dockerfile
|
||||
push: true
|
||||
tags: |
|
||||
git.hacecalor.net/ichitux/farmafinder-backend:latest
|
||||
git.hacecalor.net/ichitux/farmafinder-backend:${{ gitea.sha }}
|
||||
|
||||
build-parapharmacy-api:
|
||||
name: Build Parapharmacy API
|
||||
needs: [ detect-changes, test-parapharmacy-api ]
|
||||
if: |
|
||||
always() &&
|
||||
needs.detect-changes.outputs.parapharmacy-api == 'true' &&
|
||||
(needs.test-parapharmacy-api.result == 'success' || needs.test-parapharmacy-api.result == 'skipped')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Log in to Gitea registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: git.hacecalor.net
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Build and push parapharmacy-api image
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
file: ./apps/parapharmacy-api/Dockerfile
|
||||
push: true
|
||||
tags: |
|
||||
git.hacecalor.net/ichitux/farmafinder-parapharmacy-api:latest
|
||||
git.hacecalor.net/ichitux/farmafinder-parapharmacy-api:${{ gitea.sha }}
|
||||
|
||||
build-pip-platform:
|
||||
name: Build Pip Platform
|
||||
needs: [ detect-changes, test-pip-platform ]
|
||||
if: |
|
||||
always() &&
|
||||
needs.detect-changes.outputs.pip-platform == 'true' &&
|
||||
(needs.test-pip-platform.result == 'success' || needs.test-pip-platform.result == 'skipped')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Log in to Gitea registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: git.hacecalor.net
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Build and push pip-platform image
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
file: ./apps/pip-platform/Dockerfile
|
||||
push: true
|
||||
tags: |
|
||||
git.hacecalor.net/ichitux/farmafinder-pip-platform:latest
|
||||
git.hacecalor.net/ichitux/farmafinder-pip-platform:${{ gitea.sha }}
|
||||
|
||||
build-frontend:
|
||||
name: Build Frontend
|
||||
needs: [ detect-changes, test-frontend ]
|
||||
if: |
|
||||
always() &&
|
||||
needs.detect-changes.outputs.frontend == 'true' &&
|
||||
(needs.test-frontend.result == 'success' || needs.test-frontend.result == 'skipped')
|
||||
needs: [ test-backend, test-frontend ]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v3
|
||||
- name: Log in to Gitea registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
@@ -251,45 +60,24 @@ jobs:
|
||||
- name: Build and push frontend image
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: ./apps/frontend
|
||||
context: ./frontend
|
||||
push: true
|
||||
tags: |
|
||||
git.hacecalor.net/ichitux/farmafinder-frontend:latest
|
||||
git.hacecalor.net/ichitux/farmafinder-frontend:${{ gitea.sha }}
|
||||
|
||||
deploy:
|
||||
name: Deploy
|
||||
needs: [ detect-changes, build-backend, build-frontend, build-parapharmacy-api, build-pip-platform ]
|
||||
if: |
|
||||
always() &&
|
||||
(needs.build-backend.result == 'success' || needs.build-backend.result == 'skipped') &&
|
||||
(needs.build-frontend.result == 'success' || needs.build-frontend.result == 'skipped') &&
|
||||
(needs.build-parapharmacy-api.result == 'success' || needs.build-parapharmacy-api.result == 'skipped') &&
|
||||
(needs.build-pip-platform.result == 'success' || needs.build-pip-platform.result == 'skipped') &&
|
||||
(needs.detect-changes.outputs.backend == 'true' || needs.detect-changes.outputs.frontend == 'true')
|
||||
runs-on: self-hosted
|
||||
needs: [ build ]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Pull latest code
|
||||
working-directory: /docker/FarmaFinder
|
||||
run: |
|
||||
set -euo pipefail
|
||||
git pull
|
||||
|
||||
- name: Inject .env files from Gitea variables
|
||||
working-directory: /docker/FarmaFinder
|
||||
env:
|
||||
GITEA_TOKEN: ${{ vars.GITEA_TOKEN }}
|
||||
GITEA_OWNER: Ichitux
|
||||
GITEA_REPO: FarmaFinder
|
||||
WORK_DIR: /docker/FarmaFinder
|
||||
run: |
|
||||
set -euo pipefail
|
||||
bash scripts/deploy-env.sh
|
||||
|
||||
- name: Deploy containers
|
||||
working-directory: /docker/FarmaFinder
|
||||
run: |
|
||||
set -euo pipefail
|
||||
- name: SSH to remote server
|
||||
uses: appleboy/ssh-action@v1.0.3
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script: |
|
||||
cd /docker/FarmaFinder
|
||||
docker compose pull
|
||||
docker compose down --remove-orphans
|
||||
docker compose up -d
|
||||
|
||||
@@ -6,151 +6,62 @@ on:
|
||||
- 'main'
|
||||
|
||||
jobs:
|
||||
detect-changes:
|
||||
name: Detect Changes
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
backend: ${{ steps.filter.outputs.backend }}
|
||||
frontend: ${{ steps.filter.outputs.frontend }}
|
||||
frontend-mobile: ${{ steps.filter.outputs.frontend-mobile }}
|
||||
parapharmacy-api: ${{ steps.filter.outputs.parapharmacy-api }}
|
||||
pip-platform: ${{ steps.filter.outputs.pip-platform }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dorny/paths-filter@v3
|
||||
id: filter
|
||||
with:
|
||||
filters: |
|
||||
backend:
|
||||
- 'apps/backend/**'
|
||||
- 'packages/**'
|
||||
frontend:
|
||||
- 'apps/frontend/**'
|
||||
- 'packages/**'
|
||||
frontend-mobile:
|
||||
- 'apps/frontend-mobile/**'
|
||||
- 'packages/**'
|
||||
parapharmacy-api:
|
||||
- 'apps/parapharmacy-api/**'
|
||||
- 'packages/**'
|
||||
pip-platform:
|
||||
- 'apps/pip-platform/**'
|
||||
|
||||
test-backend:
|
||||
name: Backend Tests
|
||||
needs: detect-changes
|
||||
if: needs.detect-changes.outputs.backend == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 15
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '22'
|
||||
node-version: '20'
|
||||
cache: 'npm'
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
- name: Install backend native deps
|
||||
run: npm rebuild sqlite3 bcrypt --workspace=farma-clic-backend
|
||||
cache-dependency-path: backend/package-lock.json
|
||||
|
||||
- name: Install Backend Dependencies
|
||||
run: cd backend && npm ci
|
||||
|
||||
- name: Run Backend Tests
|
||||
run: npm test --workspace=farma-clic-backend
|
||||
run: cd backend && npm test -- --ci
|
||||
|
||||
test-frontend:
|
||||
name: Frontend Tests
|
||||
needs: detect-changes
|
||||
if: needs.detect-changes.outputs.frontend == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '22'
|
||||
node-version: '20'
|
||||
cache: 'npm'
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
cache-dependency-path: frontend/package-lock.json
|
||||
|
||||
- name: Install Frontend Dependencies
|
||||
run: cd frontend && npm ci
|
||||
|
||||
- name: Run Frontend Tests
|
||||
run: npm test --workspace=farma-clic-frontend -- --run --reporter=basic
|
||||
run: cd frontend && npm test -- --run --reporter=basic
|
||||
|
||||
test-frontend-mobile:
|
||||
name: Frontend Mobile Tests
|
||||
needs: detect-changes
|
||||
if: needs.detect-changes.outputs.frontend-mobile == 'true'
|
||||
test-pip:
|
||||
name: PIP Tests
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '22'
|
||||
node-version: '20'
|
||||
cache: 'npm'
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
- name: Run Frontend Mobile Tests
|
||||
run: npm test --workspace=frontend-mobile -- --ci
|
||||
continue-on-error: true
|
||||
cache-dependency-path: pip-platform/package-lock.json
|
||||
|
||||
test-parapharmacy-api:
|
||||
name: Parapharmacy API Tests
|
||||
needs: detect-changes
|
||||
if: needs.detect-changes.outputs.parapharmacy-api == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 15
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '22'
|
||||
cache: 'npm'
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
- name: Run Parapharmacy API Tests
|
||||
run: npm test --workspace=farmafinder-parapharmacy-api
|
||||
- name: Install PIP dependences
|
||||
run: cd pip-platform && npm ci
|
||||
|
||||
test-pip-platform:
|
||||
name: PIP Platform Tests
|
||||
needs: detect-changes
|
||||
if: false && needs.detect-changes.outputs.pip-platform == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 15
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
env:
|
||||
POSTGRES_DB: pip_test
|
||||
POSTGRES_USER: pip
|
||||
POSTGRES_PASSWORD: pip_test
|
||||
ports:
|
||||
- 5432:5432
|
||||
options: >-
|
||||
--health-cmd="pg_isready -U pip"
|
||||
--health-interval=10s
|
||||
--health-timeout=5s
|
||||
--health-retries=5
|
||||
redis:
|
||||
image: redis:alpine
|
||||
ports:
|
||||
- 6379:6379
|
||||
options: >-
|
||||
--health-cmd="redis-cli ping"
|
||||
--health-interval=10s
|
||||
--health-timeout=5s
|
||||
--health-retries=5
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.13'
|
||||
- name: Install uv
|
||||
run: pip install uv
|
||||
- name: Install dependencies
|
||||
working-directory: apps/pip-platform
|
||||
run: uv sync --extra dev
|
||||
- name: Run Tests
|
||||
working-directory: apps/pip-platform
|
||||
run: uv run pytest
|
||||
- name: Run PIP Tests
|
||||
run: cd pip-platform && npm test -- --run --reporter=basic
|
||||
|
||||
@@ -0,0 +1,184 @@
|
||||
name: iOS Build & Deploy
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "ios-v*"
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
upload_to_testflight:
|
||||
description: "Upload to TestFlight after build"
|
||||
required: false
|
||||
default: "true"
|
||||
type: choice
|
||||
options:
|
||||
- "true"
|
||||
- "false"
|
||||
|
||||
concurrency:
|
||||
group: ios-build-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
test:
|
||||
name: Test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "22"
|
||||
cache: "npm"
|
||||
|
||||
- name: Install backend dependencies & test
|
||||
run: cd backend && npm ci && npm test -- --ci
|
||||
|
||||
- name: Install frontend dependencies & test
|
||||
run: cd frontend && npm ci && npm test -- --run --reporter=basic
|
||||
|
||||
build-ios:
|
||||
name: Build iOS App
|
||||
needs: test
|
||||
runs-on: macos-14
|
||||
env:
|
||||
SCHEME: App
|
||||
WORKSPACE: ios/App/App.xcworkspace
|
||||
ARCHIVE_PATH: build/App.xcarchive
|
||||
EXPORT_OPTIONS: scripts/export-options.plist
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "22"
|
||||
cache: "npm"
|
||||
|
||||
- name: Install root dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Install frontend dependencies
|
||||
run: cd frontend && npm ci
|
||||
|
||||
- name: Build web bundle
|
||||
run: npm run build:web
|
||||
|
||||
- name: Ensure iOS platform & sync Capacitor
|
||||
run: |
|
||||
if [ ! -d "ios/App/App.xcodeproj" ]; then
|
||||
echo "Adding iOS platform..."
|
||||
npx cap add ios
|
||||
fi
|
||||
npx cap sync ios
|
||||
|
||||
- name: Install CocoaPods
|
||||
run: cd ios/App && pod install --repo-update
|
||||
|
||||
- name: Install Apple certificates & provisioning profile
|
||||
uses: apple-actions/import-codesign-certs@v2
|
||||
with:
|
||||
p12-file-base64: ${{ secrets.IOS_P12_BASE64 }}
|
||||
p12-password: ${{ secrets.IOS_P12_PASSWORD }}
|
||||
|
||||
- name: Install provisioning profile
|
||||
run: |
|
||||
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
|
||||
echo "${{ secrets.IOS_PROVISION_PROFILE_BASE64 }}" | base64 --decode > ~/Library/MobileDevice/Provisioning\ Profiles/${{ secrets.IOS_PROVISION_PROFILE_UUID }}.mobileprovision
|
||||
|
||||
- name: Set version from tag
|
||||
if: startsWith(github.ref, 'refs/tags/ios-v')
|
||||
run: |
|
||||
TAG_VERSION="${GITHUB_REF#refs/tags/ios-v}"
|
||||
|
||||
if ! echo "$TAG_VERSION" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+$'; then
|
||||
echo "::error::Invalid tag format '$TAG_VERSION'. Expected semver: X.Y.Z"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
MAJOR=$(echo "$TAG_VERSION" | cut -d. -f1)
|
||||
MINOR=$(echo "$TAG_VERSION" | cut -d. -f2)
|
||||
PATCH=$(echo "$TAG_VERSION" | cut -d. -f3)
|
||||
BUILD=${{ github.run_number }}
|
||||
|
||||
echo "Setting MARKETING_VERSION=$MAJOR.$MINOR.$PATCH"
|
||||
echo "Setting CURRENT_PROJECT_VERSION=$BUILD"
|
||||
|
||||
sed -i '' "s/MARKETING_VERSION = [^;]*;/MARKETING_VERSION = $MAJOR.$MINOR.$PATCH;/" ios/App/App.xcodeproj/project.pbxproj
|
||||
sed -i '' "s/CURRENT_PROJECT_VERSION = [^;]*;/CURRENT_PROJECT_VERSION = $BUILD;/" ios/App/App.xcodeproj/project.pbxproj
|
||||
|
||||
- name: Build Xcode archive
|
||||
run: |
|
||||
set -o pipefail
|
||||
xcodebuild archive \
|
||||
-workspace "$WORKSPACE" \
|
||||
-scheme "$SCHEME" \
|
||||
-configuration Release \
|
||||
-destination "generic/platform=iOS" \
|
||||
-archivePath "$ARCHIVE_PATH" \
|
||||
-allowProvisioningUpdates \
|
||||
CODE_SIGN_STYLE=Manual \
|
||||
DEVELOPMENT_TEAM="${{ secrets.IOS_TEAM_ID }}" \
|
||||
PROVISIONING_PROFILE_SPECIFIER="${{ secrets.IOS_PROVISION_PROFILE_NAME }}" \
|
||||
2>&1 | xcpretty --color
|
||||
|
||||
- name: Export IPA
|
||||
run: |
|
||||
plutil -replace teamID -string "${{ secrets.IOS_TEAM_ID }}" "$EXPORT_OPTIONS"
|
||||
plutil -replace provisioningProfiles.net.hacecalor.farmafinder -string "${{ secrets.IOS_PROVISION_PROFILE_NAME }}" "$EXPORT_OPTIONS"
|
||||
|
||||
set -o pipefail
|
||||
xcodebuild -exportArchive \
|
||||
-archivePath "$ARCHIVE_PATH" \
|
||||
-exportOptionsPlist "$EXPORT_OPTIONS" \
|
||||
-exportPath build \
|
||||
-allowProvisioningUpdates \
|
||||
2>&1 | xcpretty --color
|
||||
|
||||
- name: Upload artifact (IPA)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: FarmaFinder-iOS
|
||||
path: build/*.ipa
|
||||
retention-days: 30
|
||||
|
||||
- name: Upload to TestFlight
|
||||
if: >
|
||||
(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/ios-v')) ||
|
||||
(github.event_name == 'workflow_dispatch' && inputs.upload_to_testflight == 'true')
|
||||
env:
|
||||
APP_STORE_API_KEY_ID: ${{ secrets.APP_STORE_API_KEY_ID }}
|
||||
APP_STORE_API_ISSUER_ID: ${{ secrets.APP_STORE_API_ISSUER_ID }}
|
||||
run: |
|
||||
IPA_PATH=$(find build -name "*.ipa" -maxdepth 1 | head -1)
|
||||
if [ -z "$IPA_PATH" ]; then
|
||||
echo "::error::No IPA found in build/"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
API_PRIVATE_KEY_PATH="$RUNNER_TEMP/app_store_api_key.p8"
|
||||
echo "${{ secrets.APP_STORE_API_PRIVATE_KEY }}" > "$API_PRIVATE_KEY_PATH"
|
||||
|
||||
xcrun notarytool submit "$IPA_PATH" \
|
||||
--key-id "$APP_STORE_API_KEY_ID" \
|
||||
--issuer "$APP_STORE_API_ISSUER_ID" \
|
||||
--key "$API_PRIVATE_KEY_PATH" \
|
||||
--wait
|
||||
|
||||
rm -f "$API_PRIVATE_KEY_PATH"
|
||||
|
||||
- name: Summary
|
||||
run: |
|
||||
IPA_PATH=$(find build -name "*.ipa" -maxdepth 1 | head -1)
|
||||
if [ -n "$IPA_PATH" ]; then
|
||||
IPA_SIZE=$(du -h "$IPA_PATH" | cut -f1)
|
||||
echo "### iOS Build Summary" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| Item | Value |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "|------|-------|" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| IPA Size | $IPA_SIZE |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| Tag | ${GITHUB_REF#refs/tags/} |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| Build # | ${{ github.run_number }} |" >> $GITHUB_STEP_SUMMARY
|
||||
else
|
||||
echo "::error::IPA not found in build/"
|
||||
exit 1
|
||||
fi
|
||||
@@ -2,8 +2,6 @@ node_modules/
|
||||
dist/
|
||||
dev-dist/
|
||||
build/
|
||||
.turbo/
|
||||
.mimocode/
|
||||
*.sqlite
|
||||
*.sqlite3
|
||||
.env
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
{"pid":3854791,"startedAt":1784736547988}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"$schema": "https://mimo.xiaomi.com/mimocode/config.json",
|
||||
"mcp": {
|
||||
"n8n": {
|
||||
"type": "remote",
|
||||
"url": "https://n8n.hacecalor.net/mcp-server/http",
|
||||
"headers": {
|
||||
"Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjNDE1ODI4Yy00ZWU0LTQ1MjEtOGQ3Mi0xODZmYWNjNGU4ZmEiLCJpc3MiOiJuOG4iLCJhdWQiOiJtY3Atc2VydmVyLWFwaSIsImp0aSI6ImU1YzUyNjIxLTExZDAtNDM4MC04YmRjLTlhMmQ2MDA1OGU4OSIsImlhdCI6MTc4Mzk0NjY3Mn0._0LG3CJJjUg7-g1kvMjME5nBjIEWkrfEeAZrhDxpfC4"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,141 +0,0 @@
|
||||
# Plan: Dark Mode para FarmaFinder Mobile
|
||||
|
||||
## Objetivo
|
||||
Añadir soporte de modo oscuro a la app móvil con:
|
||||
- Detección automática del modo oscuro del sistema
|
||||
- Toggle manual en la pantalla de perfil (Configuración)
|
||||
- Persistencia de la preferencia del usuario
|
||||
|
||||
## Arquitectura
|
||||
|
||||
### 1. Theme Store (Zustand + AsyncStorage)
|
||||
**Nuevo archivo: `store/themeStore.ts`**
|
||||
|
||||
- Estado: `mode: 'light' | 'dark' | 'system'`
|
||||
- Persistencia con `@react-native-async-storage/async-storage`
|
||||
- Acciones: `setMode()`, `init()` (carga del storage al arrancar)
|
||||
- Por defecto: `'system'` (respeta el dispositivo)
|
||||
|
||||
### 2. Hook `useThemeColor`
|
||||
**Nuevo archivo: `hooks/useThemeColor.ts`**
|
||||
|
||||
- Usa `useColorScheme()` de React Native para detectar el color del sistema
|
||||
- Combina con el `mode` del themeStore para determinar el tema efectivo
|
||||
- Retorna el objeto `colors` apropiado (light o dark)
|
||||
- Los componentes consumirán este hook en vez de importar `colors` directamente
|
||||
|
||||
### 3. Paleta de colores oscura
|
||||
**Modificar: `constants/theme.ts`**
|
||||
|
||||
Añadir exportación `darkColors` con la paleta oscura:
|
||||
|
||||
| Token | Light (actual) | Dark (nuevo) |
|
||||
|---|---|---|
|
||||
| `background` | `#fbfbfb` | `#121212` |
|
||||
| `card` | `#ffffff` | `#1e1e1e` |
|
||||
| `surfaceLow` | `#f2f4f5` | `#2a2a2a` |
|
||||
| `surface` | `#eceeef` | `#333333` |
|
||||
| `surfaceHigh` | `#e6e8e9` | `#3a3a3a` |
|
||||
| `border` | `#c0c9bb` | `#3a3a3a` |
|
||||
| `separator` | `#c0c9bb` | `#3a3a3a` |
|
||||
| `text` | `#111417` | `#f0f0f0` |
|
||||
| `textSecondary` | `#41493e` | `#a0a0a0` |
|
||||
| `textInverse` | `#ffffff` | `#111417` |
|
||||
| `primaryContainer` | `#cfead0` | `#1a3a1c` |
|
||||
| `onPrimaryContainer` | `#0d2b12` | `#cfead0` |
|
||||
| `secondaryContainer` | `#dbe7ff` | `#1a2a4a` |
|
||||
| `tertiaryContainer` | `#efe7ff` | `#2a1a4a` |
|
||||
| `dangerContainer` | `#feecec` | `#3a1a1a` |
|
||||
| `accentWarm` | `#f5a97a` | `#f5a97a` (sin cambio) |
|
||||
| `primary`, `secondary`, `tertiary`, `scanButton`, `success`, `danger`, `warning` | (sin cambios) | (sin cambios) |
|
||||
|
||||
### 4. Provider wrapper
|
||||
**Nuevo archivo: `components/ThemeProvider.tsx`**
|
||||
|
||||
- Lee el `mode` del themeStore y el `useColorScheme()` del sistema
|
||||
- Calcula el tema efectivo (`light` o `dark`)
|
||||
- Provee `colors` y `isDark` vía React Context
|
||||
- Carga la preferencia guardada en AsyncStorage al montar
|
||||
|
||||
### 5. Integración en Root Layout
|
||||
**Modificar: `app/_layout.tsx`**
|
||||
|
||||
- Envolver toda la app con `<ThemeProvider>`
|
||||
- El `StatusBar` se ajusta: `style={isDark ? 'light' : 'auto'}`
|
||||
- Los colores del Stack header se leen del contexto
|
||||
|
||||
### 6. Toggle en el perfil
|
||||
**Modificar: `app/(tabs)/profile.tsx`**
|
||||
|
||||
Añadir en la pantalla de perfil (antes de "Configuración") un nuevo item de menú:
|
||||
- Icono: `moon-outline` / `sunny-outline` según el tema actual
|
||||
- Texto: "Modo de pantalla"
|
||||
- Al pulsar, mostrar un picker/modal con 3 opciones:
|
||||
- **Sistema** (icono: phone-portrait) - respeta el SO
|
||||
- **Claro** (icono: sunny) - fuerza light
|
||||
- **Oscuro** (icono: moon) - fuerza dark
|
||||
- El toggle se muestra inline (sin modal extra) tipo Segmented Control
|
||||
|
||||
### 7. Actualizar todos los screens y components
|
||||
|
||||
Cada archivo que importa `colors` debe cambiar a usar el hook `useThemeColor()`:
|
||||
|
||||
| Archivo | Cambio |
|
||||
|---|---|
|
||||
| `app/_layout.tsx` | Usa ThemeProvider + context para header colors |
|
||||
| `app/(tabs)/_layout.tsx` | Tab bar y header leen colors del context |
|
||||
| `app/(tabs)/index.tsx` | `const { colors } = useThemeColor()` |
|
||||
| `app/(tabs)/search.tsx` | `const { colors } = useThemeColor()` |
|
||||
| `app/(tabs)/scan.tsx` | `const { colors } = useThemeColor()` |
|
||||
| `app/(tabs)/alerts.tsx` | `const { colors } = useThemeColor()` |
|
||||
| `app/(tabs)/profile.tsx` | `const { colors, isDark } = useThemeColor()` |
|
||||
| `app/(tabs)/map.tsx` | `const { colors } = useThemeColor()` |
|
||||
| `app/medicine/[id].tsx` | `const { colors } = useThemeColor()` |
|
||||
| `app/pharmacy/[id].tsx` | `const { colors } = useThemeColor()` |
|
||||
| `app/auth/login.tsx` | `const { colors } = useThemeColor()` |
|
||||
| `app/auth/register.tsx` | `const { colors } = useThemeColor()` |
|
||||
| `components/SearchBar.tsx` | `const { colors } = useThemeColor()` |
|
||||
| `components/MedicineCard.tsx` | `const { colors } = useThemeColor()` |
|
||||
| `components/LoadingSpinner.tsx` | `const { colors } = useThemeColor()` |
|
||||
| `components/StockBadge.tsx` | Añade colores dark para badges |
|
||||
| `components/BarcodeScanner.tsx` | `const { colors } = useThemeColor()` |
|
||||
|
||||
**Nota sobre StyleSheet**: Los `StyleSheet.create()` se ejecutan una vez. Para que los estilos se actualicen con el tema, las propiedades que dependen de `colors` deben aplicarse vía `style` inline o moverse a funciones que retornen estilos dinámicos. La estrategia más limpia es:
|
||||
- Los colores de fondo/texto van como inline styles
|
||||
- Las estructuras (flex, padding, borderRadius) se quedan en `StyleSheet.create`
|
||||
|
||||
### 8. Colores hardcodeados
|
||||
Los siguientes archivos tienen colores inline hardcodeados que necesitan variante dark:
|
||||
|
||||
- **`StockBadge.tsx`**: `#eaf7ec`, `#fff3cd`, `#feecec` → añadir tokens al tema
|
||||
- **`search.tsx`**: suggestions con `#ffffff`, `#f0f7ff`, etc. → usar colores del tema
|
||||
- **`profile.tsx`**: feedback `#eaf7ec`, `#cfead0`, `#fecaca` → usar colores del tema
|
||||
- **`home/index.tsx`**: `rgba(255,255,255,0.2/0.3)` para iconos → ajustar opacidad
|
||||
|
||||
### 9. app.json
|
||||
**Modificar: `app.json`**
|
||||
|
||||
Cambiar `"userInterfaceStyle": "light"` → `"userInterfaceStyle": "automatic"`
|
||||
|
||||
## Orden de ejecución
|
||||
|
||||
1. `store/themeStore.ts` (nuevo)
|
||||
2. `hooks/useThemeColor.ts` (nuevo)
|
||||
3. `constants/theme.ts` (añadir `darkColors`)
|
||||
4. `components/ThemeProvider.tsx` (nuevo)
|
||||
5. `app/_layout.tsx` (envolver con ThemeProvider)
|
||||
6. `app/(tabs)/_layout.tsx` (colores dinámicos)
|
||||
7. `app/(tabs)/profile.tsx` (toggle de tema)
|
||||
8. Todos los screens y components (migrar a hook)
|
||||
9. `app.json` (userInterfaceStyle: automatic)
|
||||
10. Corregir colores hardcodeados
|
||||
|
||||
## Verificación
|
||||
|
||||
1. Ejecutar `npx expo start` y verificar que la app arranca sin errores
|
||||
2. Probar en iOS/Android: el tema respeta la configuración del sistema
|
||||
3. Ir a Perfil > Modo de pantalla y cambiar entre Claro/Oscuro/Sistema
|
||||
4. Verificar que el cambio es inmediato sin recargar la app
|
||||
5. Cerrar y reabrir la app → la preferencia persiste
|
||||
6. Verificar que todos los screens se ven bien en ambos modos (sin texto invisible, sin fondos transparentes)
|
||||
7. Probar tablets ( responsive)
|
||||
@@ -0,0 +1,209 @@
|
||||
# FarmaFinder — TSI Barcode Scanning + Capacitor 8 Upgrade
|
||||
|
||||
## Overview
|
||||
|
||||
Two sequential phases:
|
||||
1. **Phase A** — Upgrade Capacitor 6 → 8 (prerequisite for latest barcode scanner plugin)
|
||||
2. **Phase B** — Implement real TSI barcode scanning with manual CIP entry fallback
|
||||
|
||||
---
|
||||
|
||||
## Phase A: Upgrade Capacitor 6 → 8
|
||||
|
||||
### A1. Upgrade Capacitor packages (root)
|
||||
|
||||
```bash
|
||||
npm install @capacitor/cli@latest @capacitor/core@latest \
|
||||
@capacitor/android@latest @capacitor/ios@latest \
|
||||
@capacitor/app@latest @capacitor/splash-screen@latest \
|
||||
@capacitor/status-bar@latest
|
||||
```
|
||||
|
||||
This bumps all `@capacitor/*` from `^6.x` to `^8.x` in `package.json`.
|
||||
|
||||
### A2. Update `android/variables.gradle`
|
||||
|
||||
Replace all 13 version variables to meet Capacitor 8 minimums:
|
||||
|
||||
| Variable | Current | New |
|
||||
|---|---|---|
|
||||
| `minSdkVersion` | 22 | **24** |
|
||||
| `compileSdkVersion` | 34 | **36** |
|
||||
| `targetSdkVersion` | 34 | **36** |
|
||||
| `androidxActivityVersion` | 1.8.0 | **1.11.0** |
|
||||
| `androidxAppCompatVersion` | 1.6.1 | **1.7.1** |
|
||||
| `androidxCoordinatorLayoutVersion` | 1.2.0 | **1.3.0** |
|
||||
| `androidxCoreVersion` | 1.12.0 | **1.17.0** |
|
||||
| `androidxFragmentVersion` | 1.6.2 | **1.8.9** |
|
||||
| `coreSplashScreenVersion` | 1.0.1 | **1.2.0** |
|
||||
| `androidxWebkitVersion` | 1.9.0 | **1.14.0** |
|
||||
| `junitVersion` | 4.13.2 | 4.13.2 (same) |
|
||||
| `androidxJunitVersion` | 1.1.5 | **1.3.0** |
|
||||
| `androidxEspressoCoreVersion` | 3.5.1 | **3.7.0** |
|
||||
| `cordovaAndroidVersion` | 10.1.1 | **14.0.1** |
|
||||
|
||||
### A3. Update `ios/App/Podfile`
|
||||
|
||||
- Line 3: Change `platform :ios, '13.0'` → `platform :ios, '15.0'`
|
||||
|
||||
### A4. Update `android/app/src/main/AndroidManifest.xml`
|
||||
|
||||
- Add `density` to `android:configChanges` on line 13:
|
||||
```
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode|density"
|
||||
```
|
||||
|
||||
### A5. Update `android/build.gradle` (Gradle plugin)
|
||||
|
||||
- Update Android Gradle Plugin from `8.2.1` → `8.13.0`
|
||||
- Update Google Services plugin from `4.4.0` → `4.4.4`
|
||||
- Update Gradle wrapper to `8.14.3` in `android/gradle/wrapper/gradle-wrapper.properties`
|
||||
|
||||
### A6. Run Capacitor sync
|
||||
|
||||
```bash
|
||||
npx cap sync
|
||||
```
|
||||
|
||||
### A7. Verify build
|
||||
|
||||
- Open `android/` in Android Studio — confirm Gradle sync succeeds
|
||||
- Open `ios/App` in Xcode — confirm pod install succeeds and build compiles
|
||||
|
||||
---
|
||||
|
||||
## Phase B: Real TSI Barcode Scanning
|
||||
|
||||
### B1. Install barcode scanning plugin
|
||||
|
||||
From `frontend/`:
|
||||
```bash
|
||||
npm install @capacitor-mlkit/barcode-scanning@^8.1.0
|
||||
npm install barcode-detector # web polyfill for PWA browser fallback
|
||||
```
|
||||
|
||||
From root:
|
||||
```bash
|
||||
npx cap sync
|
||||
```
|
||||
|
||||
**Plugin:** `@capacitor-mlkit/barcode-scanning` v8.1.0 — Google ML Kit engine, 91K+ weekly npm downloads, supports Code 128 (TSI physical card barcode) and QR Code (virtual TSI card).
|
||||
|
||||
### B2. Native manifest verification (no changes expected)
|
||||
|
||||
| Platform | File | Required | Status |
|
||||
|---|---|---|---|
|
||||
| Android | `AndroidManifest.xml:44` | `CAMERA` permission | Already present |
|
||||
| iOS | `Info.plist:52-53` | `NSCameraUsageDescription` | Already present |
|
||||
|
||||
### B3. Rewrite `frontend/src/views/ScannerView.jsx`
|
||||
|
||||
**Remove:**
|
||||
- `MOCK_TSI_CARDS` array and all mock card state/UI
|
||||
- `navigator.mediaDevices.getUserMedia()` camera logic (lines 40-73)
|
||||
- Auto-scan `setTimeout` simulation (lines 98-105)
|
||||
- Simulated scan fallback panel (lines 170-198)
|
||||
- `selectedMockCard` state
|
||||
|
||||
**Add:**
|
||||
- Import `BarcodeScanner`, `BarcodeFormat`, `LensFacing` from `@capacitor-mlkit/barcode-scanning`
|
||||
- Import `Capacitor` from `@capacitor/core` (platform detection)
|
||||
- Import `barcode-detector/polyfill` at top (web fallback)
|
||||
|
||||
**New scan flow:**
|
||||
```
|
||||
1. Component mounts → show "Start Scanning" button + manual CIP input
|
||||
2. User taps "Start Scanning":
|
||||
a. Check BarcodeScanner.isSupported() → error if not
|
||||
b. Check/request camera permission via BarcodeScanner.checkPermissions() / requestPermissions()
|
||||
c. Call BarcodeScanner.scan({ formats: [BarcodeFormat.Code128, BarcodeFormat.QrCode], autoZoom: true })
|
||||
d. Extract barcodes[0].rawValue (NOTE: can be undefined per v8 breaking change — handle gracefully)
|
||||
e. Validate CIP format: /^[A-Z0-9]{16}$/i
|
||||
f. If valid → fetchPrescriptions(cip) → show prescriptions
|
||||
g. If invalid → show error "Invalid card barcode. Try manual entry."
|
||||
3. Manual CIP input:
|
||||
- Text input field with placeholder "Enter CIP code manually"
|
||||
- "Submit" button → validates format → fetchPrescriptions(cip)
|
||||
4. PWA/browser fallback:
|
||||
- Detect: !Capacitor.isNativePlatform()
|
||||
- Show message: "Barcode scanning requires the mobile app. Enter your CIP code manually below."
|
||||
- Show only the manual CIP input (no scan button)
|
||||
```
|
||||
|
||||
**Phases (simplified):**
|
||||
- `idle` — initial state, scan button + manual input visible
|
||||
- `scanning` — ML Kit native UI active (camera takes over)
|
||||
- `prescriptions` — results display (keep existing prescription card UI)
|
||||
- `error` — permission denied / unsupported / invalid barcode
|
||||
|
||||
**Keep unchanged:**
|
||||
- `playBeep()` function
|
||||
- `fetchPrescriptions(cip)` function
|
||||
- `handlePickPrescription(rx)` function
|
||||
- `handleBack()` function
|
||||
- Prescription display UI (lines 201-249)
|
||||
- `onSelectMedicine` callback prop
|
||||
|
||||
### B4. Rewrite `frontend/src/views/ScannerView.css`
|
||||
|
||||
**Remove:**
|
||||
- `.scanner-viewport-wrap`, `.scanner-camera-container`, `.scanner-video`, `.scanner-frame`, `.scanner-laser`, `.scanner-hint` (old camera overlay)
|
||||
- `.scanner-simulate-panel`, `.mock-cards-list`, `.mock-card-btn`, `.simulate-scan-btn`, `.simulate-label`, `.mock-card-icon`, `.mock-card-info` (mock card panel)
|
||||
- `.scanner-placeholder` with spinner (old loading state)
|
||||
|
||||
**Add:**
|
||||
- `.scan-start-btn` — large centered button with camera icon, teal background (`#0f766e`), full-width
|
||||
- `.manual-cip-section` — input group with text field + submit button
|
||||
- `.cip-input` — text input styled to match existing dark theme, monospace font
|
||||
- `.cip-submit-btn` — teal button matching scan button style
|
||||
- `.pwa-notice` — info banner for browser users
|
||||
- `.scan-error-panel` — error state with icon and retry button
|
||||
|
||||
### B5. No changes to other files
|
||||
|
||||
- `HomeView.jsx` — "Scan TSI Card" button still navigates to ScannerView
|
||||
- `PublicView.jsx` — screen routing and `onSelectMedicine` handoff unchanged
|
||||
- `backend/server.js` — user handles `/api/tsi/:cip/prescriptions`
|
||||
- `capacitor.config.json` — no scanner-specific config needed
|
||||
|
||||
---
|
||||
|
||||
## Files Modified (summary)
|
||||
|
||||
| File | Phase | Change |
|
||||
|---|---|---|
|
||||
| `package.json` | A1 | Bump all `@capacitor/*` to ^8.x |
|
||||
| `frontend/package.json` | B1 | Add `@capacitor-mlkit/barcode-scanning@^8.1.0` + `barcode-detector` |
|
||||
| `android/variables.gradle` | A2 | Update all 13 SDK/library versions |
|
||||
| `ios/App/Podfile` | A3 | iOS deployment target 13.0 → 15.0 |
|
||||
| `android/app/src/main/AndroidManifest.xml` | A4 | Add `density` to configChanges |
|
||||
| `android/build.gradle` | A5 | AGP 8.2.1 → 8.13.0, Google Services 4.4.0 → 4.4.4 |
|
||||
| `android/gradle/wrapper/gradle-wrapper.properties` | A5 | Gradle wrapper → 8.14.3 |
|
||||
| `frontend/src/views/ScannerView.jsx` | B3 | Full rewrite — real barcode scanning + manual input |
|
||||
| `frontend/src/views/ScannerView.css` | B4 | Remove old camera/mock styles, add new scan UI |
|
||||
|
||||
---
|
||||
|
||||
## Known Issues
|
||||
|
||||
- **Android NullPointerException bug** (GitHub capawesome-team/capacitor-mlkit #160/#324) — affects `startScan()` in v8.0.1. Workaround: use `scan()` method (built-in native UI) instead of `startScan()` (custom WebView mode). Plan uses `scan()`, so this shouldn't hit us.
|
||||
- **`rawValue` can be undefined** in v8.x — handle with null check before CIP validation.
|
||||
- **Capacitor 8 requires Xcode 26+** — must have latest Xcode installed.
|
||||
- **Gradle 8.14.3 requires JDK 21+** — confirm JDK 21 is available.
|
||||
- **`@capacitor-mlkit/barcode-scanning` v6.x.x is deprecated** — this is why we upgrade to Capacitor 8 first (v8.x.x plugin requires Cap 8).
|
||||
|
||||
---
|
||||
|
||||
## Implementation Order
|
||||
|
||||
| Step | Phase | Estimated Time |
|
||||
|---|---|---|
|
||||
| A1-A6 | Capacitor upgrade | ~30 min |
|
||||
| A7 | Verify build (Android + iOS) | ~30 min |
|
||||
| B1 | Install barcode plugin | ~5 min |
|
||||
| B3 | Rewrite ScannerView.jsx | ~2 hrs |
|
||||
| B4 | Update ScannerView.css | ~30 min |
|
||||
| B5 | Test on Android device | ~30 min |
|
||||
| B5 | Test on iOS device | ~30 min |
|
||||
|
||||
Total: ~4-5 hours
|
||||
@@ -1,63 +0,0 @@
|
||||
# International Prior Art Search
|
||||
|
||||
## Project: FarmaFinder
|
||||
|
||||
This document summarizes the international prior-art position for the technical concept described in the FarmaFinder patent materials.
|
||||
|
||||
### Technical scope
|
||||
|
||||
The invention concerns a computer-implemented system and method for identifying a therapeutic need from the scan of an individual health card or equivalent patient-related identifier, associating that result with an authenticated user, comparing the inferred need with geolocated pharmacy inventory, and generating supply-related actions when the required product is not available.
|
||||
|
||||
### Main categories of prior art identified
|
||||
|
||||
The following classes of prior-art documents are relevant to the search:
|
||||
|
||||
1. Medicine search platforms that allow users to locate medicines by name or active ingredient.
|
||||
2. Pharmacy locator systems that display nearby pharmacies and, in some cases, opening hours, distance, or approximate availability.
|
||||
3. Inventory management systems used by pharmacies, distributors, or health-related retail networks.
|
||||
4. Digital health applications that store user profiles, location data, reminders, or treatment-related information.
|
||||
5. Reservation, referral, or notification workflows that allow a user or a pharmacy to react when a product is out of stock.
|
||||
|
||||
### Distinguishing technical features
|
||||
|
||||
Based on the current project documentation, the present invention is distinguished by the combination of the following technical features in a single workflow:
|
||||
|
||||
- secure capture of a health-card identifier or equivalent patient-related credential;
|
||||
- verification of the captured data and association with an authenticated user profile;
|
||||
- automatic derivation of a medicine reference or therapeutic need;
|
||||
- real-time comparison against pharmacy stock data from geolocated pharmacies;
|
||||
- ranking of pharmacies according to availability, distance, and opening status;
|
||||
- automatic generation of reserve, notification, order, or referral actions when stock is insufficient;
|
||||
- technical traceability of the event across the processing chain.
|
||||
|
||||
### Assessment
|
||||
|
||||
The reviewed prior-art categories appear to disclose individual parts of the technical problem, but not the complete integrated architecture described above in a single system. In particular, the combination of:
|
||||
|
||||
- patient-context capture through a health identifier,
|
||||
- automated therapeutic inference,
|
||||
- geolocated stock comparison, and
|
||||
- machine-generated supply actions
|
||||
|
||||
does not appear to be disclosed as a unified technical chain in the documents reviewed at the project level.
|
||||
|
||||
### Suggested search focus for the European search phase
|
||||
|
||||
For the European Patent Office search phase, the search should focus on documents relating to:
|
||||
|
||||
- patient identifier scanning;
|
||||
- health-card reading or optical capture of patient credentials;
|
||||
- medicine search and pharmacy availability systems;
|
||||
- pharmacy reservation and referral workflows;
|
||||
- location-based ranking of pharmacies;
|
||||
- automated inventory-driven notification or order generation;
|
||||
- health-related digital assistants that combine user context with stock availability.
|
||||
|
||||
### Working conclusion
|
||||
|
||||
On the basis of the current project documentation, the invention is presented as a computer-implemented technical solution that integrates identification, verification, geolocation, inventory contrast, and automated supply actions in one workflow. No single reference has been identified at the project level that clearly discloses the full combination of these features.
|
||||
|
||||
### Date
|
||||
|
||||
13 August 2026
|
||||
|
||||
@@ -1,110 +0,0 @@
|
||||
%PDF-1.4
|
||||
1 0 obj
|
||||
<< /Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
2 0 obj
|
||||
<< /Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
3 0 obj
|
||||
<< /Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
4 0 obj
|
||||
<< /Type /Pages /Kids [7 0 R 8 0 R] /Count 2 >>
|
||||
endobj
|
||||
5 0 obj
|
||||
<< /Length 2089 >>
|
||||
stream
|
||||
BT /F2 18 Tf 138 787.89 Td (International Prior Art Search) Tj ET
|
||||
BT /F3 12 Tf 156 761.39 Td (Project: FarmaFinder) Tj ET
|
||||
BT /F1 11.5 Tf 56 726.39 Td (This document summarizes the international prior-art position for the technical concept) Tj ET
|
||||
BT /F1 11.5 Tf 56 712.015 Td (described in the FarmaFinder patent materials.) Tj ET
|
||||
BT /F2 13 Tf 56 695.64 Td (Technical scope) Tj ET
|
||||
0.3 w 56 675.39 m 539.28 675.39 l S
|
||||
BT /F1 11.5 Tf 56 667.39 Td (The invention concerns a computer-implemented system and method for identifying a) Tj ET
|
||||
BT /F1 11.5 Tf 56 653.015 Td (therapeutic need from the scan of an individual health card or equivalent) Tj ET
|
||||
BT /F1 11.5 Tf 56 638.64 Td (patient-related identifier, associating that result with an authenticated user,) Tj ET
|
||||
BT /F1 11.5 Tf 56 624.265 Td (comparing the inferred need with geolocated pharmacy inventory, and generating) Tj ET
|
||||
BT /F1 11.5 Tf 56 609.89 Td (supply-related actions when the required product is not available.) Tj ET
|
||||
BT /F2 13 Tf 56 593.515 Td (Main categories of prior art identified) Tj ET
|
||||
0.3 w 56 573.265 m 539.28 573.265 l S
|
||||
BT /F1 11.2 Tf 64 565.265 Td (1. Medicine search platforms that allow users to locate medicines by name or active) Tj ET
|
||||
BT /F1 11.2 Tf 64 551.265 Td ( ingredient.) Tj ET
|
||||
BT /F1 11.2 Tf 64 537.265 Td (2. Pharmacy locator systems that display nearby pharmacies and, in some cases, opening) Tj ET
|
||||
BT /F1 11.2 Tf 64 523.265 Td ( hours, distance, or approximate availability.) Tj ET
|
||||
BT /F1 11.2 Tf 64 509.265 Td (3. Inventory management systems used by pharmacies, distributors, or health-related retail) Tj ET
|
||||
BT /F1 11.2 Tf 64 495.265 Td ( networks.) Tj ET
|
||||
BT /F1 11.2 Tf 64 481.265 Td (4. Digital health applications that store user profiles, location data, reminders, or) Tj ET
|
||||
BT /F1 11.2 Tf 64 467.265 Td ( treatment-related information.) Tj ET
|
||||
BT /F1 11.2 Tf 64 453.265 Td (5. Reservation, referral, or notification workflows that allow a user or a pharmacy to react) Tj ET
|
||||
BT /F1 11.2 Tf 64 439.265 Td ( when a product is out of stock.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Page 1) Tj ET
|
||||
endstream
|
||||
endobj
|
||||
6 0 obj
|
||||
<< /Length 3313 >>
|
||||
stream
|
||||
BT /F2 13 Tf 56 787.89 Td (Distinguishing technical features) Tj ET
|
||||
0.3 w 56 767.64 m 539.28 767.64 l S
|
||||
BT /F1 11.2 Tf 64 759.64 Td (- secure capture of a health-card identifier or equivalent patient-related credential;) Tj ET
|
||||
BT /F1 11.2 Tf 64 745.64 Td (- verification of the captured data and association with an authenticated user profile;) Tj ET
|
||||
BT /F1 11.2 Tf 64 731.64 Td (- automatic derivation of a medicine reference or therapeutic need;) Tj ET
|
||||
BT /F1 11.2 Tf 64 717.64 Td (- real-time comparison against pharmacy stock data from geolocated pharmacies;) Tj ET
|
||||
BT /F1 11.2 Tf 64 703.64 Td (- ranking of pharmacies according to availability, distance, and opening status;) Tj ET
|
||||
BT /F1 11.2 Tf 64 689.64 Td (- automatic generation of reserve, notification, order, or referral actions when stock is) Tj ET
|
||||
BT /F1 11.2 Tf 64 675.64 Td ( insufficient;) Tj ET
|
||||
BT /F1 11.2 Tf 64 661.64 Td (- technical traceability of the event across the processing chain.) Tj ET
|
||||
BT /F2 13 Tf 56 647.64 Td (Assessment) Tj ET
|
||||
0.3 w 56 627.39 m 539.28 627.39 l S
|
||||
BT /F1 11.5 Tf 56 619.39 Td (The reviewed prior-art categories appear to disclose individual parts of the technical) Tj ET
|
||||
BT /F1 11.5 Tf 56 605.015 Td (problem, but not the complete integrated architecture described above in a single) Tj ET
|
||||
BT /F1 11.5 Tf 56 590.64 Td (system. In particular, the combination of patient-context capture through a health) Tj ET
|
||||
BT /F1 11.5 Tf 56 576.265 Td (identifier, automated therapeutic inference, geolocated stock comparison, and) Tj ET
|
||||
BT /F1 11.5 Tf 56 561.89 Td (machine-generated supply actions does not appear to be disclosed as a unified technical) Tj ET
|
||||
BT /F1 11.5 Tf 56 547.515 Td (chain in the documents reviewed at the project level.) Tj ET
|
||||
BT /F2 13 Tf 56 531.14 Td (Suggested search focus for the European search phase) Tj ET
|
||||
0.3 w 56 510.89 m 539.28 510.89 l S
|
||||
BT /F1 11.2 Tf 64 502.89 Td (- patient identifier scanning;) Tj ET
|
||||
BT /F1 11.2 Tf 64 488.89 Td (- health-card reading or optical capture of patient credentials;) Tj ET
|
||||
BT /F1 11.2 Tf 64 474.89 Td (- medicine search and pharmacy availability systems;) Tj ET
|
||||
BT /F1 11.2 Tf 64 460.89 Td (- pharmacy reservation and referral workflows;) Tj ET
|
||||
BT /F1 11.2 Tf 64 446.89 Td (- location-based ranking of pharmacies;) Tj ET
|
||||
BT /F1 11.2 Tf 64 432.89 Td (- automated inventory-driven notification or order generation;) Tj ET
|
||||
BT /F1 11.2 Tf 64 418.89 Td (- health-related digital assistants that combine user context with stock availability.) Tj ET
|
||||
BT /F2 13 Tf 56 404.89 Td (Working conclusion) Tj ET
|
||||
0.3 w 56 384.64 m 539.28 384.64 l S
|
||||
BT /F1 11.5 Tf 56 376.64 Td (On the basis of the current project documentation, the invention is presented as a) Tj ET
|
||||
BT /F1 11.5 Tf 56 362.265 Td (computer-implemented technical solution that integrates identification, verification,) Tj ET
|
||||
BT /F1 11.5 Tf 56 347.89 Td (geolocation, inventory contrast, and automated supply actions in one workflow. No) Tj ET
|
||||
BT /F1 11.5 Tf 56 333.515 Td (single reference has been identified at the project level that clearly discloses the) Tj ET
|
||||
BT /F1 11.5 Tf 56 319.14 Td (full combination of these features.) Tj ET
|
||||
BT /F2 13 Tf 56 302.765 Td (Date) Tj ET
|
||||
0.3 w 56 282.515 m 539.28 282.515 l S
|
||||
BT /F1 11.5 Tf 56 274.515 Td (13 August 2026) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Page 2) Tj ET
|
||||
endstream
|
||||
endobj
|
||||
7 0 obj
|
||||
<< /Type /Page /Parent 4 0 R /MediaBox [0 0 595.28 841.89] /Resources << /Font << /F1 1 0 R /F2 2 0 R /F3 3 0 R >> >> /Contents 5 0 R >>
|
||||
endobj
|
||||
8 0 obj
|
||||
<< /Type /Page /Parent 4 0 R /MediaBox [0 0 595.28 841.89] /Resources << /Font << /F1 1 0 R /F2 2 0 R /F3 3 0 R >> >> /Contents 6 0 R >>
|
||||
endobj
|
||||
9 0 obj
|
||||
<< /Type /Catalog /Pages 4 0 R >>
|
||||
endobj
|
||||
xref
|
||||
0 10
|
||||
0000000000 65535 f
|
||||
0000000009 00000 n
|
||||
0000000108 00000 n
|
||||
0000000206 00000 n
|
||||
0000000306 00000 n
|
||||
0000000369 00000 n
|
||||
0000002510 00000 n
|
||||
0000005875 00000 n
|
||||
0000006027 00000 n
|
||||
0000006179 00000 n
|
||||
trailer << /Size 10 /Root 9 0 R >>
|
||||
startxref
|
||||
6228
|
||||
%%EOF
|
||||
@@ -1,418 +0,0 @@
|
||||
%PDF-1.4
|
||||
%âãÏÓ
|
||||
1 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
2 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
3 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
4 0 obj
|
||||
<</Length 1104 >> stream
|
||||
BT /F2 18 Tf 141 783.89 Td (SOLICITUD DE PATENTE) Tj ET
|
||||
BT /F1 12 Tf 111 754.85 Td (Oficina Española de Patentes y Marcas \(OEPM\)) Tj ET
|
||||
BT /F2 12 Tf 176 725.49 Td (Título de la invención:) Tj ET
|
||||
BT /F1 12 Tf 66 710.13 Td (Sistema y procedimiento implementados por ordenador para la identificación de) Tj ET
|
||||
BT /F1 12 Tf 66 694.77 Td (necesidades terapéuticas mediante escaneo de tarjeta sanitaria individual,) Tj ET
|
||||
BT /F1 12 Tf 66 679.41 Td (contraste con stock farmacéutico geolocalizado y generación de acciones de) Tj ET
|
||||
BT /F1 12 Tf 66 664.05 Td (suministro.) Tj ET
|
||||
0.8 w 56 580.6899999999999 483.28 68 re S
|
||||
BT /F1 11 Tf 66 636.6899999999999 Td (Solicitante: Antoni Nuñez Romeu) Tj ET
|
||||
BT /F1 11 Tf 66 622.6099999999999 Td (NIF/CIF: 45858029P) Tj ET
|
||||
BT /F1 11 Tf 66 608.5299999999999 Td (Domicilio: C/ Font Vella 12, 1, Terrassa, Barcelona, 08221) Tj ET
|
||||
BT /F1 11 Tf 66 594.4499999999998 Td (Inventor o inventores: Antoni Nuñez Romeu) Tj ET
|
||||
BT /F3 10 Tf 124 568.3699999999998 Td (Memoria descriptiva, reivindicaciones, resumen y referencia a dibujos) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Pagina 1) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
7 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
8 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
9 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
11 0 obj
|
||||
<</Length 4950 >> stream
|
||||
BT /F2 13 Tf 56 781.89 Td (1. Campo técnico de la invención) Tj ET
|
||||
0.2 w 56 761.25 m 539.28 761.25 l S
|
||||
BT /F1 11.5 Tf 56 751.25 Td (La invención se encuadra en los sistemas informáticos aplicados al sector sanitario) Tj ET
|
||||
BT /F1 11.5 Tf 56 736.53 Td (y farmacéutico, en particular en soluciones de captura de identificadores) Tj ET
|
||||
BT /F1 11.5 Tf 56 721.81 Td (sanitarios, comparación automatizada de disponibilidad de medicamentos y asistencia) Tj ET
|
||||
BT /F1 11.5 Tf 56 707.0899999999999 Td (digital a la dispensación y suministro.) Tj ET
|
||||
BT /F2 13 Tf 56 688.3699999999999 Td (2. Antecedentes de la invención) Tj ET
|
||||
0.2 w 56 667.7299999999999 m 539.28 667.7299999999999 l S
|
||||
BT /F1 11.5 Tf 56 657.7299999999999 Td (Las soluciones actuales de búsqueda de medicamentos y farmacias permiten localizar) Tj ET
|
||||
BT /F1 11.5 Tf 56 643.0099999999999 Td (productos y mostrar stock aproximado, pero normalmente operan a partir de una) Tj ET
|
||||
BT /F1 11.5 Tf 56 628.2899999999998 Td (búsqueda manual por nombre de medicamento o principio activo. También existen) Tj ET
|
||||
BT /F1 11.5 Tf 56 613.5699999999998 Td (sistemas de geolocalización y de gestión de inventario, pero suelen estar) Tj ET
|
||||
BT /F1 11.5 Tf 56 598.8499999999998 Td (desacoplados del contexto sanitario del usuario y no integran, en una única cadena) Tj ET
|
||||
BT /F1 11.5 Tf 56 584.1299999999998 Td (técnica, la identificación mediante tarjeta sanitaria individual, la inferencia de) Tj ET
|
||||
BT /F1 11.5 Tf 56 569.4099999999997 Td (necesidades terapéuticas y la comparación en tiempo real con disponibilidad) Tj ET
|
||||
BT /F1 11.5 Tf 56 554.6899999999997 Td (farmacéutica local.) Tj ET
|
||||
BT /F1 11.5 Tf 56 537.9699999999997 Td (Además, cuando no existe stock en la farmacia más próxima, el usuario debe iniciar) Tj ET
|
||||
BT /F1 11.5 Tf 56 523.2499999999997 Td (manualmente nuevos procesos de búsqueda o desplazamiento, sin que el sistema) Tj ET
|
||||
BT /F1 11.5 Tf 56 508.52999999999963 Td (proponga de forma automatizada acciones técnicas de reserva, pedido o derivación) Tj ET
|
||||
BT /F1 11.5 Tf 56 493.8099999999996 Td (basadas en la disponibilidad real.) Tj ET
|
||||
BT /F2 13 Tf 56 475.0899999999996 Td (3. Problema técnico a resolver) Tj ET
|
||||
0.2 w 56 454.4499999999996 m 539.28 454.4499999999996 l S
|
||||
BT /F1 11.5 Tf 56 444.4499999999996 Td (La invención resuelve el problema técnico de reducir el tiempo y la fricción entre) Tj ET
|
||||
BT /F1 11.5 Tf 56 429.72999999999956 Td (la identificación de una necesidad terapéutica y la localización de una farmacia que) Tj ET
|
||||
BT /F1 11.5 Tf 56 415.00999999999954 Td (disponga del medicamento adecuado, integrando:) Tj ET
|
||||
BT /F1 11.2 Tf 64 398.2899999999995 Td (" lectura segura de identificadores sanitarios,) Tj ET
|
||||
BT /F1 11.2 Tf 64 383.9539999999995 Td (" obtención de referencias de medicamento asociadas,) Tj ET
|
||||
BT /F1 11.2 Tf 64 369.6179999999995 Td (" comparación automatizada con inventarios de farmacias,) Tj ET
|
||||
BT /F1 11.2 Tf 64 355.28199999999947 Td (" priorización por proximidad y disponibilidad,) Tj ET
|
||||
BT /F1 11.2 Tf 64 340.94599999999946 Td (" generación de acciones técnicas de suministro cuando no exista stock inmediato.) Tj ET
|
||||
BT /F2 13 Tf 56 324.60999999999945 Td (4. Resumen de la invención) Tj ET
|
||||
0.2 w 56 303.96999999999946 m 539.28 303.96999999999946 l S
|
||||
BT /F1 11.5 Tf 56 293.96999999999946 Td (La invención propone un sistema y procedimiento implementados por ordenador que) Tj ET
|
||||
BT /F1 11.5 Tf 56 279.24999999999943 Td (operan sobre un terminal móvil o dispositivo de lectura. El sistema captura la) Tj ET
|
||||
BT /F1 11.5 Tf 56 264.5299999999994 Td (información de una tarjeta sanitaria individual mediante escaneo, valida la) Tj ET
|
||||
BT /F1 11.5 Tf 56 249.8099999999994 Td (información mediante un módulo de verificación, asocia el resultado al perfil del) Tj ET
|
||||
BT /F1 11.5 Tf 56 235.0899999999994 Td (usuario autenticado y obtiene una lista de medicamentos o necesidades terapéuticas) Tj ET
|
||||
BT /F1 11.5 Tf 56 220.3699999999994 Td (relevantes. Posteriormente, un motor de contraste consulta un repositorio de stock) Tj ET
|
||||
BT /F1 11.5 Tf 56 205.6499999999994 Td (de farmacias geolocalizadas y determina la coincidencia entre la necesidad detectada) Tj ET
|
||||
BT /F1 11.5 Tf 56 190.9299999999994 Td (y la disponibilidad real en cada establecimiento. Si existe stock, el sistema) Tj ET
|
||||
BT /F1 11.5 Tf 56 176.2099999999994 Td (prioriza las farmacias adecuadas y presenta una ruta de acceso o reserva. Si no) Tj ET
|
||||
BT /F1 11.5 Tf 56 161.4899999999994 Td (existe stock, el sistema genera automáticamente una acción de aviso, pedido, reserva) Tj ET
|
||||
BT /F1 11.5 Tf 56 146.7699999999994 Td (o derivación, conservando trazabilidad técnica del evento. La invención no se limita) Tj ET
|
||||
BT /F1 11.5 Tf 56 132.04999999999941 Td (a una búsqueda manual, sino que integra captura, validación, georreferenciación,) Tj ET
|
||||
BT /F1 11.5 Tf 56 117.32999999999942 Td (consulta de stock y respuesta automática en una única arquitectura técnica.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Pagina 2) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
14 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
15 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
16 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
19 0 obj
|
||||
<</Length 3436 >> stream
|
||||
BT /F2 13 Tf 56 781.89 Td (5. Breve descripción de los dibujos) Tj ET
|
||||
0.2 w 56 761.25 m 539.28 761.25 l S
|
||||
BT /F1 11.5 Tf 56 751.25 Td (Figura 1. Diagrama de bloques general del sistema.) Tj ET
|
||||
BT /F1 11.5 Tf 56 734.53 Td (Figura 2. Flujo de captura y validación del escaneo de la TSI.) Tj ET
|
||||
BT /F1 11.5 Tf 56 717.81 Td (Figura 3. Flujo de contraste entre necesidad terapéutica y stock de farmacias.) Tj ET
|
||||
BT /F1 11.5 Tf 56 701.0899999999999 Td (Figura 4. Flujo de acción cuando no existe stock disponible.) Tj ET
|
||||
BT /F2 13 Tf 56 682.3699999999999 Td (6. Descripción detallada de la invención) Tj ET
|
||||
0.2 w 56 661.7299999999999 m 539.28 661.7299999999999 l S
|
||||
BT /F2 11.5 Tf 56 651.7299999999999 Td (6.1 Arquitectura general) Tj ET
|
||||
BT /F1 11.5 Tf 56 637.0099999999999 Td (El sistema comprende al menos los siguientes módulos:) Tj ET
|
||||
BT /F1 11.2 Tf 64 620.2899999999998 Td (1. un módulo de captura de imagen o lectura óptica para escanear la tarjeta sanitaria) Tj ET
|
||||
BT /F1 11.2 Tf 64 605.9539999999998 Td ( individual;) Tj ET
|
||||
BT /F1 11.2 Tf 64 591.6179999999998 Td (2. un módulo de extracción de datos para identificar los campos relevantes de la tarjeta;) Tj ET
|
||||
BT /F1 11.2 Tf 64 577.2819999999998 Td (3. un módulo de verificación de identidad y autorización, vinculado al usuario) Tj ET
|
||||
BT /F1 11.2 Tf 64 562.9459999999998 Td ( autenticado;) Tj ET
|
||||
BT /F1 11.2 Tf 64 548.6099999999998 Td (4. un módulo de obtención de necesidades terapéuticas o medicamentos asociados;) Tj ET
|
||||
BT /F1 11.2 Tf 64 534.2739999999998 Td (5. un módulo de geolocalización para obtener la posición del usuario o una posición de) Tj ET
|
||||
BT /F1 11.2 Tf 64 519.9379999999998 Td ( referencia;) Tj ET
|
||||
BT /F1 11.2 Tf 64 505.60199999999975 Td (6. un módulo de consulta de inventario para recuperar stock, precio y horario de) Tj ET
|
||||
BT /F1 11.2 Tf 64 491.26599999999974 Td ( farmacias;) Tj ET
|
||||
BT /F1 11.2 Tf 64 476.9299999999997 Td (7. un módulo de contraste y priorización para ordenar farmacias según disponibilidad y) Tj ET
|
||||
BT /F1 11.2 Tf 64 462.5939999999997 Td ( cercanía;) Tj ET
|
||||
BT /F1 11.2 Tf 64 448.2579999999997 Td (8. un módulo de generación de acciones para crear reserva, aviso, pedido o derivación;) Tj ET
|
||||
BT /F1 11.2 Tf 64 433.9219999999997 Td (9. un módulo de trazabilidad y auditoría.) Tj ET
|
||||
BT /F2 11.5 Tf 56 419.5859999999997 Td (6.2 Funcionamiento) Tj ET
|
||||
BT /F1 11.5 Tf 56 404.86599999999964 Td (En una realización preferida, el usuario abre la aplicación y solicita el escaneo de) Tj ET
|
||||
BT /F1 11.5 Tf 56 390.1459999999996 Td (su tarjeta sanitaria individual. El terminal captura la imagen o el código de la) Tj ET
|
||||
BT /F1 11.5 Tf 56 375.4259999999996 Td (tarjeta y el módulo de extracción identifica los datos técnicos necesarios para) Tj ET
|
||||
BT /F1 11.5 Tf 56 360.70599999999956 Td (enlazar el contexto sanitario del usuario con un conjunto de medicamentos o) Tj ET
|
||||
BT /F1 11.5 Tf 56 345.98599999999954 Td (referencias de tratamiento.) Tj ET
|
||||
BT /F1 11.5 Tf 56 329.2659999999995 Td (El sistema valida que la operación se ejecuta sobre un usuario autenticado y) Tj ET
|
||||
BT /F1 11.5 Tf 56 314.5459999999995 Td (autorizado. A continuación, el motor de contraste consulta el inventario de) Tj ET
|
||||
BT /F1 11.5 Tf 56 299.82599999999945 Td (farmacias cercanas, recuperando para cada farmacia al menos su ubicación, horario,) Tj ET
|
||||
BT /F1 11.5 Tf 56 285.1059999999994 Td (stock y, opcionalmente, precio.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Pagina 3) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
22 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
23 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
24 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
28 0 obj
|
||||
<</Length 3271 >> stream
|
||||
BT /F2 11.5 Tf 56 783.89 Td (6.2 Funcionamiento \(continuación\)) Tj ET
|
||||
BT /F1 11.5 Tf 56 769.17 Td (El módulo de priorización calcula una orden de resultados en base a criterios) Tj ET
|
||||
BT /F1 11.5 Tf 56 754.4499999999999 Td (técnicos tales como existencia de stock, nivel de stock, distancia geográfica,) Tj ET
|
||||
BT /F1 11.5 Tf 56 739.7299999999999 Td (horario de apertura y capacidad de reserva o solicitud de pedido.) Tj ET
|
||||
BT /F1 11.5 Tf 56 723.0099999999999 Td (Cuando existe disponibilidad, el sistema muestra una lista priorizada de farmacias y) Tj ET
|
||||
BT /F1 11.5 Tf 56 708.2899999999998 Td (puede iniciar una reserva o una indicación de recogida. Cuando no existe) Tj ET
|
||||
BT /F1 11.5 Tf 56 693.5699999999998 Td (disponibilidad, el sistema no se limita a informar de la falta de stock, sino que) Tj ET
|
||||
BT /F1 11.5 Tf 56 678.8499999999998 Td (genera una acción técnica adicional, por ejemplo alerta a la farmacia seleccionada,) Tj ET
|
||||
BT /F1 11.5 Tf 56 664.1299999999998 Td (solicitud de pedido a distribución o proveedor, derivación automática a otra) Tj ET
|
||||
BT /F1 11.5 Tf 56 649.4099999999997 Td (farmacia con stock o registro de una lista de espera o interés de suministro.) Tj ET
|
||||
BT /F2 11.5 Tf 56 632.6899999999997 Td (6.3 Tratamiento de datos y seguridad) Tj ET
|
||||
BT /F1 11.5 Tf 56 617.9699999999997 Td (La invención prevé que la información derivada del escaneo de la TSI se trate con) Tj ET
|
||||
BT /F1 11.5 Tf 56 603.2499999999997 Td (medidas de minimización de datos, control de acceso, cifrado en tránsito y registro) Tj ET
|
||||
BT /F1 11.5 Tf 56 588.5299999999996 Td (de eventos. El sistema no expone innecesariamente los datos de la tarjeta sanitaria) Tj ET
|
||||
BT /F1 11.5 Tf 56 573.8099999999996 Td (y solo conserva los elementos imprescindibles para la operación descrita.) Tj ET
|
||||
BT /F2 11.5 Tf 56 557.0899999999996 Td (6.4 Integración con la plataforma FarmaFinder) Tj ET
|
||||
BT /F1 11.5 Tf 56 542.3699999999995 Td (En una implementación concreta, el sistema puede integrarse con una plataforma que) Tj ET
|
||||
BT /F1 11.5 Tf 56 527.6499999999995 Td (ya disponga de catálogo de farmacias, geolocalización, stock por medicamento,) Tj ET
|
||||
BT /F1 11.5 Tf 56 512.9299999999995 Td (autenticación de usuario, notificaciones push e histórico de acciones y) Tj ET
|
||||
BT /F1 11.5 Tf 56 498.20999999999947 Td (preferencias.) Tj ET
|
||||
BT /F1 11.5 Tf 56 481.48999999999944 Td (La integración permite que el resultado del escaneo de la TSI no se limite a una) Tj ET
|
||||
BT /F1 11.5 Tf 56 466.7699999999994 Td (consulta pasiva, sino que se convierta en un disparador de decisiones técnicas sobre) Tj ET
|
||||
BT /F1 11.5 Tf 56 452.0499999999994 Td (disponibilidad y suministro.) Tj ET
|
||||
BT /F2 13 Tf 56 433.32999999999936 Td (7. Ejemplo de realización) Tj ET
|
||||
0.2 w 56 412.6899999999994 m 539.28 412.6899999999994 l S
|
||||
BT /F1 11.2 Tf 64 402.6899999999994 Td (1. El usuario inicia sesión en la aplicación.) Tj ET
|
||||
BT /F1 11.2 Tf 64 388.35399999999936 Td (2. El usuario escanea su TSI con la cámara del terminal.) Tj ET
|
||||
BT /F1 11.2 Tf 64 374.01799999999935 Td (3. El sistema extrae el identificador necesario y lo vincula al perfil autorizado.) Tj ET
|
||||
BT /F1 11.2 Tf 64 359.68199999999933 Td (4. El motor terapéutico asocia una necesidad de medicamento o tratamiento.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Pagina 4) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
31 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
32 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
33 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
38 0 obj
|
||||
<</Length 3689 >> stream
|
||||
BT /F2 13 Tf 56 781.89 Td (7. Ejemplo de realización \(continuación\)) Tj ET
|
||||
0.2 w 56 761.25 m 539.28 761.25 l S
|
||||
BT /F1 11.2 Tf 64 751.25 Td (1. El sistema consulta farmacias cercanas con stock del medicamento.) Tj ET
|
||||
BT /F1 11.2 Tf 64 736.914 Td (2. Si hay stock, ordena las farmacias por proximidad y disponibilidad.) Tj ET
|
||||
BT /F1 11.2 Tf 64 722.578 Td (3. Si no hay stock, genera una reserva, una alerta o una solicitud de pedido.) Tj ET
|
||||
BT /F2 13 Tf 56 706.242 Td (8. Reivindicaciones) Tj ET
|
||||
0.2 w 56 685.602 m 539.28 685.602 l S
|
||||
BT /F1 11.2 Tf 56 675.602 Td (Reivindicación 1. Sistema implementado por ordenador para identificar una necesidad) Tj ET
|
||||
BT /F1 11.2 Tf 56 661.266 Td (terapéutica a partir del escaneo de una tarjeta sanitaria individual, caracterizado) Tj ET
|
||||
BT /F1 11.2 Tf 56 646.93 Td (porque comprende medios de captura para obtener datos de la tarjeta sanitaria) Tj ET
|
||||
BT /F1 11.2 Tf 56 632.5939999999999 Td (individual; medios de verificación para asociar dichos datos a un usuario autenticado;) Tj ET
|
||||
BT /F1 11.2 Tf 56 618.2579999999999 Td (medios de obtención de una referencia de medicamento o necesidad terapéutica; medios) Tj ET
|
||||
BT /F1 11.2 Tf 56 603.9219999999999 Td (de consulta de inventario para recuperar stock de farmacias geolocalizadas; medios de) Tj ET
|
||||
BT /F1 11.2 Tf 56 589.5859999999999 Td (contraste para comparar la referencia de medicamento o necesidad terapéutica con el) Tj ET
|
||||
BT /F1 11.2 Tf 56 575.2499999999999 Td (stock disponible; y medios de generación de acciones para producir una reserva, aviso,) Tj ET
|
||||
BT /F1 11.2 Tf 56 560.9139999999999 Td (pedido o derivación cuando el stock disponible sea insuficiente.) Tj ET
|
||||
BT /F1 11.2 Tf 56 544.5779999999999 Td (Reivindicación 2. Sistema según la reivindicación 1, en el que los medios de consulta) Tj ET
|
||||
BT /F1 11.2 Tf 56 530.2419999999998 Td (de inventario ordenan las farmacias según una combinación de stock disponible,) Tj ET
|
||||
BT /F1 11.2 Tf 56 515.9059999999998 Td (proximidad geográfica y horario de apertura.) Tj ET
|
||||
BT /F1 11.2 Tf 56 499.5699999999998 Td (Reivindicación 3. Sistema según cualquiera de las reivindicaciones anteriores, en el) Tj ET
|
||||
BT /F1 11.2 Tf 56 485.2339999999998 Td (que los datos de la tarjeta sanitaria individual son tratados mediante un módulo de) Tj ET
|
||||
BT /F1 11.2 Tf 56 470.8979999999998 Td (minimización y cifrado para limitar su almacenamiento a los campos técnicamente) Tj ET
|
||||
BT /F1 11.2 Tf 56 456.5619999999998 Td (necesarios.) Tj ET
|
||||
BT /F1 11.2 Tf 56 440.2259999999998 Td (Reivindicación 4. Procedimiento implementado por ordenador para asistir en la) Tj ET
|
||||
BT /F1 11.2 Tf 56 425.88999999999976 Td (localización y suministro de medicamentos, caracterizado porque comprende escanear una) Tj ET
|
||||
BT /F1 11.2 Tf 56 411.55399999999975 Td (tarjeta sanitaria individual; verificar la autorización del usuario; derivar una) Tj ET
|
||||
BT /F1 11.2 Tf 56 397.21799999999973 Td (necesidad terapéutica o referencia de medicamento; consultar stock de farmacias) Tj ET
|
||||
BT /F1 11.2 Tf 56 382.8819999999997 Td (geolocalizadas; comparar la necesidad con el stock disponible; y generar una acción) Tj ET
|
||||
BT /F1 11.2 Tf 56 368.5459999999997 Td (técnica de reserva, aviso, pedido o derivación cuando no exista disponibilidad) Tj ET
|
||||
BT /F1 11.2 Tf 56 354.2099999999997 Td (suficiente.) Tj ET
|
||||
BT /F1 11.2 Tf 56 337.8739999999997 Td (Reivindicación 5. Dispositivo móvil, terminal o sistema de lectura que comprende una) Tj ET
|
||||
BT /F1 11.2 Tf 56 323.53799999999967 Td (cámara o lector óptico y que está configurado para ejecutar el sistema de cualquiera) Tj ET
|
||||
BT /F1 11.2 Tf 56 309.20199999999966 Td (de las reivindicaciones anteriores.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Pagina 5) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
41 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
42 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
43 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
49 0 obj
|
||||
<</Length 4216 >> stream
|
||||
BT /F2 13 Tf 56 781.89 Td (9. Aplicación industrial) Tj ET
|
||||
0.2 w 56 761.25 m 539.28 761.25 l S
|
||||
BT /F1 11.5 Tf 56 751.25 Td (La invención es susceptible de aplicación industrial en plataformas de asistencia) Tj ET
|
||||
BT /F1 11.5 Tf 56 736.53 Td (farmacéutica, sistemas de gestión de inventario, servicios de reserva o pedido de) Tj ET
|
||||
BT /F1 11.5 Tf 56 721.81 Td (medicamentos y terminales de consulta sanitaria.) Tj ET
|
||||
BT /F2 13 Tf 56 703.0899999999999 Td (10. Resumen) Tj ET
|
||||
0.2 w 56 682.4499999999999 m 539.28 682.4499999999999 l S
|
||||
BT /F1 11.5 Tf 56 672.4499999999999 Td (La presente invención se refiere a un sistema y procedimiento implementados por) Tj ET
|
||||
BT /F1 11.5 Tf 56 657.7299999999999 Td (ordenador que permiten, a partir del escaneo de una tarjeta sanitaria individual) Tj ET
|
||||
BT /F1 11.5 Tf 56 643.0099999999999 Td (mediante un terminal móvil o dispositivo equivalente, asociar de forma segura un) Tj ET
|
||||
BT /F1 11.5 Tf 56 628.2899999999998 Td (contexto de paciente a una necesidad terapéutica, obtener una referencia de) Tj ET
|
||||
BT /F1 11.5 Tf 56 613.5699999999998 Td (medicamentos relevantes, comparar dicha necesidad con el stock disponible en) Tj ET
|
||||
BT /F1 11.5 Tf 56 598.8499999999998 Td (farmacias geolocalizadas y generar, en caso de falta de disponibilidad, una acción) Tj ET
|
||||
BT /F1 11.5 Tf 56 584.1299999999998 Td (de reserva, aviso, solicitud de pedido o derivación a una farmacia alternativa. El) Tj ET
|
||||
BT /F1 11.5 Tf 56 569.4099999999997 Td (sistema integra captura de datos, verificación de identidad, geolocalización,) Tj ET
|
||||
BT /F1 11.5 Tf 56 554.6899999999997 Td (consulta de disponibilidad, gestión de stock y generación de eventos de suministro) Tj ET
|
||||
BT /F1 11.5 Tf 56 539.9699999999997 Td (en una única cadena técnica de procesamiento.) Tj ET
|
||||
BT /F2 13 Tf 56 521.2499999999997 Td (11. Anexo de dibujos) Tj ET
|
||||
0.2 w 56 500.6099999999997 m 539.28 500.6099999999997 l S
|
||||
BT /F1 11.5 Tf 56 490.6099999999997 Td (Las figuras indicadas en la presente memoria tienen carácter esquemático y se) Tj ET
|
||||
BT /F1 11.5 Tf 56 475.88999999999965 Td (incorporan a efectos ilustrativos de la arquitectura, del flujo de captura, del) Tj ET
|
||||
BT /F1 11.5 Tf 56 461.1699999999996 Td (contraste de stock y de la generación de acciones. En una presentación definitiva,) Tj ET
|
||||
BT /F1 11.5 Tf 56 446.4499999999996 Td (dichas figuras podrán acompañarse como láminas separadas numeradas de forma) Tj ET
|
||||
BT /F1 11.5 Tf 56 431.72999999999956 Td (consecutiva.) Tj ET
|
||||
BT /F2 13 Tf 56 413.00999999999954 Td (12. Firma del solicitante) Tj ET
|
||||
0.2 w 56 392.36999999999955 m 539.28 392.36999999999955 l S
|
||||
BT /F1 11.5 Tf 56 382.36999999999955 Td (En Terrassa, a 22 de junio de 2026.) Tj ET
|
||||
BT /F1 11.5 Tf 56 365.6499999999995 Td (Fdo.: Antoni Nuñez Romeu) Tj ET
|
||||
BT /F1 11.5 Tf 56 348.9299999999995 Td (DNI/NIF: 45858029P) Tj ET
|
||||
BT /F2 13 Tf 56 330.20999999999947 Td (13. Notas para presentación en OEPM) Tj ET
|
||||
0.2 w 56 309.5699999999995 m 539.28 309.5699999999995 l S
|
||||
BT /F1 11.2 Tf 64 299.5699999999995 Td (" La solicitud debe presentarse como una única invención o un único concepto inventivo) Tj ET
|
||||
BT /F1 11.2 Tf 64 285.23399999999947 Td ( general.) Tj ET
|
||||
BT /F1 11.2 Tf 64 270.89799999999946 Td (" La descripción, reivindicaciones y dibujos deben ser coherentes entre sí.) Tj ET
|
||||
BT /F1 11.2 Tf 64 256.56199999999944 Td (" La protección en patente debe apoyarse en un efecto técnico concreto y no en una mera) Tj ET
|
||||
BT /F1 11.2 Tf 64 242.22599999999943 Td ( regla comercial o método abstracto.) Tj ET
|
||||
BT /F1 11.2 Tf 64 227.88999999999942 Td (" Esta redacción evita formular una reivindicación independiente de "programa de) Tj ET
|
||||
BT /F1 11.2 Tf 64 213.5539999999994 Td ( ordenador como tal" y se centra en un sistema y un procedimiento implementados por) Tj ET
|
||||
BT /F1 11.2 Tf 64 199.2179999999994 Td ( ordenador con interacción técnica sobre captura, contraste de inventario y generación) Tj ET
|
||||
BT /F1 11.2 Tf 64 184.88199999999938 Td ( de acciones.) Tj ET
|
||||
BT /F1 11.2 Tf 64 170.54599999999937 Td (" Antes de presentar la solicitud conviene una búsqueda de anterioridades y una revisión) Tj ET
|
||||
BT /F1 11.2 Tf 64 156.20999999999935 Td ( por agente de propiedad industrial.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Pagina 6) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
52 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
53 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
54 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
56 0 obj
|
||||
<</Length 1123 >> stream
|
||||
BT /F2 18 Tf 231 785.89 Td (Dibujos) Tj ET
|
||||
BT /F3 11.5 Tf 101 763.39 Td (Bloque limpio para la presentación de la) Tj ET
|
||||
BT /F3 11.5 Tf 101 749.015 Td (solicitud) Tj ET
|
||||
BT /F2 13 Tf 56 716.64 Td (Breve descripción de los dibujos) Tj ET
|
||||
0.3 w 56 698.39 m 539.28 698.39 l S
|
||||
BT /F1 11.5 Tf 56 690.39 Td (Figura 1. Diagrama de bloques general del sistema.) Tj ET
|
||||
BT /F1 11.5 Tf 56 674.015 Td (Figura 2. Flujo de captura y validación del escaneo de la TSI.) Tj ET
|
||||
BT /F1 11.5 Tf 56 657.64 Td (Figura 3. Flujo de contraste entre necesidad terapéutica y stock de farmacias.) Tj ET
|
||||
BT /F1 11.5 Tf 56 641.265 Td (Figura 4. Flujo de acción cuando no existe stock disponible.) Tj ET
|
||||
BT /F2 13 Tf 56 612.89 Td (Nota) Tj ET
|
||||
0.3 w 56 594.64 m 539.28 594.64 l S
|
||||
BT /F1 11.5 Tf 56 586.64 Td (El documento fuente contiene referencias esquemáticas a las figuras, pero no) Tj ET
|
||||
BT /F1 11.5 Tf 56 572.265 Td (incluye láminas técnicas dibujadas de forma separada. Si la Oficina requiere) Tj ET
|
||||
BT /F1 11.5 Tf 56 557.89 Td (placas gráficas, habrá que añadirlas antes de la presentación definitiva.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Page 1) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
58 0 obj
|
||||
<< /Type /Catalog /Pages 59 0 R>>
|
||||
endobj
|
||||
59 0 obj
|
||||
<< /Type /Pages /Kids [ 60 0 R 61 0 R 62 0 R 63 0 R 64 0 R 65 0 R 66 0 R ] /Count 7 >>
|
||||
endobj
|
||||
60 0 obj
|
||||
<< /Type /Page /Parent 59 0 R /Contents 4 0 R /Resources <</Font <</F1 1 0 R /F2 2 0 R /F3 3 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
61 0 obj
|
||||
<< /Type /Page /Parent 59 0 R /Contents 11 0 R /Resources <</Font <</F1 7 0 R /F2 8 0 R /F3 9 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
62 0 obj
|
||||
<< /Type /Page /Parent 59 0 R /Contents 19 0 R /Resources <</Font <</F1 14 0 R /F2 15 0 R /F3 16 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
63 0 obj
|
||||
<< /Type /Page /Parent 59 0 R /Contents 28 0 R /Resources <</Font <</F1 22 0 R /F2 23 0 R /F3 24 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
64 0 obj
|
||||
<< /Type /Page /Parent 59 0 R /Contents 38 0 R /Resources <</Font <</F1 31 0 R /F2 32 0 R /F3 33 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
65 0 obj
|
||||
<< /Type /Page /Parent 59 0 R /Contents 49 0 R /Resources <</Font <</F1 41 0 R /F2 42 0 R /F3 43 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
66 0 obj
|
||||
<< /Type /Page /Parent 59 0 R /Contents 56 0 R /Resources <</Font <</F1 52 0 R /F2 53 0 R /F3 54 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
xref
|
||||
0 67
|
||||
0000000005 65535 f
|
||||
0000000015 00000 n
|
||||
0000000117 00000 n
|
||||
0000000218 00000 n
|
||||
0000000321 00000 n
|
||||
0000000006 00000 f
|
||||
0000000010 00000 f
|
||||
0000001483 00000 n
|
||||
0000001585 00000 n
|
||||
0000001686 00000 n
|
||||
0000000012 00000 f
|
||||
0000001789 00000 n
|
||||
0000000013 00000 f
|
||||
0000000017 00000 f
|
||||
0000006798 00000 n
|
||||
0000006901 00000 n
|
||||
0000007003 00000 n
|
||||
0000000018 00000 f
|
||||
0000000020 00000 f
|
||||
0000007107 00000 n
|
||||
0000000021 00000 f
|
||||
0000000025 00000 f
|
||||
0000010602 00000 n
|
||||
0000010705 00000 n
|
||||
0000010807 00000 n
|
||||
0000000026 00000 f
|
||||
0000000027 00000 f
|
||||
0000000029 00000 f
|
||||
0000010911 00000 n
|
||||
0000000030 00000 f
|
||||
0000000034 00000 f
|
||||
0000014241 00000 n
|
||||
0000014344 00000 n
|
||||
0000014446 00000 n
|
||||
0000000035 00000 f
|
||||
0000000036 00000 f
|
||||
0000000037 00000 f
|
||||
0000000039 00000 f
|
||||
0000014550 00000 n
|
||||
0000000040 00000 f
|
||||
0000000044 00000 f
|
||||
0000018298 00000 n
|
||||
0000018401 00000 n
|
||||
0000018503 00000 n
|
||||
0000000045 00000 f
|
||||
0000000046 00000 f
|
||||
0000000047 00000 f
|
||||
0000000048 00000 f
|
||||
0000000050 00000 f
|
||||
0000018607 00000 n
|
||||
0000000051 00000 f
|
||||
0000000055 00000 f
|
||||
0000022882 00000 n
|
||||
0000022985 00000 n
|
||||
0000023087 00000 n
|
||||
0000000057 00000 f
|
||||
0000023191 00000 n
|
||||
0000000000 00000 f
|
||||
0000024373 00000 n
|
||||
0000024423 00000 n
|
||||
0000024526 00000 n
|
||||
0000024725 00000 n
|
||||
0000024925 00000 n
|
||||
0000025128 00000 n
|
||||
0000025331 00000 n
|
||||
0000025534 00000 n
|
||||
0000025737 00000 n
|
||||
trailer
|
||||
<</Size 37 /ID [(›Omm–XÌ#CÀ2O{ø) (›Omm–XÌ#CÀ2O{ø) ] /Root 58 0 R >>
|
||||
startxref
|
||||
25940
|
||||
%%EOF
|
||||
@@ -1,380 +0,0 @@
|
||||
%PDF-1.4
|
||||
%âãÏÓ
|
||||
1 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
2 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
3 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
5 0 obj
|
||||
<</Length 4950 >> stream
|
||||
BT /F2 13 Tf 56 781.89 Td (1. Campo técnico de la invención) Tj ET
|
||||
0.2 w 56 761.25 m 539.28 761.25 l S
|
||||
BT /F1 11.5 Tf 56 751.25 Td (La invención se encuadra en los sistemas informáticos aplicados al sector sanitario) Tj ET
|
||||
BT /F1 11.5 Tf 56 736.53 Td (y farmacéutico, en particular en soluciones de captura de identificadores) Tj ET
|
||||
BT /F1 11.5 Tf 56 721.81 Td (sanitarios, comparación automatizada de disponibilidad de medicamentos y asistencia) Tj ET
|
||||
BT /F1 11.5 Tf 56 707.0899999999999 Td (digital a la dispensación y suministro.) Tj ET
|
||||
BT /F2 13 Tf 56 688.3699999999999 Td (2. Antecedentes de la invención) Tj ET
|
||||
0.2 w 56 667.7299999999999 m 539.28 667.7299999999999 l S
|
||||
BT /F1 11.5 Tf 56 657.7299999999999 Td (Las soluciones actuales de búsqueda de medicamentos y farmacias permiten localizar) Tj ET
|
||||
BT /F1 11.5 Tf 56 643.0099999999999 Td (productos y mostrar stock aproximado, pero normalmente operan a partir de una) Tj ET
|
||||
BT /F1 11.5 Tf 56 628.2899999999998 Td (búsqueda manual por nombre de medicamento o principio activo. También existen) Tj ET
|
||||
BT /F1 11.5 Tf 56 613.5699999999998 Td (sistemas de geolocalización y de gestión de inventario, pero suelen estar) Tj ET
|
||||
BT /F1 11.5 Tf 56 598.8499999999998 Td (desacoplados del contexto sanitario del usuario y no integran, en una única cadena) Tj ET
|
||||
BT /F1 11.5 Tf 56 584.1299999999998 Td (técnica, la identificación mediante tarjeta sanitaria individual, la inferencia de) Tj ET
|
||||
BT /F1 11.5 Tf 56 569.4099999999997 Td (necesidades terapéuticas y la comparación en tiempo real con disponibilidad) Tj ET
|
||||
BT /F1 11.5 Tf 56 554.6899999999997 Td (farmacéutica local.) Tj ET
|
||||
BT /F1 11.5 Tf 56 537.9699999999997 Td (Además, cuando no existe stock en la farmacia más próxima, el usuario debe iniciar) Tj ET
|
||||
BT /F1 11.5 Tf 56 523.2499999999997 Td (manualmente nuevos procesos de búsqueda o desplazamiento, sin que el sistema) Tj ET
|
||||
BT /F1 11.5 Tf 56 508.52999999999963 Td (proponga de forma automatizada acciones técnicas de reserva, pedido o derivación) Tj ET
|
||||
BT /F1 11.5 Tf 56 493.8099999999996 Td (basadas en la disponibilidad real.) Tj ET
|
||||
BT /F2 13 Tf 56 475.0899999999996 Td (3. Problema técnico a resolver) Tj ET
|
||||
0.2 w 56 454.4499999999996 m 539.28 454.4499999999996 l S
|
||||
BT /F1 11.5 Tf 56 444.4499999999996 Td (La invención resuelve el problema técnico de reducir el tiempo y la fricción entre) Tj ET
|
||||
BT /F1 11.5 Tf 56 429.72999999999956 Td (la identificación de una necesidad terapéutica y la localización de una farmacia que) Tj ET
|
||||
BT /F1 11.5 Tf 56 415.00999999999954 Td (disponga del medicamento adecuado, integrando:) Tj ET
|
||||
BT /F1 11.2 Tf 64 398.2899999999995 Td (" lectura segura de identificadores sanitarios,) Tj ET
|
||||
BT /F1 11.2 Tf 64 383.9539999999995 Td (" obtención de referencias de medicamento asociadas,) Tj ET
|
||||
BT /F1 11.2 Tf 64 369.6179999999995 Td (" comparación automatizada con inventarios de farmacias,) Tj ET
|
||||
BT /F1 11.2 Tf 64 355.28199999999947 Td (" priorización por proximidad y disponibilidad,) Tj ET
|
||||
BT /F1 11.2 Tf 64 340.94599999999946 Td (" generación de acciones técnicas de suministro cuando no exista stock inmediato.) Tj ET
|
||||
BT /F2 13 Tf 56 324.60999999999945 Td (4. Resumen de la invención) Tj ET
|
||||
0.2 w 56 303.96999999999946 m 539.28 303.96999999999946 l S
|
||||
BT /F1 11.5 Tf 56 293.96999999999946 Td (La invención propone un sistema y procedimiento implementados por ordenador que) Tj ET
|
||||
BT /F1 11.5 Tf 56 279.24999999999943 Td (operan sobre un terminal móvil o dispositivo de lectura. El sistema captura la) Tj ET
|
||||
BT /F1 11.5 Tf 56 264.5299999999994 Td (información de una tarjeta sanitaria individual mediante escaneo, valida la) Tj ET
|
||||
BT /F1 11.5 Tf 56 249.8099999999994 Td (información mediante un módulo de verificación, asocia el resultado al perfil del) Tj ET
|
||||
BT /F1 11.5 Tf 56 235.0899999999994 Td (usuario autenticado y obtiene una lista de medicamentos o necesidades terapéuticas) Tj ET
|
||||
BT /F1 11.5 Tf 56 220.3699999999994 Td (relevantes. Posteriormente, un motor de contraste consulta un repositorio de stock) Tj ET
|
||||
BT /F1 11.5 Tf 56 205.6499999999994 Td (de farmacias geolocalizadas y determina la coincidencia entre la necesidad detectada) Tj ET
|
||||
BT /F1 11.5 Tf 56 190.9299999999994 Td (y la disponibilidad real en cada establecimiento. Si existe stock, el sistema) Tj ET
|
||||
BT /F1 11.5 Tf 56 176.2099999999994 Td (prioriza las farmacias adecuadas y presenta una ruta de acceso o reserva. Si no) Tj ET
|
||||
BT /F1 11.5 Tf 56 161.4899999999994 Td (existe stock, el sistema genera automáticamente una acción de aviso, pedido, reserva) Tj ET
|
||||
BT /F1 11.5 Tf 56 146.7699999999994 Td (o derivación, conservando trazabilidad técnica del evento. La invención no se limita) Tj ET
|
||||
BT /F1 11.5 Tf 56 132.04999999999941 Td (a una búsqueda manual, sino que integra captura, validación, georreferenciación,) Tj ET
|
||||
BT /F1 11.5 Tf 56 117.32999999999942 Td (consulta de stock y respuesta automática en una única arquitectura técnica.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Pagina 2) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
8 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
9 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
10 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
13 0 obj
|
||||
<</Length 3436 >> stream
|
||||
BT /F2 13 Tf 56 781.89 Td (5. Breve descripción de los dibujos) Tj ET
|
||||
0.2 w 56 761.25 m 539.28 761.25 l S
|
||||
BT /F1 11.5 Tf 56 751.25 Td (Figura 1. Diagrama de bloques general del sistema.) Tj ET
|
||||
BT /F1 11.5 Tf 56 734.53 Td (Figura 2. Flujo de captura y validación del escaneo de la TSI.) Tj ET
|
||||
BT /F1 11.5 Tf 56 717.81 Td (Figura 3. Flujo de contraste entre necesidad terapéutica y stock de farmacias.) Tj ET
|
||||
BT /F1 11.5 Tf 56 701.0899999999999 Td (Figura 4. Flujo de acción cuando no existe stock disponible.) Tj ET
|
||||
BT /F2 13 Tf 56 682.3699999999999 Td (6. Descripción detallada de la invención) Tj ET
|
||||
0.2 w 56 661.7299999999999 m 539.28 661.7299999999999 l S
|
||||
BT /F2 11.5 Tf 56 651.7299999999999 Td (6.1 Arquitectura general) Tj ET
|
||||
BT /F1 11.5 Tf 56 637.0099999999999 Td (El sistema comprende al menos los siguientes módulos:) Tj ET
|
||||
BT /F1 11.2 Tf 64 620.2899999999998 Td (1. un módulo de captura de imagen o lectura óptica para escanear la tarjeta sanitaria) Tj ET
|
||||
BT /F1 11.2 Tf 64 605.9539999999998 Td ( individual;) Tj ET
|
||||
BT /F1 11.2 Tf 64 591.6179999999998 Td (2. un módulo de extracción de datos para identificar los campos relevantes de la tarjeta;) Tj ET
|
||||
BT /F1 11.2 Tf 64 577.2819999999998 Td (3. un módulo de verificación de identidad y autorización, vinculado al usuario) Tj ET
|
||||
BT /F1 11.2 Tf 64 562.9459999999998 Td ( autenticado;) Tj ET
|
||||
BT /F1 11.2 Tf 64 548.6099999999998 Td (4. un módulo de obtención de necesidades terapéuticas o medicamentos asociados;) Tj ET
|
||||
BT /F1 11.2 Tf 64 534.2739999999998 Td (5. un módulo de geolocalización para obtener la posición del usuario o una posición de) Tj ET
|
||||
BT /F1 11.2 Tf 64 519.9379999999998 Td ( referencia;) Tj ET
|
||||
BT /F1 11.2 Tf 64 505.60199999999975 Td (6. un módulo de consulta de inventario para recuperar stock, precio y horario de) Tj ET
|
||||
BT /F1 11.2 Tf 64 491.26599999999974 Td ( farmacias;) Tj ET
|
||||
BT /F1 11.2 Tf 64 476.9299999999997 Td (7. un módulo de contraste y priorización para ordenar farmacias según disponibilidad y) Tj ET
|
||||
BT /F1 11.2 Tf 64 462.5939999999997 Td ( cercanía;) Tj ET
|
||||
BT /F1 11.2 Tf 64 448.2579999999997 Td (8. un módulo de generación de acciones para crear reserva, aviso, pedido o derivación;) Tj ET
|
||||
BT /F1 11.2 Tf 64 433.9219999999997 Td (9. un módulo de trazabilidad y auditoría.) Tj ET
|
||||
BT /F2 11.5 Tf 56 419.5859999999997 Td (6.2 Funcionamiento) Tj ET
|
||||
BT /F1 11.5 Tf 56 404.86599999999964 Td (En una realización preferida, el usuario abre la aplicación y solicita el escaneo de) Tj ET
|
||||
BT /F1 11.5 Tf 56 390.1459999999996 Td (su tarjeta sanitaria individual. El terminal captura la imagen o el código de la) Tj ET
|
||||
BT /F1 11.5 Tf 56 375.4259999999996 Td (tarjeta y el módulo de extracción identifica los datos técnicos necesarios para) Tj ET
|
||||
BT /F1 11.5 Tf 56 360.70599999999956 Td (enlazar el contexto sanitario del usuario con un conjunto de medicamentos o) Tj ET
|
||||
BT /F1 11.5 Tf 56 345.98599999999954 Td (referencias de tratamiento.) Tj ET
|
||||
BT /F1 11.5 Tf 56 329.2659999999995 Td (El sistema valida que la operación se ejecuta sobre un usuario autenticado y) Tj ET
|
||||
BT /F1 11.5 Tf 56 314.5459999999995 Td (autorizado. A continuación, el motor de contraste consulta el inventario de) Tj ET
|
||||
BT /F1 11.5 Tf 56 299.82599999999945 Td (farmacias cercanas, recuperando para cada farmacia al menos su ubicación, horario,) Tj ET
|
||||
BT /F1 11.5 Tf 56 285.1059999999994 Td (stock y, opcionalmente, precio.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Pagina 3) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
16 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
17 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
18 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
22 0 obj
|
||||
<</Length 3271 >> stream
|
||||
BT /F2 11.5 Tf 56 783.89 Td (6.2 Funcionamiento \(continuación\)) Tj ET
|
||||
BT /F1 11.5 Tf 56 769.17 Td (El módulo de priorización calcula una orden de resultados en base a criterios) Tj ET
|
||||
BT /F1 11.5 Tf 56 754.4499999999999 Td (técnicos tales como existencia de stock, nivel de stock, distancia geográfica,) Tj ET
|
||||
BT /F1 11.5 Tf 56 739.7299999999999 Td (horario de apertura y capacidad de reserva o solicitud de pedido.) Tj ET
|
||||
BT /F1 11.5 Tf 56 723.0099999999999 Td (Cuando existe disponibilidad, el sistema muestra una lista priorizada de farmacias y) Tj ET
|
||||
BT /F1 11.5 Tf 56 708.2899999999998 Td (puede iniciar una reserva o una indicación de recogida. Cuando no existe) Tj ET
|
||||
BT /F1 11.5 Tf 56 693.5699999999998 Td (disponibilidad, el sistema no se limita a informar de la falta de stock, sino que) Tj ET
|
||||
BT /F1 11.5 Tf 56 678.8499999999998 Td (genera una acción técnica adicional, por ejemplo alerta a la farmacia seleccionada,) Tj ET
|
||||
BT /F1 11.5 Tf 56 664.1299999999998 Td (solicitud de pedido a distribución o proveedor, derivación automática a otra) Tj ET
|
||||
BT /F1 11.5 Tf 56 649.4099999999997 Td (farmacia con stock o registro de una lista de espera o interés de suministro.) Tj ET
|
||||
BT /F2 11.5 Tf 56 632.6899999999997 Td (6.3 Tratamiento de datos y seguridad) Tj ET
|
||||
BT /F1 11.5 Tf 56 617.9699999999997 Td (La invención prevé que la información derivada del escaneo de la TSI se trate con) Tj ET
|
||||
BT /F1 11.5 Tf 56 603.2499999999997 Td (medidas de minimización de datos, control de acceso, cifrado en tránsito y registro) Tj ET
|
||||
BT /F1 11.5 Tf 56 588.5299999999996 Td (de eventos. El sistema no expone innecesariamente los datos de la tarjeta sanitaria) Tj ET
|
||||
BT /F1 11.5 Tf 56 573.8099999999996 Td (y solo conserva los elementos imprescindibles para la operación descrita.) Tj ET
|
||||
BT /F2 11.5 Tf 56 557.0899999999996 Td (6.4 Integración con la plataforma FarmaFinder) Tj ET
|
||||
BT /F1 11.5 Tf 56 542.3699999999995 Td (En una implementación concreta, el sistema puede integrarse con una plataforma que) Tj ET
|
||||
BT /F1 11.5 Tf 56 527.6499999999995 Td (ya disponga de catálogo de farmacias, geolocalización, stock por medicamento,) Tj ET
|
||||
BT /F1 11.5 Tf 56 512.9299999999995 Td (autenticación de usuario, notificaciones push e histórico de acciones y) Tj ET
|
||||
BT /F1 11.5 Tf 56 498.20999999999947 Td (preferencias.) Tj ET
|
||||
BT /F1 11.5 Tf 56 481.48999999999944 Td (La integración permite que el resultado del escaneo de la TSI no se limite a una) Tj ET
|
||||
BT /F1 11.5 Tf 56 466.7699999999994 Td (consulta pasiva, sino que se convierta en un disparador de decisiones técnicas sobre) Tj ET
|
||||
BT /F1 11.5 Tf 56 452.0499999999994 Td (disponibilidad y suministro.) Tj ET
|
||||
BT /F2 13 Tf 56 433.32999999999936 Td (7. Ejemplo de realización) Tj ET
|
||||
0.2 w 56 412.6899999999994 m 539.28 412.6899999999994 l S
|
||||
BT /F1 11.2 Tf 64 402.6899999999994 Td (1. El usuario inicia sesión en la aplicación.) Tj ET
|
||||
BT /F1 11.2 Tf 64 388.35399999999936 Td (2. El usuario escanea su TSI con la cámara del terminal.) Tj ET
|
||||
BT /F1 11.2 Tf 64 374.01799999999935 Td (3. El sistema extrae el identificador necesario y lo vincula al perfil autorizado.) Tj ET
|
||||
BT /F1 11.2 Tf 64 359.68199999999933 Td (4. El motor terapéutico asocia una necesidad de medicamento o tratamiento.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Pagina 4) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
25 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
26 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
27 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
32 0 obj
|
||||
<</Length 3689 >> stream
|
||||
BT /F2 13 Tf 56 781.89 Td (7. Ejemplo de realización \(continuación\)) Tj ET
|
||||
0.2 w 56 761.25 m 539.28 761.25 l S
|
||||
BT /F1 11.2 Tf 64 751.25 Td (1. El sistema consulta farmacias cercanas con stock del medicamento.) Tj ET
|
||||
BT /F1 11.2 Tf 64 736.914 Td (2. Si hay stock, ordena las farmacias por proximidad y disponibilidad.) Tj ET
|
||||
BT /F1 11.2 Tf 64 722.578 Td (3. Si no hay stock, genera una reserva, una alerta o una solicitud de pedido.) Tj ET
|
||||
BT /F2 13 Tf 56 706.242 Td (8. Reivindicaciones) Tj ET
|
||||
0.2 w 56 685.602 m 539.28 685.602 l S
|
||||
BT /F1 11.2 Tf 56 675.602 Td (Reivindicación 1. Sistema implementado por ordenador para identificar una necesidad) Tj ET
|
||||
BT /F1 11.2 Tf 56 661.266 Td (terapéutica a partir del escaneo de una tarjeta sanitaria individual, caracterizado) Tj ET
|
||||
BT /F1 11.2 Tf 56 646.93 Td (porque comprende medios de captura para obtener datos de la tarjeta sanitaria) Tj ET
|
||||
BT /F1 11.2 Tf 56 632.5939999999999 Td (individual; medios de verificación para asociar dichos datos a un usuario autenticado;) Tj ET
|
||||
BT /F1 11.2 Tf 56 618.2579999999999 Td (medios de obtención de una referencia de medicamento o necesidad terapéutica; medios) Tj ET
|
||||
BT /F1 11.2 Tf 56 603.9219999999999 Td (de consulta de inventario para recuperar stock de farmacias geolocalizadas; medios de) Tj ET
|
||||
BT /F1 11.2 Tf 56 589.5859999999999 Td (contraste para comparar la referencia de medicamento o necesidad terapéutica con el) Tj ET
|
||||
BT /F1 11.2 Tf 56 575.2499999999999 Td (stock disponible; y medios de generación de acciones para producir una reserva, aviso,) Tj ET
|
||||
BT /F1 11.2 Tf 56 560.9139999999999 Td (pedido o derivación cuando el stock disponible sea insuficiente.) Tj ET
|
||||
BT /F1 11.2 Tf 56 544.5779999999999 Td (Reivindicación 2. Sistema según la reivindicación 1, en el que los medios de consulta) Tj ET
|
||||
BT /F1 11.2 Tf 56 530.2419999999998 Td (de inventario ordenan las farmacias según una combinación de stock disponible,) Tj ET
|
||||
BT /F1 11.2 Tf 56 515.9059999999998 Td (proximidad geográfica y horario de apertura.) Tj ET
|
||||
BT /F1 11.2 Tf 56 499.5699999999998 Td (Reivindicación 3. Sistema según cualquiera de las reivindicaciones anteriores, en el) Tj ET
|
||||
BT /F1 11.2 Tf 56 485.2339999999998 Td (que los datos de la tarjeta sanitaria individual son tratados mediante un módulo de) Tj ET
|
||||
BT /F1 11.2 Tf 56 470.8979999999998 Td (minimización y cifrado para limitar su almacenamiento a los campos técnicamente) Tj ET
|
||||
BT /F1 11.2 Tf 56 456.5619999999998 Td (necesarios.) Tj ET
|
||||
BT /F1 11.2 Tf 56 440.2259999999998 Td (Reivindicación 4. Procedimiento implementado por ordenador para asistir en la) Tj ET
|
||||
BT /F1 11.2 Tf 56 425.88999999999976 Td (localización y suministro de medicamentos, caracterizado porque comprende escanear una) Tj ET
|
||||
BT /F1 11.2 Tf 56 411.55399999999975 Td (tarjeta sanitaria individual; verificar la autorización del usuario; derivar una) Tj ET
|
||||
BT /F1 11.2 Tf 56 397.21799999999973 Td (necesidad terapéutica o referencia de medicamento; consultar stock de farmacias) Tj ET
|
||||
BT /F1 11.2 Tf 56 382.8819999999997 Td (geolocalizadas; comparar la necesidad con el stock disponible; y generar una acción) Tj ET
|
||||
BT /F1 11.2 Tf 56 368.5459999999997 Td (técnica de reserva, aviso, pedido o derivación cuando no exista disponibilidad) Tj ET
|
||||
BT /F1 11.2 Tf 56 354.2099999999997 Td (suficiente.) Tj ET
|
||||
BT /F1 11.2 Tf 56 337.8739999999997 Td (Reivindicación 5. Dispositivo móvil, terminal o sistema de lectura que comprende una) Tj ET
|
||||
BT /F1 11.2 Tf 56 323.53799999999967 Td (cámara o lector óptico y que está configurado para ejecutar el sistema de cualquiera) Tj ET
|
||||
BT /F1 11.2 Tf 56 309.20199999999966 Td (de las reivindicaciones anteriores.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Pagina 5) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
35 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
36 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
37 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
43 0 obj
|
||||
<</Length 4216 >> stream
|
||||
BT /F2 13 Tf 56 781.89 Td (9. Aplicación industrial) Tj ET
|
||||
0.2 w 56 761.25 m 539.28 761.25 l S
|
||||
BT /F1 11.5 Tf 56 751.25 Td (La invención es susceptible de aplicación industrial en plataformas de asistencia) Tj ET
|
||||
BT /F1 11.5 Tf 56 736.53 Td (farmacéutica, sistemas de gestión de inventario, servicios de reserva o pedido de) Tj ET
|
||||
BT /F1 11.5 Tf 56 721.81 Td (medicamentos y terminales de consulta sanitaria.) Tj ET
|
||||
BT /F2 13 Tf 56 703.0899999999999 Td (10. Resumen) Tj ET
|
||||
0.2 w 56 682.4499999999999 m 539.28 682.4499999999999 l S
|
||||
BT /F1 11.5 Tf 56 672.4499999999999 Td (La presente invención se refiere a un sistema y procedimiento implementados por) Tj ET
|
||||
BT /F1 11.5 Tf 56 657.7299999999999 Td (ordenador que permiten, a partir del escaneo de una tarjeta sanitaria individual) Tj ET
|
||||
BT /F1 11.5 Tf 56 643.0099999999999 Td (mediante un terminal móvil o dispositivo equivalente, asociar de forma segura un) Tj ET
|
||||
BT /F1 11.5 Tf 56 628.2899999999998 Td (contexto de paciente a una necesidad terapéutica, obtener una referencia de) Tj ET
|
||||
BT /F1 11.5 Tf 56 613.5699999999998 Td (medicamentos relevantes, comparar dicha necesidad con el stock disponible en) Tj ET
|
||||
BT /F1 11.5 Tf 56 598.8499999999998 Td (farmacias geolocalizadas y generar, en caso de falta de disponibilidad, una acción) Tj ET
|
||||
BT /F1 11.5 Tf 56 584.1299999999998 Td (de reserva, aviso, solicitud de pedido o derivación a una farmacia alternativa. El) Tj ET
|
||||
BT /F1 11.5 Tf 56 569.4099999999997 Td (sistema integra captura de datos, verificación de identidad, geolocalización,) Tj ET
|
||||
BT /F1 11.5 Tf 56 554.6899999999997 Td (consulta de disponibilidad, gestión de stock y generación de eventos de suministro) Tj ET
|
||||
BT /F1 11.5 Tf 56 539.9699999999997 Td (en una única cadena técnica de procesamiento.) Tj ET
|
||||
BT /F2 13 Tf 56 521.2499999999997 Td (11. Anexo de dibujos) Tj ET
|
||||
0.2 w 56 500.6099999999997 m 539.28 500.6099999999997 l S
|
||||
BT /F1 11.5 Tf 56 490.6099999999997 Td (Las figuras indicadas en la presente memoria tienen carácter esquemático y se) Tj ET
|
||||
BT /F1 11.5 Tf 56 475.88999999999965 Td (incorporan a efectos ilustrativos de la arquitectura, del flujo de captura, del) Tj ET
|
||||
BT /F1 11.5 Tf 56 461.1699999999996 Td (contraste de stock y de la generación de acciones. En una presentación definitiva,) Tj ET
|
||||
BT /F1 11.5 Tf 56 446.4499999999996 Td (dichas figuras podrán acompañarse como láminas separadas numeradas de forma) Tj ET
|
||||
BT /F1 11.5 Tf 56 431.72999999999956 Td (consecutiva.) Tj ET
|
||||
BT /F2 13 Tf 56 413.00999999999954 Td (12. Firma del solicitante) Tj ET
|
||||
0.2 w 56 392.36999999999955 m 539.28 392.36999999999955 l S
|
||||
BT /F1 11.5 Tf 56 382.36999999999955 Td (En Terrassa, a 22 de junio de 2026.) Tj ET
|
||||
BT /F1 11.5 Tf 56 365.6499999999995 Td (Fdo.: Antoni Nuñez Romeu) Tj ET
|
||||
BT /F1 11.5 Tf 56 348.9299999999995 Td (DNI/NIF: 45858029P) Tj ET
|
||||
BT /F2 13 Tf 56 330.20999999999947 Td (13. Notas para presentación en OEPM) Tj ET
|
||||
0.2 w 56 309.5699999999995 m 539.28 309.5699999999995 l S
|
||||
BT /F1 11.2 Tf 64 299.5699999999995 Td (" La solicitud debe presentarse como una única invención o un único concepto inventivo) Tj ET
|
||||
BT /F1 11.2 Tf 64 285.23399999999947 Td ( general.) Tj ET
|
||||
BT /F1 11.2 Tf 64 270.89799999999946 Td (" La descripción, reivindicaciones y dibujos deben ser coherentes entre sí.) Tj ET
|
||||
BT /F1 11.2 Tf 64 256.56199999999944 Td (" La protección en patente debe apoyarse en un efecto técnico concreto y no en una mera) Tj ET
|
||||
BT /F1 11.2 Tf 64 242.22599999999943 Td ( regla comercial o método abstracto.) Tj ET
|
||||
BT /F1 11.2 Tf 64 227.88999999999942 Td (" Esta redacción evita formular una reivindicación independiente de "programa de) Tj ET
|
||||
BT /F1 11.2 Tf 64 213.5539999999994 Td ( ordenador como tal" y se centra en un sistema y un procedimiento implementados por) Tj ET
|
||||
BT /F1 11.2 Tf 64 199.2179999999994 Td ( ordenador con interacción técnica sobre captura, contraste de inventario y generación) Tj ET
|
||||
BT /F1 11.2 Tf 64 184.88199999999938 Td ( de acciones.) Tj ET
|
||||
BT /F1 11.2 Tf 64 170.54599999999937 Td (" Antes de presentar la solicitud conviene una búsqueda de anterioridades y una revisión) Tj ET
|
||||
BT /F1 11.2 Tf 64 156.20999999999935 Td ( por agente de propiedad industrial.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Pagina 6) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
46 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
47 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
48 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
50 0 obj
|
||||
<</Length 1123 >> stream
|
||||
BT /F2 18 Tf 231 785.89 Td (Dibujos) Tj ET
|
||||
BT /F3 11.5 Tf 101 763.39 Td (Bloque limpio para la presentación de la) Tj ET
|
||||
BT /F3 11.5 Tf 101 749.015 Td (solicitud) Tj ET
|
||||
BT /F2 13 Tf 56 716.64 Td (Breve descripción de los dibujos) Tj ET
|
||||
0.3 w 56 698.39 m 539.28 698.39 l S
|
||||
BT /F1 11.5 Tf 56 690.39 Td (Figura 1. Diagrama de bloques general del sistema.) Tj ET
|
||||
BT /F1 11.5 Tf 56 674.015 Td (Figura 2. Flujo de captura y validación del escaneo de la TSI.) Tj ET
|
||||
BT /F1 11.5 Tf 56 657.64 Td (Figura 3. Flujo de contraste entre necesidad terapéutica y stock de farmacias.) Tj ET
|
||||
BT /F1 11.5 Tf 56 641.265 Td (Figura 4. Flujo de acción cuando no existe stock disponible.) Tj ET
|
||||
BT /F2 13 Tf 56 612.89 Td (Nota) Tj ET
|
||||
0.3 w 56 594.64 m 539.28 594.64 l S
|
||||
BT /F1 11.5 Tf 56 586.64 Td (El documento fuente contiene referencias esquemáticas a las figuras, pero no) Tj ET
|
||||
BT /F1 11.5 Tf 56 572.265 Td (incluye láminas técnicas dibujadas de forma separada. Si la Oficina requiere) Tj ET
|
||||
BT /F1 11.5 Tf 56 557.89 Td (placas gráficas, habrá que añadirlas antes de la presentación definitiva.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Page 1) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
52 0 obj
|
||||
<< /Type /Catalog /Pages 53 0 R>>
|
||||
endobj
|
||||
53 0 obj
|
||||
<< /Type /Pages /Kids [ 54 0 R 55 0 R 56 0 R 57 0 R 58 0 R 59 0 R ] /Count 6 >>
|
||||
endobj
|
||||
54 0 obj
|
||||
<< /Type /Page /Parent 53 0 R /Contents 5 0 R /Resources <</Font <</F1 1 0 R /F2 2 0 R /F3 3 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
55 0 obj
|
||||
<< /Type /Page /Parent 53 0 R /Contents 13 0 R /Resources <</Font <</F1 8 0 R /F2 9 0 R /F3 10 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
56 0 obj
|
||||
<< /Type /Page /Parent 53 0 R /Contents 22 0 R /Resources <</Font <</F1 16 0 R /F2 17 0 R /F3 18 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
57 0 obj
|
||||
<< /Type /Page /Parent 53 0 R /Contents 32 0 R /Resources <</Font <</F1 25 0 R /F2 26 0 R /F3 27 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
58 0 obj
|
||||
<< /Type /Page /Parent 53 0 R /Contents 43 0 R /Resources <</Font <</F1 35 0 R /F2 36 0 R /F3 37 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
59 0 obj
|
||||
<< /Type /Page /Parent 53 0 R /Contents 50 0 R /Resources <</Font <</F1 46 0 R /F2 47 0 R /F3 48 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
xref
|
||||
0 60
|
||||
0000000004 65535 f
|
||||
0000000015 00000 n
|
||||
0000000117 00000 n
|
||||
0000000218 00000 n
|
||||
0000000006 00000 f
|
||||
0000000321 00000 n
|
||||
0000000007 00000 f
|
||||
0000000011 00000 f
|
||||
0000005329 00000 n
|
||||
0000005431 00000 n
|
||||
0000005532 00000 n
|
||||
0000000012 00000 f
|
||||
0000000014 00000 f
|
||||
0000005636 00000 n
|
||||
0000000015 00000 f
|
||||
0000000019 00000 f
|
||||
0000009131 00000 n
|
||||
0000009234 00000 n
|
||||
0000009336 00000 n
|
||||
0000000020 00000 f
|
||||
0000000021 00000 f
|
||||
0000000023 00000 f
|
||||
0000009440 00000 n
|
||||
0000000024 00000 f
|
||||
0000000028 00000 f
|
||||
0000012770 00000 n
|
||||
0000012873 00000 n
|
||||
0000012975 00000 n
|
||||
0000000029 00000 f
|
||||
0000000030 00000 f
|
||||
0000000031 00000 f
|
||||
0000000033 00000 f
|
||||
0000013079 00000 n
|
||||
0000000034 00000 f
|
||||
0000000038 00000 f
|
||||
0000016827 00000 n
|
||||
0000016930 00000 n
|
||||
0000017032 00000 n
|
||||
0000000039 00000 f
|
||||
0000000040 00000 f
|
||||
0000000041 00000 f
|
||||
0000000042 00000 f
|
||||
0000000044 00000 f
|
||||
0000017136 00000 n
|
||||
0000000045 00000 f
|
||||
0000000049 00000 f
|
||||
0000021411 00000 n
|
||||
0000021514 00000 n
|
||||
0000021616 00000 n
|
||||
0000000051 00000 f
|
||||
0000021720 00000 n
|
||||
0000000000 00000 f
|
||||
0000022902 00000 n
|
||||
0000022952 00000 n
|
||||
0000023048 00000 n
|
||||
0000023247 00000 n
|
||||
0000023448 00000 n
|
||||
0000023651 00000 n
|
||||
0000023854 00000 n
|
||||
0000024057 00000 n
|
||||
trailer
|
||||
<</Size 32 /ID [(ÍÃÔ£È\rù+43BX�) (ÍÃÔ£È\rù+43BX�) ] /Root 52 0 R >>
|
||||
startxref
|
||||
24260
|
||||
%%EOF
|
||||
@@ -1,268 +0,0 @@
|
||||
%PDF-1.4
|
||||
%âãÏÓ
|
||||
1 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
2 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
3 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
5 0 obj
|
||||
<</Length 4950 >> stream
|
||||
BT /F2 13 Tf 56 781.89 Td (1. Campo técnico de la invención) Tj ET
|
||||
0.2 w 56 761.25 m 539.28 761.25 l S
|
||||
BT /F1 11.5 Tf 56 751.25 Td (La invención se encuadra en los sistemas informáticos aplicados al sector sanitario) Tj ET
|
||||
BT /F1 11.5 Tf 56 736.53 Td (y farmacéutico, en particular en soluciones de captura de identificadores) Tj ET
|
||||
BT /F1 11.5 Tf 56 721.81 Td (sanitarios, comparación automatizada de disponibilidad de medicamentos y asistencia) Tj ET
|
||||
BT /F1 11.5 Tf 56 707.0899999999999 Td (digital a la dispensación y suministro.) Tj ET
|
||||
BT /F2 13 Tf 56 688.3699999999999 Td (2. Antecedentes de la invención) Tj ET
|
||||
0.2 w 56 667.7299999999999 m 539.28 667.7299999999999 l S
|
||||
BT /F1 11.5 Tf 56 657.7299999999999 Td (Las soluciones actuales de búsqueda de medicamentos y farmacias permiten localizar) Tj ET
|
||||
BT /F1 11.5 Tf 56 643.0099999999999 Td (productos y mostrar stock aproximado, pero normalmente operan a partir de una) Tj ET
|
||||
BT /F1 11.5 Tf 56 628.2899999999998 Td (búsqueda manual por nombre de medicamento o principio activo. También existen) Tj ET
|
||||
BT /F1 11.5 Tf 56 613.5699999999998 Td (sistemas de geolocalización y de gestión de inventario, pero suelen estar) Tj ET
|
||||
BT /F1 11.5 Tf 56 598.8499999999998 Td (desacoplados del contexto sanitario del usuario y no integran, en una única cadena) Tj ET
|
||||
BT /F1 11.5 Tf 56 584.1299999999998 Td (técnica, la identificación mediante tarjeta sanitaria individual, la inferencia de) Tj ET
|
||||
BT /F1 11.5 Tf 56 569.4099999999997 Td (necesidades terapéuticas y la comparación en tiempo real con disponibilidad) Tj ET
|
||||
BT /F1 11.5 Tf 56 554.6899999999997 Td (farmacéutica local.) Tj ET
|
||||
BT /F1 11.5 Tf 56 537.9699999999997 Td (Además, cuando no existe stock en la farmacia más próxima, el usuario debe iniciar) Tj ET
|
||||
BT /F1 11.5 Tf 56 523.2499999999997 Td (manualmente nuevos procesos de búsqueda o desplazamiento, sin que el sistema) Tj ET
|
||||
BT /F1 11.5 Tf 56 508.52999999999963 Td (proponga de forma automatizada acciones técnicas de reserva, pedido o derivación) Tj ET
|
||||
BT /F1 11.5 Tf 56 493.8099999999996 Td (basadas en la disponibilidad real.) Tj ET
|
||||
BT /F2 13 Tf 56 475.0899999999996 Td (3. Problema técnico a resolver) Tj ET
|
||||
0.2 w 56 454.4499999999996 m 539.28 454.4499999999996 l S
|
||||
BT /F1 11.5 Tf 56 444.4499999999996 Td (La invención resuelve el problema técnico de reducir el tiempo y la fricción entre) Tj ET
|
||||
BT /F1 11.5 Tf 56 429.72999999999956 Td (la identificación de una necesidad terapéutica y la localización de una farmacia que) Tj ET
|
||||
BT /F1 11.5 Tf 56 415.00999999999954 Td (disponga del medicamento adecuado, integrando:) Tj ET
|
||||
BT /F1 11.2 Tf 64 398.2899999999995 Td (" lectura segura de identificadores sanitarios,) Tj ET
|
||||
BT /F1 11.2 Tf 64 383.9539999999995 Td (" obtención de referencias de medicamento asociadas,) Tj ET
|
||||
BT /F1 11.2 Tf 64 369.6179999999995 Td (" comparación automatizada con inventarios de farmacias,) Tj ET
|
||||
BT /F1 11.2 Tf 64 355.28199999999947 Td (" priorización por proximidad y disponibilidad,) Tj ET
|
||||
BT /F1 11.2 Tf 64 340.94599999999946 Td (" generación de acciones técnicas de suministro cuando no exista stock inmediato.) Tj ET
|
||||
BT /F2 13 Tf 56 324.60999999999945 Td (4. Resumen de la invención) Tj ET
|
||||
0.2 w 56 303.96999999999946 m 539.28 303.96999999999946 l S
|
||||
BT /F1 11.5 Tf 56 293.96999999999946 Td (La invención propone un sistema y procedimiento implementados por ordenador que) Tj ET
|
||||
BT /F1 11.5 Tf 56 279.24999999999943 Td (operan sobre un terminal móvil o dispositivo de lectura. El sistema captura la) Tj ET
|
||||
BT /F1 11.5 Tf 56 264.5299999999994 Td (información de una tarjeta sanitaria individual mediante escaneo, valida la) Tj ET
|
||||
BT /F1 11.5 Tf 56 249.8099999999994 Td (información mediante un módulo de verificación, asocia el resultado al perfil del) Tj ET
|
||||
BT /F1 11.5 Tf 56 235.0899999999994 Td (usuario autenticado y obtiene una lista de medicamentos o necesidades terapéuticas) Tj ET
|
||||
BT /F1 11.5 Tf 56 220.3699999999994 Td (relevantes. Posteriormente, un motor de contraste consulta un repositorio de stock) Tj ET
|
||||
BT /F1 11.5 Tf 56 205.6499999999994 Td (de farmacias geolocalizadas y determina la coincidencia entre la necesidad detectada) Tj ET
|
||||
BT /F1 11.5 Tf 56 190.9299999999994 Td (y la disponibilidad real en cada establecimiento. Si existe stock, el sistema) Tj ET
|
||||
BT /F1 11.5 Tf 56 176.2099999999994 Td (prioriza las farmacias adecuadas y presenta una ruta de acceso o reserva. Si no) Tj ET
|
||||
BT /F1 11.5 Tf 56 161.4899999999994 Td (existe stock, el sistema genera automáticamente una acción de aviso, pedido, reserva) Tj ET
|
||||
BT /F1 11.5 Tf 56 146.7699999999994 Td (o derivación, conservando trazabilidad técnica del evento. La invención no se limita) Tj ET
|
||||
BT /F1 11.5 Tf 56 132.04999999999941 Td (a una búsqueda manual, sino que integra captura, validación, georreferenciación,) Tj ET
|
||||
BT /F1 11.5 Tf 56 117.32999999999942 Td (consulta de stock y respuesta automática en una única arquitectura técnica.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Pagina 2) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
8 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
9 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
10 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
13 0 obj
|
||||
<</Length 3436 >> stream
|
||||
BT /F2 13 Tf 56 781.89 Td (5. Breve descripción de los dibujos) Tj ET
|
||||
0.2 w 56 761.25 m 539.28 761.25 l S
|
||||
BT /F1 11.5 Tf 56 751.25 Td (Figura 1. Diagrama de bloques general del sistema.) Tj ET
|
||||
BT /F1 11.5 Tf 56 734.53 Td (Figura 2. Flujo de captura y validación del escaneo de la TSI.) Tj ET
|
||||
BT /F1 11.5 Tf 56 717.81 Td (Figura 3. Flujo de contraste entre necesidad terapéutica y stock de farmacias.) Tj ET
|
||||
BT /F1 11.5 Tf 56 701.0899999999999 Td (Figura 4. Flujo de acción cuando no existe stock disponible.) Tj ET
|
||||
BT /F2 13 Tf 56 682.3699999999999 Td (6. Descripción detallada de la invención) Tj ET
|
||||
0.2 w 56 661.7299999999999 m 539.28 661.7299999999999 l S
|
||||
BT /F2 11.5 Tf 56 651.7299999999999 Td (6.1 Arquitectura general) Tj ET
|
||||
BT /F1 11.5 Tf 56 637.0099999999999 Td (El sistema comprende al menos los siguientes módulos:) Tj ET
|
||||
BT /F1 11.2 Tf 64 620.2899999999998 Td (1. un módulo de captura de imagen o lectura óptica para escanear la tarjeta sanitaria) Tj ET
|
||||
BT /F1 11.2 Tf 64 605.9539999999998 Td ( individual;) Tj ET
|
||||
BT /F1 11.2 Tf 64 591.6179999999998 Td (2. un módulo de extracción de datos para identificar los campos relevantes de la tarjeta;) Tj ET
|
||||
BT /F1 11.2 Tf 64 577.2819999999998 Td (3. un módulo de verificación de identidad y autorización, vinculado al usuario) Tj ET
|
||||
BT /F1 11.2 Tf 64 562.9459999999998 Td ( autenticado;) Tj ET
|
||||
BT /F1 11.2 Tf 64 548.6099999999998 Td (4. un módulo de obtención de necesidades terapéuticas o medicamentos asociados;) Tj ET
|
||||
BT /F1 11.2 Tf 64 534.2739999999998 Td (5. un módulo de geolocalización para obtener la posición del usuario o una posición de) Tj ET
|
||||
BT /F1 11.2 Tf 64 519.9379999999998 Td ( referencia;) Tj ET
|
||||
BT /F1 11.2 Tf 64 505.60199999999975 Td (6. un módulo de consulta de inventario para recuperar stock, precio y horario de) Tj ET
|
||||
BT /F1 11.2 Tf 64 491.26599999999974 Td ( farmacias;) Tj ET
|
||||
BT /F1 11.2 Tf 64 476.9299999999997 Td (7. un módulo de contraste y priorización para ordenar farmacias según disponibilidad y) Tj ET
|
||||
BT /F1 11.2 Tf 64 462.5939999999997 Td ( cercanía;) Tj ET
|
||||
BT /F1 11.2 Tf 64 448.2579999999997 Td (8. un módulo de generación de acciones para crear reserva, aviso, pedido o derivación;) Tj ET
|
||||
BT /F1 11.2 Tf 64 433.9219999999997 Td (9. un módulo de trazabilidad y auditoría.) Tj ET
|
||||
BT /F2 11.5 Tf 56 419.5859999999997 Td (6.2 Funcionamiento) Tj ET
|
||||
BT /F1 11.5 Tf 56 404.86599999999964 Td (En una realización preferida, el usuario abre la aplicación y solicita el escaneo de) Tj ET
|
||||
BT /F1 11.5 Tf 56 390.1459999999996 Td (su tarjeta sanitaria individual. El terminal captura la imagen o el código de la) Tj ET
|
||||
BT /F1 11.5 Tf 56 375.4259999999996 Td (tarjeta y el módulo de extracción identifica los datos técnicos necesarios para) Tj ET
|
||||
BT /F1 11.5 Tf 56 360.70599999999956 Td (enlazar el contexto sanitario del usuario con un conjunto de medicamentos o) Tj ET
|
||||
BT /F1 11.5 Tf 56 345.98599999999954 Td (referencias de tratamiento.) Tj ET
|
||||
BT /F1 11.5 Tf 56 329.2659999999995 Td (El sistema valida que la operación se ejecuta sobre un usuario autenticado y) Tj ET
|
||||
BT /F1 11.5 Tf 56 314.5459999999995 Td (autorizado. A continuación, el motor de contraste consulta el inventario de) Tj ET
|
||||
BT /F1 11.5 Tf 56 299.82599999999945 Td (farmacias cercanas, recuperando para cada farmacia al menos su ubicación, horario,) Tj ET
|
||||
BT /F1 11.5 Tf 56 285.1059999999994 Td (stock y, opcionalmente, precio.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Pagina 3) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
16 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
17 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
18 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
22 0 obj
|
||||
<</Length 3271 >> stream
|
||||
BT /F2 11.5 Tf 56 783.89 Td (6.2 Funcionamiento \(continuación\)) Tj ET
|
||||
BT /F1 11.5 Tf 56 769.17 Td (El módulo de priorización calcula una orden de resultados en base a criterios) Tj ET
|
||||
BT /F1 11.5 Tf 56 754.4499999999999 Td (técnicos tales como existencia de stock, nivel de stock, distancia geográfica,) Tj ET
|
||||
BT /F1 11.5 Tf 56 739.7299999999999 Td (horario de apertura y capacidad de reserva o solicitud de pedido.) Tj ET
|
||||
BT /F1 11.5 Tf 56 723.0099999999999 Td (Cuando existe disponibilidad, el sistema muestra una lista priorizada de farmacias y) Tj ET
|
||||
BT /F1 11.5 Tf 56 708.2899999999998 Td (puede iniciar una reserva o una indicación de recogida. Cuando no existe) Tj ET
|
||||
BT /F1 11.5 Tf 56 693.5699999999998 Td (disponibilidad, el sistema no se limita a informar de la falta de stock, sino que) Tj ET
|
||||
BT /F1 11.5 Tf 56 678.8499999999998 Td (genera una acción técnica adicional, por ejemplo alerta a la farmacia seleccionada,) Tj ET
|
||||
BT /F1 11.5 Tf 56 664.1299999999998 Td (solicitud de pedido a distribución o proveedor, derivación automática a otra) Tj ET
|
||||
BT /F1 11.5 Tf 56 649.4099999999997 Td (farmacia con stock o registro de una lista de espera o interés de suministro.) Tj ET
|
||||
BT /F2 11.5 Tf 56 632.6899999999997 Td (6.3 Tratamiento de datos y seguridad) Tj ET
|
||||
BT /F1 11.5 Tf 56 617.9699999999997 Td (La invención prevé que la información derivada del escaneo de la TSI se trate con) Tj ET
|
||||
BT /F1 11.5 Tf 56 603.2499999999997 Td (medidas de minimización de datos, control de acceso, cifrado en tránsito y registro) Tj ET
|
||||
BT /F1 11.5 Tf 56 588.5299999999996 Td (de eventos. El sistema no expone innecesariamente los datos de la tarjeta sanitaria) Tj ET
|
||||
BT /F1 11.5 Tf 56 573.8099999999996 Td (y solo conserva los elementos imprescindibles para la operación descrita.) Tj ET
|
||||
BT /F2 11.5 Tf 56 557.0899999999996 Td (6.4 Integración con la plataforma FarmaFinder) Tj ET
|
||||
BT /F1 11.5 Tf 56 542.3699999999995 Td (En una implementación concreta, el sistema puede integrarse con una plataforma que) Tj ET
|
||||
BT /F1 11.5 Tf 56 527.6499999999995 Td (ya disponga de catálogo de farmacias, geolocalización, stock por medicamento,) Tj ET
|
||||
BT /F1 11.5 Tf 56 512.9299999999995 Td (autenticación de usuario, notificaciones push e histórico de acciones y) Tj ET
|
||||
BT /F1 11.5 Tf 56 498.20999999999947 Td (preferencias.) Tj ET
|
||||
BT /F1 11.5 Tf 56 481.48999999999944 Td (La integración permite que el resultado del escaneo de la TSI no se limite a una) Tj ET
|
||||
BT /F1 11.5 Tf 56 466.7699999999994 Td (consulta pasiva, sino que se convierta en un disparador de decisiones técnicas sobre) Tj ET
|
||||
BT /F1 11.5 Tf 56 452.0499999999994 Td (disponibilidad y suministro.) Tj ET
|
||||
BT /F2 13 Tf 56 433.32999999999936 Td (7. Ejemplo de realización) Tj ET
|
||||
0.2 w 56 412.6899999999994 m 539.28 412.6899999999994 l S
|
||||
BT /F1 11.2 Tf 64 402.6899999999994 Td (1. El usuario inicia sesión en la aplicación.) Tj ET
|
||||
BT /F1 11.2 Tf 64 388.35399999999936 Td (2. El usuario escanea su TSI con la cámara del terminal.) Tj ET
|
||||
BT /F1 11.2 Tf 64 374.01799999999935 Td (3. El sistema extrae el identificador necesario y lo vincula al perfil autorizado.) Tj ET
|
||||
BT /F1 11.2 Tf 64 359.68199999999933 Td (4. El motor terapéutico asocia una necesidad de medicamento o tratamiento.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Pagina 4) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
25 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
26 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
27 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
32 0 obj
|
||||
<</Length 3689 >> stream
|
||||
BT /F2 13 Tf 56 781.89 Td (7. Ejemplo de realización \(continuación\)) Tj ET
|
||||
0.2 w 56 761.25 m 539.28 761.25 l S
|
||||
BT /F1 11.2 Tf 64 751.25 Td (1. El sistema consulta farmacias cercanas con stock del medicamento.) Tj ET
|
||||
BT /F1 11.2 Tf 64 736.914 Td (2. Si hay stock, ordena las farmacias por proximidad y disponibilidad.) Tj ET
|
||||
BT /F1 11.2 Tf 64 722.578 Td (3. Si no hay stock, genera una reserva, una alerta o una solicitud de pedido.) Tj ET
|
||||
BT /F2 13 Tf 56 706.242 Td (8. Reivindicaciones) Tj ET
|
||||
0.2 w 56 685.602 m 539.28 685.602 l S
|
||||
BT /F1 11.2 Tf 56 675.602 Td (Reivindicación 1. Sistema implementado por ordenador para identificar una necesidad) Tj ET
|
||||
BT /F1 11.2 Tf 56 661.266 Td (terapéutica a partir del escaneo de una tarjeta sanitaria individual, caracterizado) Tj ET
|
||||
BT /F1 11.2 Tf 56 646.93 Td (porque comprende medios de captura para obtener datos de la tarjeta sanitaria) Tj ET
|
||||
BT /F1 11.2 Tf 56 632.5939999999999 Td (individual; medios de verificación para asociar dichos datos a un usuario autenticado;) Tj ET
|
||||
BT /F1 11.2 Tf 56 618.2579999999999 Td (medios de obtención de una referencia de medicamento o necesidad terapéutica; medios) Tj ET
|
||||
BT /F1 11.2 Tf 56 603.9219999999999 Td (de consulta de inventario para recuperar stock de farmacias geolocalizadas; medios de) Tj ET
|
||||
BT /F1 11.2 Tf 56 589.5859999999999 Td (contraste para comparar la referencia de medicamento o necesidad terapéutica con el) Tj ET
|
||||
BT /F1 11.2 Tf 56 575.2499999999999 Td (stock disponible; y medios de generación de acciones para producir una reserva, aviso,) Tj ET
|
||||
BT /F1 11.2 Tf 56 560.9139999999999 Td (pedido o derivación cuando el stock disponible sea insuficiente.) Tj ET
|
||||
BT /F1 11.2 Tf 56 544.5779999999999 Td (Reivindicación 2. Sistema según la reivindicación 1, en el que los medios de consulta) Tj ET
|
||||
BT /F1 11.2 Tf 56 530.2419999999998 Td (de inventario ordenan las farmacias según una combinación de stock disponible,) Tj ET
|
||||
BT /F1 11.2 Tf 56 515.9059999999998 Td (proximidad geográfica y horario de apertura.) Tj ET
|
||||
BT /F1 11.2 Tf 56 499.5699999999998 Td (Reivindicación 3. Sistema según cualquiera de las reivindicaciones anteriores, en el) Tj ET
|
||||
BT /F1 11.2 Tf 56 485.2339999999998 Td (que los datos de la tarjeta sanitaria individual son tratados mediante un módulo de) Tj ET
|
||||
BT /F1 11.2 Tf 56 470.8979999999998 Td (minimización y cifrado para limitar su almacenamiento a los campos técnicamente) Tj ET
|
||||
BT /F1 11.2 Tf 56 456.5619999999998 Td (necesarios.) Tj ET
|
||||
BT /F1 11.2 Tf 56 440.2259999999998 Td (Reivindicación 4. Procedimiento implementado por ordenador para asistir en la) Tj ET
|
||||
BT /F1 11.2 Tf 56 425.88999999999976 Td (localización y suministro de medicamentos, caracterizado porque comprende escanear una) Tj ET
|
||||
BT /F1 11.2 Tf 56 411.55399999999975 Td (tarjeta sanitaria individual; verificar la autorización del usuario; derivar una) Tj ET
|
||||
BT /F1 11.2 Tf 56 397.21799999999973 Td (necesidad terapéutica o referencia de medicamento; consultar stock de farmacias) Tj ET
|
||||
BT /F1 11.2 Tf 56 382.8819999999997 Td (geolocalizadas; comparar la necesidad con el stock disponible; y generar una acción) Tj ET
|
||||
BT /F1 11.2 Tf 56 368.5459999999997 Td (técnica de reserva, aviso, pedido o derivación cuando no exista disponibilidad) Tj ET
|
||||
BT /F1 11.2 Tf 56 354.2099999999997 Td (suficiente.) Tj ET
|
||||
BT /F1 11.2 Tf 56 337.8739999999997 Td (Reivindicación 5. Dispositivo móvil, terminal o sistema de lectura que comprende una) Tj ET
|
||||
BT /F1 11.2 Tf 56 323.53799999999967 Td (cámara o lector óptico y que está configurado para ejecutar el sistema de cualquiera) Tj ET
|
||||
BT /F1 11.2 Tf 56 309.20199999999966 Td (de las reivindicaciones anteriores.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Pagina 5) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
34 0 obj
|
||||
<< /Type /Catalog /Pages 35 0 R>>
|
||||
endobj
|
||||
35 0 obj
|
||||
<< /Type /Pages /Kids [ 36 0 R 37 0 R 38 0 R 39 0 R ] /Count 4 >>
|
||||
endobj
|
||||
36 0 obj
|
||||
<< /Type /Page /Parent 35 0 R /Contents 5 0 R /Resources <</Font <</F1 1 0 R /F2 2 0 R /F3 3 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
37 0 obj
|
||||
<< /Type /Page /Parent 35 0 R /Contents 13 0 R /Resources <</Font <</F1 8 0 R /F2 9 0 R /F3 10 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
38 0 obj
|
||||
<< /Type /Page /Parent 35 0 R /Contents 22 0 R /Resources <</Font <</F1 16 0 R /F2 17 0 R /F3 18 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
39 0 obj
|
||||
<< /Type /Page /Parent 35 0 R /Contents 32 0 R /Resources <</Font <</F1 25 0 R /F2 26 0 R /F3 27 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
xref
|
||||
0 40
|
||||
0000000004 65535 f
|
||||
0000000015 00000 n
|
||||
0000000117 00000 n
|
||||
0000000218 00000 n
|
||||
0000000006 00000 f
|
||||
0000000321 00000 n
|
||||
0000000007 00000 f
|
||||
0000000011 00000 f
|
||||
0000005329 00000 n
|
||||
0000005431 00000 n
|
||||
0000005532 00000 n
|
||||
0000000012 00000 f
|
||||
0000000014 00000 f
|
||||
0000005636 00000 n
|
||||
0000000015 00000 f
|
||||
0000000019 00000 f
|
||||
0000009131 00000 n
|
||||
0000009234 00000 n
|
||||
0000009336 00000 n
|
||||
0000000020 00000 f
|
||||
0000000021 00000 f
|
||||
0000000023 00000 f
|
||||
0000009440 00000 n
|
||||
0000000024 00000 f
|
||||
0000000028 00000 f
|
||||
0000012770 00000 n
|
||||
0000012873 00000 n
|
||||
0000012975 00000 n
|
||||
0000000029 00000 f
|
||||
0000000030 00000 f
|
||||
0000000031 00000 f
|
||||
0000000033 00000 f
|
||||
0000013079 00000 n
|
||||
0000000000 00000 f
|
||||
0000016827 00000 n
|
||||
0000016877 00000 n
|
||||
0000016959 00000 n
|
||||
0000017158 00000 n
|
||||
0000017359 00000 n
|
||||
0000017562 00000 n
|
||||
trailer
|
||||
<</Size 22 /ID [(J®¡já¦�é÷¿\ng/) (J®¡já¦�é÷¿\ng/) ] /Root 34 0 R >>
|
||||
startxref
|
||||
17765
|
||||
%%EOF
|
||||
@@ -1,206 +0,0 @@
|
||||
%PDF-1.4
|
||||
%âãÏÓ
|
||||
1 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
2 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
3 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
5 0 obj
|
||||
<</Length 4950 >> stream
|
||||
BT /F2 13 Tf 56 781.89 Td (1. Campo técnico de la invención) Tj ET
|
||||
0.2 w 56 761.25 m 539.28 761.25 l S
|
||||
BT /F1 11.5 Tf 56 751.25 Td (La invención se encuadra en los sistemas informáticos aplicados al sector sanitario) Tj ET
|
||||
BT /F1 11.5 Tf 56 736.53 Td (y farmacéutico, en particular en soluciones de captura de identificadores) Tj ET
|
||||
BT /F1 11.5 Tf 56 721.81 Td (sanitarios, comparación automatizada de disponibilidad de medicamentos y asistencia) Tj ET
|
||||
BT /F1 11.5 Tf 56 707.0899999999999 Td (digital a la dispensación y suministro.) Tj ET
|
||||
BT /F2 13 Tf 56 688.3699999999999 Td (2. Antecedentes de la invención) Tj ET
|
||||
0.2 w 56 667.7299999999999 m 539.28 667.7299999999999 l S
|
||||
BT /F1 11.5 Tf 56 657.7299999999999 Td (Las soluciones actuales de búsqueda de medicamentos y farmacias permiten localizar) Tj ET
|
||||
BT /F1 11.5 Tf 56 643.0099999999999 Td (productos y mostrar stock aproximado, pero normalmente operan a partir de una) Tj ET
|
||||
BT /F1 11.5 Tf 56 628.2899999999998 Td (búsqueda manual por nombre de medicamento o principio activo. También existen) Tj ET
|
||||
BT /F1 11.5 Tf 56 613.5699999999998 Td (sistemas de geolocalización y de gestión de inventario, pero suelen estar) Tj ET
|
||||
BT /F1 11.5 Tf 56 598.8499999999998 Td (desacoplados del contexto sanitario del usuario y no integran, en una única cadena) Tj ET
|
||||
BT /F1 11.5 Tf 56 584.1299999999998 Td (técnica, la identificación mediante tarjeta sanitaria individual, la inferencia de) Tj ET
|
||||
BT /F1 11.5 Tf 56 569.4099999999997 Td (necesidades terapéuticas y la comparación en tiempo real con disponibilidad) Tj ET
|
||||
BT /F1 11.5 Tf 56 554.6899999999997 Td (farmacéutica local.) Tj ET
|
||||
BT /F1 11.5 Tf 56 537.9699999999997 Td (Además, cuando no existe stock en la farmacia más próxima, el usuario debe iniciar) Tj ET
|
||||
BT /F1 11.5 Tf 56 523.2499999999997 Td (manualmente nuevos procesos de búsqueda o desplazamiento, sin que el sistema) Tj ET
|
||||
BT /F1 11.5 Tf 56 508.52999999999963 Td (proponga de forma automatizada acciones técnicas de reserva, pedido o derivación) Tj ET
|
||||
BT /F1 11.5 Tf 56 493.8099999999996 Td (basadas en la disponibilidad real.) Tj ET
|
||||
BT /F2 13 Tf 56 475.0899999999996 Td (3. Problema técnico a resolver) Tj ET
|
||||
0.2 w 56 454.4499999999996 m 539.28 454.4499999999996 l S
|
||||
BT /F1 11.5 Tf 56 444.4499999999996 Td (La invención resuelve el problema técnico de reducir el tiempo y la fricción entre) Tj ET
|
||||
BT /F1 11.5 Tf 56 429.72999999999956 Td (la identificación de una necesidad terapéutica y la localización de una farmacia que) Tj ET
|
||||
BT /F1 11.5 Tf 56 415.00999999999954 Td (disponga del medicamento adecuado, integrando:) Tj ET
|
||||
BT /F1 11.2 Tf 64 398.2899999999995 Td (" lectura segura de identificadores sanitarios,) Tj ET
|
||||
BT /F1 11.2 Tf 64 383.9539999999995 Td (" obtención de referencias de medicamento asociadas,) Tj ET
|
||||
BT /F1 11.2 Tf 64 369.6179999999995 Td (" comparación automatizada con inventarios de farmacias,) Tj ET
|
||||
BT /F1 11.2 Tf 64 355.28199999999947 Td (" priorización por proximidad y disponibilidad,) Tj ET
|
||||
BT /F1 11.2 Tf 64 340.94599999999946 Td (" generación de acciones técnicas de suministro cuando no exista stock inmediato.) Tj ET
|
||||
BT /F2 13 Tf 56 324.60999999999945 Td (4. Resumen de la invención) Tj ET
|
||||
0.2 w 56 303.96999999999946 m 539.28 303.96999999999946 l S
|
||||
BT /F1 11.5 Tf 56 293.96999999999946 Td (La invención propone un sistema y procedimiento implementados por ordenador que) Tj ET
|
||||
BT /F1 11.5 Tf 56 279.24999999999943 Td (operan sobre un terminal móvil o dispositivo de lectura. El sistema captura la) Tj ET
|
||||
BT /F1 11.5 Tf 56 264.5299999999994 Td (información de una tarjeta sanitaria individual mediante escaneo, valida la) Tj ET
|
||||
BT /F1 11.5 Tf 56 249.8099999999994 Td (información mediante un módulo de verificación, asocia el resultado al perfil del) Tj ET
|
||||
BT /F1 11.5 Tf 56 235.0899999999994 Td (usuario autenticado y obtiene una lista de medicamentos o necesidades terapéuticas) Tj ET
|
||||
BT /F1 11.5 Tf 56 220.3699999999994 Td (relevantes. Posteriormente, un motor de contraste consulta un repositorio de stock) Tj ET
|
||||
BT /F1 11.5 Tf 56 205.6499999999994 Td (de farmacias geolocalizadas y determina la coincidencia entre la necesidad detectada) Tj ET
|
||||
BT /F1 11.5 Tf 56 190.9299999999994 Td (y la disponibilidad real en cada establecimiento. Si existe stock, el sistema) Tj ET
|
||||
BT /F1 11.5 Tf 56 176.2099999999994 Td (prioriza las farmacias adecuadas y presenta una ruta de acceso o reserva. Si no) Tj ET
|
||||
BT /F1 11.5 Tf 56 161.4899999999994 Td (existe stock, el sistema genera automáticamente una acción de aviso, pedido, reserva) Tj ET
|
||||
BT /F1 11.5 Tf 56 146.7699999999994 Td (o derivación, conservando trazabilidad técnica del evento. La invención no se limita) Tj ET
|
||||
BT /F1 11.5 Tf 56 132.04999999999941 Td (a una búsqueda manual, sino que integra captura, validación, georreferenciación,) Tj ET
|
||||
BT /F1 11.5 Tf 56 117.32999999999942 Td (consulta de stock y respuesta automática en una única arquitectura técnica.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Pagina 2) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
8 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
9 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
10 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
13 0 obj
|
||||
<</Length 3436 >> stream
|
||||
BT /F2 13 Tf 56 781.89 Td (5. Breve descripción de los dibujos) Tj ET
|
||||
0.2 w 56 761.25 m 539.28 761.25 l S
|
||||
BT /F1 11.5 Tf 56 751.25 Td (Figura 1. Diagrama de bloques general del sistema.) Tj ET
|
||||
BT /F1 11.5 Tf 56 734.53 Td (Figura 2. Flujo de captura y validación del escaneo de la TSI.) Tj ET
|
||||
BT /F1 11.5 Tf 56 717.81 Td (Figura 3. Flujo de contraste entre necesidad terapéutica y stock de farmacias.) Tj ET
|
||||
BT /F1 11.5 Tf 56 701.0899999999999 Td (Figura 4. Flujo de acción cuando no existe stock disponible.) Tj ET
|
||||
BT /F2 13 Tf 56 682.3699999999999 Td (6. Descripción detallada de la invención) Tj ET
|
||||
0.2 w 56 661.7299999999999 m 539.28 661.7299999999999 l S
|
||||
BT /F2 11.5 Tf 56 651.7299999999999 Td (6.1 Arquitectura general) Tj ET
|
||||
BT /F1 11.5 Tf 56 637.0099999999999 Td (El sistema comprende al menos los siguientes módulos:) Tj ET
|
||||
BT /F1 11.2 Tf 64 620.2899999999998 Td (1. un módulo de captura de imagen o lectura óptica para escanear la tarjeta sanitaria) Tj ET
|
||||
BT /F1 11.2 Tf 64 605.9539999999998 Td ( individual;) Tj ET
|
||||
BT /F1 11.2 Tf 64 591.6179999999998 Td (2. un módulo de extracción de datos para identificar los campos relevantes de la tarjeta;) Tj ET
|
||||
BT /F1 11.2 Tf 64 577.2819999999998 Td (3. un módulo de verificación de identidad y autorización, vinculado al usuario) Tj ET
|
||||
BT /F1 11.2 Tf 64 562.9459999999998 Td ( autenticado;) Tj ET
|
||||
BT /F1 11.2 Tf 64 548.6099999999998 Td (4. un módulo de obtención de necesidades terapéuticas o medicamentos asociados;) Tj ET
|
||||
BT /F1 11.2 Tf 64 534.2739999999998 Td (5. un módulo de geolocalización para obtener la posición del usuario o una posición de) Tj ET
|
||||
BT /F1 11.2 Tf 64 519.9379999999998 Td ( referencia;) Tj ET
|
||||
BT /F1 11.2 Tf 64 505.60199999999975 Td (6. un módulo de consulta de inventario para recuperar stock, precio y horario de) Tj ET
|
||||
BT /F1 11.2 Tf 64 491.26599999999974 Td ( farmacias;) Tj ET
|
||||
BT /F1 11.2 Tf 64 476.9299999999997 Td (7. un módulo de contraste y priorización para ordenar farmacias según disponibilidad y) Tj ET
|
||||
BT /F1 11.2 Tf 64 462.5939999999997 Td ( cercanía;) Tj ET
|
||||
BT /F1 11.2 Tf 64 448.2579999999997 Td (8. un módulo de generación de acciones para crear reserva, aviso, pedido o derivación;) Tj ET
|
||||
BT /F1 11.2 Tf 64 433.9219999999997 Td (9. un módulo de trazabilidad y auditoría.) Tj ET
|
||||
BT /F2 11.5 Tf 56 419.5859999999997 Td (6.2 Funcionamiento) Tj ET
|
||||
BT /F1 11.5 Tf 56 404.86599999999964 Td (En una realización preferida, el usuario abre la aplicación y solicita el escaneo de) Tj ET
|
||||
BT /F1 11.5 Tf 56 390.1459999999996 Td (su tarjeta sanitaria individual. El terminal captura la imagen o el código de la) Tj ET
|
||||
BT /F1 11.5 Tf 56 375.4259999999996 Td (tarjeta y el módulo de extracción identifica los datos técnicos necesarios para) Tj ET
|
||||
BT /F1 11.5 Tf 56 360.70599999999956 Td (enlazar el contexto sanitario del usuario con un conjunto de medicamentos o) Tj ET
|
||||
BT /F1 11.5 Tf 56 345.98599999999954 Td (referencias de tratamiento.) Tj ET
|
||||
BT /F1 11.5 Tf 56 329.2659999999995 Td (El sistema valida que la operación se ejecuta sobre un usuario autenticado y) Tj ET
|
||||
BT /F1 11.5 Tf 56 314.5459999999995 Td (autorizado. A continuación, el motor de contraste consulta el inventario de) Tj ET
|
||||
BT /F1 11.5 Tf 56 299.82599999999945 Td (farmacias cercanas, recuperando para cada farmacia al menos su ubicación, horario,) Tj ET
|
||||
BT /F1 11.5 Tf 56 285.1059999999994 Td (stock y, opcionalmente, precio.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Pagina 3) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
16 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
17 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
18 0 obj
|
||||
<</Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >>
|
||||
endobj
|
||||
22 0 obj
|
||||
<</Length 3271 >> stream
|
||||
BT /F2 11.5 Tf 56 783.89 Td (6.2 Funcionamiento \(continuación\)) Tj ET
|
||||
BT /F1 11.5 Tf 56 769.17 Td (El módulo de priorización calcula una orden de resultados en base a criterios) Tj ET
|
||||
BT /F1 11.5 Tf 56 754.4499999999999 Td (técnicos tales como existencia de stock, nivel de stock, distancia geográfica,) Tj ET
|
||||
BT /F1 11.5 Tf 56 739.7299999999999 Td (horario de apertura y capacidad de reserva o solicitud de pedido.) Tj ET
|
||||
BT /F1 11.5 Tf 56 723.0099999999999 Td (Cuando existe disponibilidad, el sistema muestra una lista priorizada de farmacias y) Tj ET
|
||||
BT /F1 11.5 Tf 56 708.2899999999998 Td (puede iniciar una reserva o una indicación de recogida. Cuando no existe) Tj ET
|
||||
BT /F1 11.5 Tf 56 693.5699999999998 Td (disponibilidad, el sistema no se limita a informar de la falta de stock, sino que) Tj ET
|
||||
BT /F1 11.5 Tf 56 678.8499999999998 Td (genera una acción técnica adicional, por ejemplo alerta a la farmacia seleccionada,) Tj ET
|
||||
BT /F1 11.5 Tf 56 664.1299999999998 Td (solicitud de pedido a distribución o proveedor, derivación automática a otra) Tj ET
|
||||
BT /F1 11.5 Tf 56 649.4099999999997 Td (farmacia con stock o registro de una lista de espera o interés de suministro.) Tj ET
|
||||
BT /F2 11.5 Tf 56 632.6899999999997 Td (6.3 Tratamiento de datos y seguridad) Tj ET
|
||||
BT /F1 11.5 Tf 56 617.9699999999997 Td (La invención prevé que la información derivada del escaneo de la TSI se trate con) Tj ET
|
||||
BT /F1 11.5 Tf 56 603.2499999999997 Td (medidas de minimización de datos, control de acceso, cifrado en tránsito y registro) Tj ET
|
||||
BT /F1 11.5 Tf 56 588.5299999999996 Td (de eventos. El sistema no expone innecesariamente los datos de la tarjeta sanitaria) Tj ET
|
||||
BT /F1 11.5 Tf 56 573.8099999999996 Td (y solo conserva los elementos imprescindibles para la operación descrita.) Tj ET
|
||||
BT /F2 11.5 Tf 56 557.0899999999996 Td (6.4 Integración con la plataforma FarmaFinder) Tj ET
|
||||
BT /F1 11.5 Tf 56 542.3699999999995 Td (En una implementación concreta, el sistema puede integrarse con una plataforma que) Tj ET
|
||||
BT /F1 11.5 Tf 56 527.6499999999995 Td (ya disponga de catálogo de farmacias, geolocalización, stock por medicamento,) Tj ET
|
||||
BT /F1 11.5 Tf 56 512.9299999999995 Td (autenticación de usuario, notificaciones push e histórico de acciones y) Tj ET
|
||||
BT /F1 11.5 Tf 56 498.20999999999947 Td (preferencias.) Tj ET
|
||||
BT /F1 11.5 Tf 56 481.48999999999944 Td (La integración permite que el resultado del escaneo de la TSI no se limite a una) Tj ET
|
||||
BT /F1 11.5 Tf 56 466.7699999999994 Td (consulta pasiva, sino que se convierta en un disparador de decisiones técnicas sobre) Tj ET
|
||||
BT /F1 11.5 Tf 56 452.0499999999994 Td (disponibilidad y suministro.) Tj ET
|
||||
BT /F2 13 Tf 56 433.32999999999936 Td (7. Ejemplo de realización) Tj ET
|
||||
0.2 w 56 412.6899999999994 m 539.28 412.6899999999994 l S
|
||||
BT /F1 11.2 Tf 64 402.6899999999994 Td (1. El usuario inicia sesión en la aplicación.) Tj ET
|
||||
BT /F1 11.2 Tf 64 388.35399999999936 Td (2. El usuario escanea su TSI con la cámara del terminal.) Tj ET
|
||||
BT /F1 11.2 Tf 64 374.01799999999935 Td (3. El sistema extrae el identificador necesario y lo vincula al perfil autorizado.) Tj ET
|
||||
BT /F1 11.2 Tf 64 359.68199999999933 Td (4. El motor terapéutico asocia una necesidad de medicamento o tratamiento.) Tj ET
|
||||
BT /F1 9 Tf 495.28 24 Td (Pagina 4) Tj ET
|
||||
endstream
|
||||
|
||||
endobj
|
||||
24 0 obj
|
||||
<< /Type /Catalog /Pages 25 0 R>>
|
||||
endobj
|
||||
25 0 obj
|
||||
<< /Type /Pages /Kids [ 26 0 R 27 0 R 28 0 R ] /Count 3 >>
|
||||
endobj
|
||||
26 0 obj
|
||||
<< /Type /Page /Parent 25 0 R /Contents 5 0 R /Resources <</Font <</F1 1 0 R /F2 2 0 R /F3 3 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
27 0 obj
|
||||
<< /Type /Page /Parent 25 0 R /Contents 13 0 R /Resources <</Font <</F1 8 0 R /F2 9 0 R /F3 10 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
28 0 obj
|
||||
<< /Type /Page /Parent 25 0 R /Contents 22 0 R /Resources <</Font <</F1 16 0 R /F2 17 0 R /F3 18 0 R >> >> /MediaBox [0 0 595.28 841.89 ] /TrimBox [0 0 595.28 841.89 ] /Rotate 0 >>
|
||||
endobj
|
||||
xref
|
||||
0 29
|
||||
0000000004 65535 f
|
||||
0000000015 00000 n
|
||||
0000000117 00000 n
|
||||
0000000218 00000 n
|
||||
0000000006 00000 f
|
||||
0000000321 00000 n
|
||||
0000000007 00000 f
|
||||
0000000011 00000 f
|
||||
0000005329 00000 n
|
||||
0000005431 00000 n
|
||||
0000005532 00000 n
|
||||
0000000012 00000 f
|
||||
0000000014 00000 f
|
||||
0000005636 00000 n
|
||||
0000000015 00000 f
|
||||
0000000019 00000 f
|
||||
0000009131 00000 n
|
||||
0000009234 00000 n
|
||||
0000009336 00000 n
|
||||
0000000020 00000 f
|
||||
0000000021 00000 f
|
||||
0000000023 00000 f
|
||||
0000009440 00000 n
|
||||
0000000000 00000 f
|
||||
0000012770 00000 n
|
||||
0000012820 00000 n
|
||||
0000012895 00000 n
|
||||
0000013094 00000 n
|
||||
0000013295 00000 n
|
||||
trailer
|
||||
<</Size 17 /ID [(=ÁI‚³ | ||||