z230
This commit is contained in:
+32
-26
@@ -144,9 +144,9 @@ Klíčový princip `COALESCE(v.nazev, p.nazev)`:
|
||||
Odbornost se odvozuje z posledních 3 číslic pole `predepisujici.icp` (IČP pracoviště).
|
||||
|
||||
```
|
||||
ICP: 09305001 → kód odbornosti: 001 → Praktický lékař
|
||||
ICP: 08006272 → kód odbornosti: 272 → Alergologie
|
||||
ICP: 08075603 → kód odbornosti: 603 → Onkologie
|
||||
ICP: 09305001 → kód odbornosti: 001 → všeobecné praktické lékařství
|
||||
ICP: 08006272 → kód odbornosti: 272 → alergologie
|
||||
ICP: 08075603 → kód odbornosti: 603 → onkologie
|
||||
```
|
||||
|
||||
Funkce:
|
||||
@@ -157,32 +157,38 @@ def odbornost_z_icp(icp):
|
||||
return ODBORNOST.get(icp[-3:], f"odb. {icp[-3:]}")
|
||||
```
|
||||
|
||||
Pro neznámé kódy se zobrazí `odb. XXX` (XXX = třímístný číselný kód).
|
||||
Pro neznámé kódy se zobrazí `odb. XXX` (XXX = třímístný kód).
|
||||
|
||||
### Slovník ODBORNOST — vybrané klíčové kódy
|
||||
### Zdroj dat — tabulky `vzp_pracoviste` + `odbornost` (MySQL)
|
||||
|
||||
| Kód | Odbornost | Kód | Odbornost |
|
||||
|-----|-----------|-----|-----------|
|
||||
| 001 | Praktický lékař | 101 | Vnitřní lékařství |
|
||||
| 002 | Pediatr (prakt.) | 104 | Kardiologie |
|
||||
| 003 | Chirurgie | 105 | Gastroenterologie |
|
||||
| 004 | Ortopedie | 108 | Nefrologie |
|
||||
| 005 | ORL | 110 | Diabetologie |
|
||||
| 006 | Gynekologie | 121 | Endokrinologie |
|
||||
| 007 | Urologie | 156 | Hematologie |
|
||||
| 008 | Neurologie | 169 | Revmatologie |
|
||||
| 009 | Psychiatrie | 263 | Urologie |
|
||||
| 012 | Dermatovenerologie | 272 | Alergologie |
|
||||
| 018 | Pneumologie | 283 | Dětská neurochir. |
|
||||
| 021 | Radiodiagnostika | 302 | Radiodiagnostika |
|
||||
| 024 | Klin. biochemie | 324 | Klin. onkologie |
|
||||
| 060 | Dětská chirurgie | 590 | Lékárenství |
|
||||
| 074 | Neurochirurgie | 603 | Onkologie |
|
||||
| 091 | Gynekolog. onkologie | 704 | Kardiochirurgie |
|
||||
| 096 | Léčebná rehabilitace | 801 | Fyzioterapie |
|
||||
Slovník `ODBORNOST` se **načítá dynamicky při startu skriptu** z MySQL:
|
||||
|
||||
Celý slovník obsahuje ~170 kódů (viz zdrojový kód skriptů).
|
||||
Kompletní číselník VZP/SÚKL: <https://www.sukl.cz> (sekce číselníky).
|
||||
```python
|
||||
def _nacti_odbornosti():
|
||||
conn = pymysql.connect(**DB)
|
||||
try:
|
||||
with conn.cursor(pymysql.cursors.Cursor) as cur:
|
||||
cur.execute("""
|
||||
SELECT vp.icp, o.nazev
|
||||
FROM vzp_pracoviste vp
|
||||
JOIN odbornost o ON o.kod = vp.odbornost
|
||||
WHERE CURDATE() BETWEEN vp.platnost_od AND vp.platnost_do
|
||||
ORDER BY vp.platnost_od DESC
|
||||
""")
|
||||
result = {}
|
||||
for icp, nazev in cur.fetchall():
|
||||
result.setdefault(icp, nazev)
|
||||
return result
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
ODBORNOST = _nacti_odbornosti()
|
||||
```
|
||||
|
||||
- `vzp_pracoviste` — oficiální číselník VZP (stahován týdně z VZP Point přes `import_vzp_pracoviste.py`), obsahuje ~52 000 záznamů s přímou vazbou ICP → kód odbornosti
|
||||
- `odbornost` — číselník názvů odborností importovaný z Firebird tabulky `odborn` (360 aktuálně platných kódů)
|
||||
- Vyhledávání probíhá podle **plného 8-znakového ICP** — spolehlivé i pro pracoviště, která změnila odbornost
|
||||
- Slovník obsahuje ~43 000 aktuálně platných ICP kódů
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user