Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:2009:piw09_hades_1:hekate_case_health [2009/06/13 23:09] piw09 |
pl:miw:2009:piw09_hades_1:hekate_case_health [2009/06/17 00:03] piw09 |
==== Original Rules ==== | ==== Original Rules ==== |
HealthCare [[http://openrules.com/docs/xls/HealthCareRules.xls|HealthCareRules.xls]] | HealthCare [[http://openrules.com/docs/xls/HealthCareRules.xls|HealthCareRules.xls]] |
| |
| {{:pl:miw:2009:piw09_hades_1:health-ruls.png?600|}} |
| |
| |
<code> | <code> |
creatinineClearance = (140 - age) * weight / (creatinineLevel * 72) | creatinineClearance = (140 - age) * weight / (creatinineLevel * 72) |
</code> | </code> |
| |
| |
| |
FIXME - wersja wstępna w czasie poprawek. | |
| |
===== Analysis ===== | ===== Analysis ===== |
W przykładzie wyliczana jest dozowanie lekarstwa dla osób, u których wykryto ostre zapalenie zatok (ang. Acute Sinusitis). Najpierw na podstawie wieku pacjenta oraz informacji czy jest uczulony na penicyline, ustalany jest jeden z trzech rodzajów lekarstwa. Następnie również na podstawie wieku, oraz dwóch wskaźników ustalana jest dawka leku. Należy zauważyć, że jeden z wskaźników jest podawany jako dana wejściowa, natomiast drugi jest wyliczany na podstawie odpowiedniej reguły. | In this example the system counts the dose of medicaments for people with Acute Sinusitis. |
| First of all the system based on patient age and allergic to penicillin chooses one out of tree types of medicaments. Secondly, based on age and two factors the dose of medicaments is calculated. One factor is input data while second is calculated based on selected rule. |
| \\ |
| |
W tym przykładzie można wyodrębnić dwa niezależne podsystemy. Jeden ustala rodzaj lekarstwa, a drugi ustala dozowanie leku. W systemie rodzaj lekarstwa nie manwpływu na dozowanie. | In this example it is possible to distinguish two independent subsystems. One chooses type of medicaments, second sets medicaments dosing. The type of medicaments doesn't influence dosing. |
| \\ |
| Model design was started from attribut //HealthCare//. Next it is finalized into two attributes //Medication// and //CreatinineClearance// and two physical attributes: //creatinineLevel// i //dose// |
| |
Budowę modelu rozpoczęto od atrybutu //HealthCare//. Następnie został on finalizowany na dwa atrybuty konceptualne //Medication// i //CreatinineClearance// oraz dwa atrybuty fizyczne //creatinineLevel// i //dose//. Atrybut //dose// jest wyjściem systemu dlatego na poziomie 2 dokonany został podział, który pokazuje zależność od innych atrybutów. Kolejnym krokiem jest podział bloku z trzema atrybutami i ukazanie relacji pomiędzy nimi. Na poziomie 4 dodawana są nowe atrybuty fizyczne //diagnosis//, //age//, //allergic//, //medication//. Zastępują one atrybut //Medication//. | //Dose// attribute is system output that is why on level 2 there is a division that indicates dependence from other attributes. The following step is block division with tree attributes and showing relation among them. On the level 4 there are new physical attributes //diagnosis//, //age//, //allergic//, //medication//. They replace attribute //Medication//. |
Przejściu na poziom 5 towarzyszy finalizacja //CreatinineClearance// na dwa atrybuty fizyczne jeden o takiej samej nazwie oraz drugi //weight//. Podczas tego przejścia | On the level 5 there is finalization of //CreatinineClearance// into two phisical attributes: //CreatinineClearance// and //weight//. During this transition the attribute devision in made. //medication// depends on //diagnosis//, //age// and //allergic//. |
dokonywany jest także podział bloku atrybutów. //medication// czyli lekarstwo jest zależne | |
od //diagnosis//, //age// oraz //allergic// | |
| |
Ostatni poziom 6 kończy budowę diagramów ARD. Na tym etapie rozdzielone zostają atrybuty. Zgodnie z równaniem wyliczającym //creatinineClearance// dochodzą do niego wszystkie atrybuty będące elementami równania, czyli //weight//, //age// oraz | \\ |
//creatinineLevel//. | The last level 6 finishes ARD diagrams. On this level the attributes are separated. All elements of the equation: //weight//, //age// and //creatinineLevel// enters //creatinineClearance// |
| |
W modelu logicznym można zaobserwować, że w tabeli 1 nie ma jednej kolumny w porównaniu do prototypu. Stało się tak ponieważ atrybut //dose// nie zależy od wartości atrybutu | |
//medication//. Istniała także możliwość zostawienia tej kolumny i wpisywania w każdą | |
komórkę wartości dowolnej, czyli //op : any//. Warto zwrócić uwagę w jaki sposób przedstawione jest równanie odpowiedzialne za wyliczenie //creatinineClearance//. Jest to jedna tabela, która w części action ma wpisaną formułę wyliczająca na podstawie danych znajdujących się po stronie conditional. | |
W tym przykładzie można zauważyć jedną niekorzystną własność metody XTT. Wartość //age// musi być podana dwukrotnie, najpierw musi dochodzić do tabeli 2 oraz musi być | |
podana do wyliczenia wartości wskaźnika //creatinineClearance//. Nie jest możliwe wprowadzenie jej do osobnej tabeli ponieważ z jednej komórki wychodziłyby dwa połączenia w różnych kierunkach. Podawanie wartości w dwóch różnych miejscach może prowadzić | |
do błędów. | |
| |
===== Conceptual design ===== | ===== Conceptual design ===== |
| |
=== Full ARD Model === | === Full ARD Model === |
The VARDA representation is in this case as follows: {{:student:msc2008_bizrules_cases:health-model.pl|health-model.pl}} | Diagrams design in VARADA: |
| {{:student:msc2008_bizrules_cases:health-model.pl|health-model.pl}} |
| |
The full hierarchical diagram is presented below. | The full hierarchical diagram is presented below: |
| |
{{:student:msc2008_bizrules_cases:health_ardlevels.png|:student:msc2008_bizrules_cases:health_ardlevels.png}} | Level 0: \\ |
| {{:pl:miw:2009:piw09_hades_1:health-level0.png|}} |
| |
The lowest level diagram is | Level 1: \\ |
| {{:pl:miw:2009:piw09_hades_1:health-level1.png|}} |
| |
{{:student:msc2008_bizrules_cases:health-last.png|:student:msc2008_bizrules_cases:health-last.png}} | Level 2: \\ |
| {{:pl:miw:2009:piw09_hades_1:health-level2.png|}} |
| |
| Level 3: \\ |
| {{:pl:miw:2009:piw09_hades_1:health-level3.png|}} |
| |
| Level 4: \\ |
| {{:pl:miw:2009:piw09_hades_1:level4.png|}} |
| |
| Level 5: \\ |
| {{:pl:miw:2009:piw09_hades_1:health5.png|}} |
| |
| |
| ARD diagram: \\ {{:pl:miw:2009:piw09_hades_1:health-model-ard.dot.png|}} |
| \\ dot file: {{:pl:miw:2009:piw09_hades_1:health-model-ard.dot|}} |
| |
| |
| TPH diagram: \\ {{:pl:miw:2009:piw09_hades_1:health-model-tph.dot.png?400|}} |
| \\ dot file: {{:pl:miw:2009:piw09_hades_1:health-model-tph.dot|}} |
| |
| |
| The full hierarchical diagram generated by HQed: \\ {{:pl:miw:2009:piw09_hades_1:health_levels.png|}} |
| |
The TPH for this model is presented below. | |
| |
{{:student:msc2008_bizrules_cases:health_tph.png|:student:msc2008_bizrules_cases:health_tph.png}} | |
| |
==== Refined Conceptual Design ==== | ==== Refined Conceptual Design ==== |
| |
===== Structuralization ===== | ===== Structuralization ===== |
XTT prototype generated by VARDA is presented below. | XTT diagram generated by VARDA:\\ |
| {{:pl:miw:2009:piw09_hades_1:health-sxt.png?500|}} |
| |
{{:student:msc2008_bizrules_cases:health_xtt.png|:student:msc2008_bizrules_cases:health_xtt.png}} | |
| |
| |
| |
| ===== Logical design ===== |
| Design made by HQed \\ |
| {{:pl:miw:2009:piw09_hades_1:health_modelv1.1.png?700|}} |
| |
| xttml model: {{:student:msc2008_bizrules_cases:health.xttml|health.xttml}} |
| |
| hml_file: {{:pl:miw:2009:piw09_hades_1:health_modelv1.1.xttml|}} |
| |
===== Logical design ===== | |
Design made by HQed | |
| |
xttml model: {{:student:msc2008_bizrules_cases:health.xttml|health.xttml}} | |
| |
{{:student:msc2008_bizrules_cases:health-hqed.png|:student:msc2008_bizrules_cases:health-hqed.png}} | |
| |