notebook vb

This commit is contained in:
2026-04-05 07:58:12 +02:00
parent 8ba7bae707
commit 8955d33260
2 changed files with 108 additions and 0 deletions
+99
View File
@@ -215,3 +215,102 @@ UNION SELECT
UNION SELECT
first 1 cast('Pojistovna' as varchar(11)) as ID, cast(NULL as VARCHAR(254)) as VAR1, cast(NULL as VARCHAR(70)) as VAR2, cast(NULL as DATE) as DATE1, cast(NULL as DATE) as DATE2, cast(NULL as TIMESTAMP) as TIME1, cast(P.IDICP as INTEGER) as INT1, NULL as TEXT1, cast(NULL as NUMERIC(15,2)) as NUM1, cast(NULL as NUMERIC(15,2)) as NUM2 from ICP P join ICZ Z on (Z.IDICZ = P.IDICZ) where Z.POJ = '207' and P.ODB = '001'
```
---
## Ošetřující lékař pacienta
### Kde je uložen
Ošetřující lékař není přímo v tabulce `KAR`. Je uložen v tabulce **`KARUZIV`** a čte se
přes stored procedure **`KARUZIV_SEL`**.
### Tabulka KARUZIV
Vazba pacient → lékař. Jeden pacient může mít více záznamů (více lékařů/pracovišť).
| Sloupec | Popis |
|------------|-------|
| `IDPAC` | FK na KAR pacient |
| `IDLEKAR` | FK na LEKARI externí lékař (specialista, cizí ordinace) |
| `IDUZI` | FK na UZIVATEL interní uživatel Medicusu (vlastní lékař) |
| `IDPRAC` | FK na PRACOVISTE pracoviště |
| `IDODD` | FK na ODDEL oddělení |
| `AUTOMAT` | `'F'` = ručně přiřazen, `'T'` = automaticky |
Pokud je vyplněn `IDLEKAR` → jde se do tabulky `LEKARI` (cizí lékaři).
Pokud je vyplněn `IDUZI` → jde se do tabulky `UZIVATEL` (lékaři v Medicusu).
### Tabulka REGISTR
Druhý zdroj registrace pacienta u lékaře/pojišťovny.
| Sloupec | Popis |
|------------------|-------|
| `IDPAC` | FK na KAR |
| `IDICP` | FK na ICP identifikace pracoviště/pojišťovny |
| `IDUZI` | FK na UZIVATEL lékař (nepovinný, dohledává se přes ICP) |
| `DATUM` | Datum začátku registrace |
| `DATUM_ZRUSENI` | Datum zrušení (NULL = stále platná) |
| `PRIZNAK` | `'V'`/`'D'`/`'A'` = aktivní; `'Z'`/`'N'` = zrušená/neaktivní |
### Stored procedure KARUZIV_SEL(IIDPAC, INCL_AUTOMAT)
Parametry:
- `IIDPAC` IDPAC pacienta
- `INCL_AUTOMAT` `'T'` = vrátit i automaticky přiřazené, `'F'` = jen ruční
Vrací sloupce: `ID, IDPAC, IDODD, ODD, IDUZI, IDPRAC, IDLEKAR, AUTOMAT, TITUL, PRIJMENI, JMENO, TITUL2, ODBORN`
**Logika (3 průchody):**
1. `KARUZIV` kde `AUTOMAT = 'F'` ručně přiřazení lékaři
2. `KARUZIV` kde `AUTOMAT = 'T'` automaticky přiřazení (jen pokud `INCL_AUTOMAT = 'T'`)
3. `REGISTR` aktivní registrace (datum platný, `PRIZNAK``'Z'`/`'N'`, nezrušená)
- přes `IDICP``ICP``PRACOVISTE``PRACUZIV``UZIVATEL`
### Použití v panelu pacienta (UNION dotaz)
```sql
-- Ošetřující lékař praktický (odbornost 001 nebo 002)
SELECT ... FROM KARUZIV_SEL(:IDPAC, 'T') WHERE ODBORN in ('001', '002')
-- → UNION část ID = 'OseLekPrak'
-- Všichni lékaři přiřazení ke kartě
SELECT ... FROM KARUZIV_SEL(:IDPAC, 'T')
-- → UNION část ID = 'OseLek'
```
### Zapojené tabulky (přehled)
```
KAR
└── KARUZIV ──► LEKARI (externí lékaři, specialisté)
└► UZIVATEL (interní lékaři v Medicusu)
└► PRACOVISTE (pracoviště / odbornost)
└► ODDEL (oddělení)
└── REGISTR ──► ICP (identifikace pracoviště)
└► PRACOVISTE ──► PRACUZIV ──► UZIVATEL
```
### Barevné rozlišení v GUI Medicusu
- **Černá** = záznam pochází z `KARUZIV` (explicitně přiřazený ošetřující lékař, `IDUZI` vyplněno)
- **Červená** = záznam pochází z `REGISTR` (registrující lékař SP vrací `ID = 0 - REGISTR.ID`)
- **Červená (ext.)** = záznam z `KARUZIV` kde je vyplněno `IDLEKAR` (externí lékař z tabulky `LEKARI`)
### Duplikát ošetřujícího lékaře known issue
`KARUZIV_SEL` prochází **vždy oba zdroje** (KARUZIV i REGISTR) bez ohledu na to, zda už byl lékař nalezen. Pokud má pacient záznam v KARUZIV (černá) i v REGISTR (červená) se stejným lékařem, zobrazí se **dvakrát**.
Příčina: SP neobsahuje podmínku „přeskoč REGISTR, pokud KARUZIV již vrátil výsledky".
**Stav ordinace Buzalková (duben 2026):**
- Všech 1620 registrovaných pacientů má v `KARUZIV` záznam IDUZI=4 (Michaela, černá)
- 1537 pacientů má v `REGISTR` IDUZI=4 (Michaela, červená) → duplikát
- Chování je konzistentní, ale GUI zobrazuje oba řádky čeká se na vyjádření supportu Medicusu
**Možná řešení (zatím neaplikováno):**
- A) Smazat KARUZIV záznamy → zůstane jen červená z REGISTR (jeden řádek)
- B) Nastavit REGISTR.IDUZI zpět na NULL → REGISTR path hledá přes PRACOVISTE (najde Michalu jako první NOSVYK='A') → duplikát stále, ale přes jiný lookup
- C) Řešení přes support Medicusu
+9
View File
@@ -0,0 +1,9 @@
# Medicus TO DO LIST
## Otevřené úkoly
1. **Změna Jourová → Buzalková v ošetřujících lékařích**
Zjistit od supportu Medicusu jak správně přiřadit ošetřujícího lékaře tak,
aby se v GUI zobrazoval pouze jeden řádek (černý). Aktuálně se zobrazuje
duplikát černá (z KARUZIV) + červená (z REGISTR). Viz poznámky v
`MedicusWithClaudeSelects/SELECTS.md` sekce "Duplikát ošetřujícího lékaře".