Pravidlové systémy - implementace s využitím SQL

Podobné dokumenty
8.2 Používání a tvorba databází

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Operátory ROLLUP a CUBE

KIV/ZIS cvičení 5. Tomáš Potužák

SQL - trigger, Databázové modelování

Databázové systémy úvod

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Úvod do databázových systémů

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1

A5M33IZS Informační a znalostní systémy. O čem předmět bude? Úvod do problematiky databázových systémů

Použití databází na Webu

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

SQL SQL-SELECT. Informační a znalostní systémy. Informační a znalostní systémy SQL- SELECT

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu

Datové modelování II

Databázové systémy úvod

Databáze SQL SELECT. David Hoksza

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Úvod do databázových systémů

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

Nový bakalářský studijní obor Biomedicínská informatika na Fakultě biomedicínského inženýrství v Kladně

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

Informační systémy ve zdravotnictví. 6. cvičení

Tvorba informačních systémů

Databázové systémy úvod

Databázové systémy trocha teorie

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Databázové systémy. Cvičení 6: SQL

CASE. Jaroslav Žáček

Databázové systémy I. 1. přednáška

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

Úvod do databázových systémů

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

Databázové a informační systémy

10 Metody a metodologie strukturované analýzy

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

Analýza dat a modelování. Přednáška 3

Databáze II. 1. přednáška. Helena Palovská

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

4. blok část A Logické operátory

Přizpůsobení JSTL pro Google App Engine Datastore

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

1. Webový server, instalace PHP a MySQL 13

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Úvod do informatiky. Miroslav Kolařík


7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Marketingová komunikace. 3. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK3PH (vm3bph)

Profilová část maturitní zkoušky 2017/2018

1 Webový server, instalace PHP a MySQL 13

Databáze MS-Access. Obsah. Co je to databáze? Doc. Ing. Radim Farana, CSc. Ing. Jolana Škutová

1 Úvod 1.1 Vlastnosti programového vybavení (SW)

Vědecký tutoriál, část I. A Tutorial. Vilém Vychodil (Univerzita Palackého v Olomouci)

Základní přehled SQL příkazů

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

TimescaleDB. Pavel Stěhule 2018

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Výroková a predikátová logika - II

Znalostní technologie proč a jak?

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Databázové systémy, MS Access. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA

InterSystems Caché Post-Relational Database

4. lekce Přístup k databázi z vyššího programovacího jazyka

Dopis k verzi

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

Dotazovací jazyky I. Datová krychle. Soběslav Benda

Jan Horák. Pilíře řešení

RETROBI Softwarová aplikace pro zpřístupnění digitalizované lístkové kartotéky Retrospektivní bibliografie české literatury

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Nové jazykové brány do Caché. Daniel Kutáč

Ukládání a vyhledávání XML dat

Smysl metodiky IS/IT. Koncentrovaná zkušenost Checklist na nic nezapomeneme

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

TEORIE ZPRACOVÁNÍ DAT

Data x Informace x Znalosti

ANOTACE vytvořených/inovovaných materiálů

Databázové a informační systémy Jana Šarmanová

8 Makra Příklad 4 Excel 2007

Modul msender message Sender. Nápověda

Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Programování v jazyku C# II. 5.kapitola

IDS optimalizátor. Ing. Jan Musil, IBM ČR Community of Practice for

Maturitní témata Školní rok: 2015/2016

Semestrální práce. A0M33PIS Průmyslové informační systémy. Autoři: Název: Půjčovna nářadí. Tomáš Battěk Petr Gazdík Tomáš Levora

WinVet - PetExpert Copyright 2018

Logika a logické programování

Objektově orientované databáze. Miroslav Beneš

Transkript:

Pravidlové systémy - implementace s využitím SQL Jakub Kozák MFF UK 29. 4. 2011

1 Úvod 2 Deduktivní databáze 3 Aktivní databáze 4 MTBC-RBS Úvod Architektura Pravidlová základna Engine Uživatelské rozhraní Výsledky 5 Závěr

Co to jsou pravidla? Téměř ve všech životních situacích se řídíme pravidly. - Když je mi horko, svléknu si svetr. - Když vidím překážku, obejdu ji. - OBECNĚ: Když podmínka, pak činnost. Při hledání odpovědi se řídíme pravidly. - Pokud je hledaná osoba syn mého strýce, pak je to můj bratranec. - Pokud A B, pak A. - OBECNĚ: Logické uvažování, dedukce.

Pravidlové systémy Pravidlové systémy se vyvinuly z prvotních prací umělé inteligence. Tyto systémy využívají expertní znalosti pro řešení problémů reálného světa. Používají se v systémech pro řízení (viz. např. fuzzy logika), při zpracování jazyka (např. regulární výrazy) Využívají se ovšem také jako rozšíření DB systémů. 2 hlavní proudy: - Deduktivní databáze - Aktivní databáze

Deduktivní databáze Ovlivněno logickým programováním Rozšiřuje relační algebru o nové možnosti - rekurze, tranzitivní uzávěr Deklarativní sémantika - jde o dotaz, ne o způsob jeho vyhodnocení Pravidla ve formě p : q 1, q 2,..., q n Použití pro aplikace s velkým množstvím dat a komplexními dotazy - finanční analýza, vědecké výpočty apod.

Deduktivní databáze Historie deduktivních databází sahá až do 70. let 20. století V roce 1984 začaly 3 hlavní výzkumné projekty: - The Nail! - projekt Stanfordovy univerzity - LDL projekt na MCC v Austinu - ECRC - projekt v Evropě Dále vzniklo poměrně velké množství dalších jazyků a projektů (viz. Literatura)

Aktivní databáze Reprezentují reaktivní chování (akce reakce) Běžný přístup modelování pravidel sestává ze tří komponent: UDÁLOST PODMÍNKA AKCE UPA pravidla (EVENT CONDITION ACTION ECA rules) Někdy mohou být některé části vypuštěny - např. událost, nebo podmínka.

Aktivní databáze Velmi podrobně se popisem aktivních databází zabývá článek Paton N. P., Díaz O.: Active Database Systems, ACM Computing Surveys, Vol. 31, No. 1, March 1999. Věnuje se všem aspektům dané problematiky. Referát dostupný na stránkach prof. Pokorného o aktivních databázích ze zimního semestru.

Aktivní databáze - implementace Relační Starburst POSTGRES Ariel SQL-3 Objektově orientované HiPAC, EXACT, NAOS, Chimera Ode, SAMOS, Sentinel, REACH

Abstraktní architektura systému aktivních pravidel

Úvod Konkrétní implementace pravidlového systému MTBC-RBS

Úvod IT ve zdravotnictví Zdravotnictví je pro IT v USA v současné době velký byznys - státní dotace a zákonem stanovené podoby dokumentací Konkrétní implementace pravidlového systému pro sekci zdravotní péče v USA Budou nás zajímat žádosti o platby od zdravotních pojišt oven Důležitá položka v účetnictví, nebot až 30 % žádostí je poprvé zamítnuto a z nich dalších 35 % zamítnuto opakovaně

Úvod Co je to MTBC? Společnost založená v roce 1999 v USA Software pro sektor zdravotní péče Medicínské účetnictví, elektronické lékařské záznamy Management lékařské praxe - plánování schůzek, vedení evidence, postoupení nároků na platby od pojišt ovny Údajně využívají moderní softwarové metody MTBC zpracovává tisíce žádostí pro pojišt ovny denně

Úvod Proč žádosti pro pojišt ovny Žádost musí obsahovat korektní informace - správné datum, validní číslo diagnózy apod. Tyto požadavky se často mění a udržovat řízení přímo v nějaké aplikaci je komplikované Proto byl pro vývoj zvolen pravidlový systém založený na SQL Tento systém je nyní v MTBC plně funkční

Architektura Architektura MTBC Data se do databáze MTBC importují z různých zdrojů bez aplikace jakékoliv kontroly dat. Kontrola žádostí tedy probíhá po zápisu do databáze a před odesláním plátcům pojistného.

Pravidlová základna Pravidlová základna Jak budeme pravidla reprezentovat a ukládat? Budeme potřebovat tři základní entity: - Logické proměnné - Pravidla - Meta-pravidla Všechny si rozebereme podrobněji.

Pravidlová základna Logické proměnné Logickou proměnnou rozumíme symbol uzavřený ve špičatých závorkách <> Pravidla se provádějí až po nahrazení proměnných jejich skutečnými hodnotami Skutečné hodnoty jsou získany dotazem příslušným k dané proměnné Příklad: <PAC_POHLAVI> := SELECT Pohlavi FROM Pacient WHERE pac_ucet = @pac_ucet @pac_ucet je SQL proměnná, v níž je uložena hodnota účtu pacienta, na který je aplikováno dané pravidlo

Pravidlová základna Logické proměnné Další příklady: - <DATUM_NEHODY> := SELECT datum_nehody FROM pozadavky WHERE id_pozadavku = @id_pozadavku - <DG_KOD> := SELECT dg_kod FROM pozadavky WHERE id_pozadavku = @id_pozadavku - <DATUM_SLUZBY> := SELECT datum_sluzby FROM pozadavky WHERE id_pozadavku = @id_pozadavku - <ID_POZADAVKU> := SELECT @id_pozadavku AS id_pozadavku

Pravidlová základna Pravidla Typicky pravidla sestávají z konjunkce podmínek v if-části a množiny akcí v then-části. V tomto systému jsou podmínky části SQL dotazů. Pravidla mají své priority (přirozená čísla od 1 do 100), podle nichž se vyhodnocují. Existují hodnoty, pro které se pravidla zkouší aplikovat vždy. Jinak musí být platné meta-pravidlo.

Pravidlová základna Pravidla Název pravidla: R4 Priorita: 25 Popis: Datum nehody chybí pro MKN v intervalu od 800 do 999 Dotaz: WHERE ISNULL( <DATUM_NEHODY>, 1900-01-01 ) = 1900-01-01 AND LEFT( <DG_KOD>,3) BETWEEN 800 AND 999 ; IF @Recordcnt = 1 BEGIN UPDATE pozadavky SET datum_nehody = <DATUM_SLUZBY> WHERE id_pozadavku = <ID_POZADAVKU> END MKN je zkratka pro mezinárodní klasifikaci nemocí Každé pravidlo je na začátku opatřeno konstantním řetězcem SELECT @Recordcnt = COUNT(*) @Recordcnt je 0, pokud se nic s danou podmínkou nenajde, jinak 1 a požadavek je prohlášen za chybný.

Pravidlová základna Pravidla Popis některých pravidel, které se v současnosti v MTBC-RBS používají. SR Popis pravidla 2 Chybí datum nehody pro MKN od 800 do 900 4 Stáří požadavku překračuje limit následujícího roku společnosti Medicare 5 Stáří požadavku větší než 365-denní limit plátce pojistného 7 Kód diagnózy nesouhlasí s věkem pacienta 8 Kód diagnózy nesouhlasí s pohlavím pacienta Akcí většiny pravidel je zobrazení chybového hlášení uživateli. Některé chyby jsou označeny jako kritické a blokují odeslání požadavku.

Pravidlová základna Metapravidla Společné podmínky pro více pravidel mohou být uloženy jako speciální metapravidla. Nejdříve se vyhodnotí metapravidlo. Pokud je výsledkem pravda, provedou se podřízená pravidla v pořadí podle priority. Příklad - rozdělení pravidla R4 Název meta pravidla: MR1 Popis: Chybí datum nehody Dotaz: WHERE ISNULL( <DATUM_NEHODY>, 1900-01-01 ) = 1900-01-01

Pravidlová základna Metapravidla Název pravidla: R4 Název metapravidla: MR1 Priorita: 35 Popis: Datum nehody chybí pro MKN v intervalu od 800 do 999 Dotaz: WHERE LEFT( <DG_KOD>,3) BETWEEN 800 AND 999 ; IF @Recordcnt = 1 BEGIN UPDATE pozadavky SET datum_nehody = <DATUM_SLUZBY> WHERE id_pozadavku = <ID_POZADAVKU> END

Engine Engine systému Vstupem pro MTBC-RBS je číslo požadavku. Žádost se skládá z: - kód diagnózy - léčebné procedury - údaje o pacientovi - jméno, datum narození, RČ... - další informace pro potřeby pojišt oven Výše uvedená data jsou uložena v relační DB a pravidlový systém si je vybírá z příslušných tabulek. Logika systému je vcelku jednoduchá: 1 Vezmi jednu žádost 2 Pamatuj priority pravidel a metapravidla, aplikuj pravidla jedno po druhém 3 Spust akci těch pravidel, jejichž podmínka je splněna (tzn. se záznamem není něco v pořádku)

Engine Engine systému 4 tabulky v relační DB - 3 pro uložení pravidel, 1 pro uložení výsledků aplikace pravidel 3 hlavní kroky při aplikaci pravidel: 1 najít všechna aplikovatelná pravidla (sp_find_applicable_rules) všechna aktivní pravidla, pak priorita 25, 75 a do tabulky #Apprules se uloží pravidla, jejichž metapravidla vrací pravdu 2 nahradit logické proměnné (sp_replace_lv_values) pokud má logická proměnná více hodnot, vytvoří se více kopíı dotazu 3 spuštění pravidla - tj. kontrola podmínky, uložení výsledku do záznamu a případné spuštění akce

Engine Engine systému

Uživatelské rozhraní Editor pravidel Obrázek: Hlavní okno pro editaci pravidel má 3 panely

Výsledky Výsledky Aplikace 5230 pravidel na jeden požadavek trvá přibližně 3 sekundy V testovaném období bylo denně průměrně vyplaceno 4128 žádostí a nalezeno 1289 chyb. (2 chyby v jedné žádosti byly počítány jako 2 chyby) Tento typ systému se hodí pro prostředí s častou změnou pravidel.

Závěr Základní přehled o pravidlových systémech Co to jsou deduktivní a aktivní databáze Konkrétní implementace systému v zajímavém prostředí zdravotní péče

Literatura Ceri S., Ramakrishnan R.: Rules in Database Systems, ACM Computing Surveys, Vol. 28, No. 1, March 1996. Ramakrishnan R., Ullman J. D.: A Survey of Deductive Database Systems, The Journal of Logic Programming, 1995. Paton N. P., Díaz O.: Active Database Systems, ACM Computing Surveys, Vol. 31, No. 1, March 1999. Abdullah U., Sawar M. J., Ahmed A.: Design of a rule based system using Structured Query Language, DASC 09 Proceedings of the 2009 Eighth IEEE International Conference on Dependable, Autonomic and Secure Computing.

Konec Děkuji za pozornost.