notebook vb
This commit is contained in:
81
MedicusWithClaudeSelects/SELECTS.md
Normal file
81
MedicusWithClaudeSelects/SELECTS.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# MedicusWithClaudeSelects – SQL dotazy
|
||||
|
||||
## Registrovaní pacienti
|
||||
|
||||
Přesný select který Medicus používá pro záložku **Registrovaní** (zachycen přes FBScanner, dotaz č. 143).
|
||||
|
||||
### Počet registrovaných pacientů
|
||||
|
||||
```sql
|
||||
SELECT COUNT(*) FROM KAR
|
||||
WHERE (vyrazen = 'N')
|
||||
AND EXISTS (
|
||||
SELECT id FROM registr r
|
||||
JOIN icp i ON r.idicp = i.idicp
|
||||
WHERE r.idpac = kar.idpac
|
||||
AND (r.datum <= '2026-03-20')
|
||||
AND (r.datum_zruseni IS NULL OR r.datum_zruseni >= '2026-03-20')
|
||||
AND (r.priznak IN ('V','D','A'))
|
||||
AND (i.icp = '09305001')
|
||||
AND (i.odb = '001')
|
||||
)
|
||||
```
|
||||
|
||||
Vrátí: **1618 pacientů** (ověřit na Windows).
|
||||
|
||||
### Podmínky registrace – vysvětlení
|
||||
|
||||
- `vyrazen = 'N'` – pacient není vyřazen z kartotéky
|
||||
- `r.datum <= dnes` – registrace již začala
|
||||
- `r.datum_zruseni IS NULL OR r.datum_zruseni >= dnes` – registrace dosud platí
|
||||
- `r.priznak IN ('V','D','A')` – aktivní příznak (ne 'Z' = zrušen, ne 'N')
|
||||
- `i.icp = '09305001'` – IČP naší ordinace
|
||||
- `i.odb = '001'` – odbornost praktický lékař
|
||||
|
||||
### Skript pro Python
|
||||
|
||||
Viz `count_registrovani.py` v této složce – spustit na Windows.
|
||||
|
||||
### Plný select Medicusu (seznam pacientů s metadaty)
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
KAR.DATNAR,
|
||||
KAR.IDPAC,
|
||||
KAR.INFORMACE,
|
||||
KAR.INFORMACE_COL,
|
||||
KAR.JMENO,
|
||||
KAR.POHLAVI,
|
||||
GPP.POJ,
|
||||
KAR.POZNAMKA,
|
||||
KAR.PRIJMENI,
|
||||
KAR.PRIJMENI_UP,
|
||||
(SELECT DATUM_REGISTRACE FROM SP_GETREGDAT(kar.IDPAC)) AS REGDATUM,
|
||||
KAR.REGISTROVAL,
|
||||
(SELECT PRIZNAK FROM SP_GETREGDAT(kar.IDPAC)) AS REGPRIZNAK,
|
||||
KAR.RODCIS,
|
||||
KAR.ROZENA,
|
||||
KAR.TITUL,
|
||||
KAR.TITULZA,
|
||||
KAR.TRVOBEC,
|
||||
KAR.TRVPSC,
|
||||
KAR.TRVULICE,
|
||||
KAR.VYRAZEN
|
||||
FROM KAR
|
||||
LEFT JOIN GETPACPOJ(KAR.IDPAC, '2026-03-20') GPP ON GPP.IDPAC = KAR.IDPAC
|
||||
WHERE (vyrazen = 'N')
|
||||
AND EXISTS (
|
||||
SELECT id FROM registr r
|
||||
JOIN icp i ON r.idicp = i.idicp
|
||||
WHERE r.idpac = kar.idpac
|
||||
AND (r.datum <= '2026-03-20')
|
||||
AND (r.datum_zruseni IS NULL OR r.datum_zruseni >= '2026-03-20')
|
||||
AND (r.priznak IN ('V','D','A'))
|
||||
AND (i.icp = '09305001')
|
||||
AND (i.odb = '001')
|
||||
)
|
||||
ORDER BY KAR.PRIJMENI_UP ASC, KAR.RODCIS ASC
|
||||
```
|
||||
|
||||
Poznámka: `GETPACPOJ` a `SP_GETREGDAT` jsou uložené procedury Medicusu –
|
||||
fungují v kontextu Firebird připojení přes SYSDBA/masterkey.
|
||||
Reference in New Issue
Block a user