Grailog Use Case
-
Upload
zainab-almugbel -
Category
Education
-
view
50 -
download
0
Transcript of Grailog Use Case
![Page 1: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/1.jpg)
1
Cost Sharing EstimatorZainab AlmugbelSpecial thanks to Prof. Harold Boley for his contribution in this use case
![Page 2: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/2.jpg)
2
Cost sharing estimator•Cost sharing is the share of costs covered
by your insurance that you pay out of your own pocket. This term generally includes deductibles, coinsurance, and copayments, or similar charges, but it doesn't include premiums, balance billing amounts for non-network providers, or the cost of non-covered services.
https://www.healthcare.gov/glossary/cost-sharing/
![Page 3: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/3.jpg)
3
How costSharingEstimator works
![Page 4: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/4.jpg)
4
start
Client has
insurance?
Compensation>
treatment cost
cost sharing inquiry
yes
Payment = treatment cost
cost sharing result
end
no
Payment = 0
yes
Payment = treatment cost - compensation
no
Partner hospital
?
yes
no
![Page 5: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/5.jpg)
5
Data Fact / Decision Rule Architecture
insuranceOffer client partnermedicalExpens
es
Data Facts
costSharingEstimator
paymentCalculator
Decision Rules
![Page 6: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/6.jpg)
6
Data FactsThis includes medicalExpenses, insuranceOffer, client and partner
![Page 7: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/7.jpg)
7
Data facts: medicalExpenses• This predicate stores the expenses/price of having a service in a
specific hospital :1. medicalExpenses(saudiGermanHospital, teeth, xray,
300^^Integer).%...(hospital, site, required treatment, price)
2. medicalExpenses(britishSaudiHospital, teeth, xray, 350^^Integer).
3. medicalExpenses(dallahHospital, teeth, xray, 350^^Integer).4. medicalExpenses(dallahHospital, teeth, surgery, 2000^^Integer).5. medicalExpenses(britishSaudiHospital, teeth, surgery,
1350^^Integer).6. medicalExpenses(binsinaMedicalCenter, teeth, surgery,
1500^^Integer).7. medicalExpenses(medCareHospital, teeth, surgery,
1350^^Integer).
![Page 8: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/8.jpg)
8
Data facts: insurance offers• This predicate stores the information about the available
medical insurance offers in a specific insurance company. The compensation for treating a specific site is categorized based on the insurance type:
1. insuranceOffer(tawuniya, silver, teeth, 1000^^Integer).%...(insurance company, insurance type, site, compensation)
2. insuranceOffer(tawuniya, gold, teeth, 1500^^Integer).3. insuranceOffer(tawuniya, platinum, teeth,
2000^^Integer).4. insuranceOffer(tawuniya, diamond, teeth,
2500^^Integer).
![Page 9: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/9.jpg)
9
Data facts: client•This predicate stores the registered
clients, their insurance company, and their insurance type:
1. client(11122, tawuniya, silver).%...(clientSSN,insurance company, insurance type)
2. client(66700, tawuniya, gold).
![Page 10: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/10.jpg)
10
Data facts: partner•This predicate stores the partners :1. partner(tawuniya,
saudiGermanHospital).%...(insurance company, partner hosipital) 2. partner(tawuniya, britishSaudiHospital).3. partner(tawuniya, dallahHospital).
![Page 11: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/11.jpg)
11
Decision RulesThis includes costSharingEstimator and paymentCalculator
![Page 12: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/12.jpg)
12
Decision Rule: costSharingEstimator
•The predicate costSharingEstimator estimates the cost sharing ?Payment for a client ?ClientSSN who may have a medical insurance in ?InsCompany and needs a treatment ?RequiredTreatment for a ?Site in a ?Hospital
•?InsCompany is bound to Tawuniya company in this usecase but it could be bound to any other value
costSharingEstimator(?ClientSSN, ?InsCompany, ?Hospital, ?Site, ?RequiredTreatment, ?Payment) :-
![Page 13: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/13.jpg)
13
Decision Rule: costSharingEstimator Cont’d.
costSharingEstimator has three versions:• Client has medical insurance:
▫Hospital is a partner with his insurance company(1) Compensation covers treatment cost Compensation does not cover treatment cost
▫Hospital is not a partner with his insurance company (2)
• Client does not have an insurance (3)
![Page 14: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/14.jpg)
14
Decision Rule: costSharingEstimator(1)costSharingEstimator(?ClientSSN, ?InsCompany, ?Hospital, ?Site, ?RequiredTreatment, ?Payment) :-
client(?ClientSSN, tawuniya, ?InsType), % check if the client has insurance
partner(tawuniya, ?Hospital), % check the partnered hospitalsmedicalExpenses(?Hospital, ?Site, ?RequiredTreatment, ?Price),
% check the price (cost of the service)
insuranceOffer(tawuniya, ?InsType, ?Site, ?Compensation), % check the compensation(money given by the insurance
company) paymentCalculator(?Price, ?Compensation, ?Payment).
% calculate the cost sharing (?Payment)
This rule executes when the hospital that provides services to clients is partner of its insurance company
% costSharingEstimator(in, in, out, in, in, out)
![Page 15: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/15.jpg)
15
Decision Rule: paymentCalculatorpaymentCalculator (?Price, ?Compensation, ?Payment).
Since compensation is based on the insurance type. The compensation may not cover the total treatment price. As a result, there are two versions of this rule:
1. If compensation >= price then payment=0paymentCalculator (?Price, ?Compensation, ?Payment) :- greaterThanOrEqual(?Compensation, ?Price), subtract(?
Payment, ?Price, ?Price).
2. If compensation < price then payment= price - compensationpaymentCalculator (?Price, ?Compensation, ?Payment) :- lessThan(?Compensation, ?Price), subtract(?Payment, ?Price, ?Compensation).
![Page 16: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/16.jpg)
16
Decision Rule: costSharingEstimator(2)
costSharingEstimator(?ClientSSN, ?InsCompany, ?Hospital, ?Site, ?RequiredTreatment, ?Payment) :-
client(?ClientSSN, tawuniya, ?InsType), naf(partner(tawuniya, ?Hospital)),% return true if the hospital is in not a partner with the insurance
company medicalExpenses (?Hospital, ?Site, ?RequiredTreatment, ?
Payment).
• This rule executes when the hospital that provides services to clients is not partner (naf) of its insurance company. The client has to pay the full cost of the service
![Page 17: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/17.jpg)
17
Decision Rule: costSharingEstimator(3)costSharingEstimator(?ClientSSN, ?InsCompany, ?Hospital, ?Site, ?RequiredTreatment, ?Payment) :-
naf(client(?ClientSSN, ?InsCompany, ?InsType)), % return true if the client in not registered in the insurance
companymedicalExpenses (?Hospital, ?Site, ?RequiredTreatment, ?
Payment).
• This rule executes when the client is not registered (naf) in any insurance company. The client has to pay the full cost of the service
![Page 18: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/18.jpg)
18
Query Samples1. costSharingEstimator is the main query 2. Both knowledgebase and query could be run
using OO JDREW on http://www.jdrew.org/oojdrew/download.html
![Page 19: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/19.jpg)
19
Query Sample 1
This query is for (Exist client); it gives 2 results:
• costSharingEstimator(11122, tawuniya, ?Hospital, teeth, surgery, ?Payment).
Only partner hospitals that provide the required treatment are shown in the results
![Page 20: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/20.jpg)
20
Query Sample 2
This query is for (exist client) with (non partner hospital); it gives one result:
• costSharingEstimator(11122, tawuniya, medCareHospital, teeth, surgery, ?Payment).
•Only the selected hospital is shown in the result•The client has to pay the full cost of the service
![Page 21: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/21.jpg)
21
Query Sample 3
This query is for (non exist client); it gives 4 results:
• costSharingEstimator(11622, tawuniya, ?Hospital, teeth, surgery, ?Payment).
•All available hospitals that provide the required treatment are shown in the results•The client has to pay the full price of the service
![Page 22: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/22.jpg)
22
Steps of Creating CostSharingEstimator
First
• Data and rules were written in POSL
Second
Third
![Page 23: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/23.jpg)
23
Note •<Naf> [4] is not yet identified by Grailog.
Therefore, whenever it’s needed in a predicate, the predicate is preceded by “not”
•For example:POSL
naf(partner(tawuniya, ?Hospital))
RuleML (not)RuleML (naf)
![Page 24: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/24.jpg)
24
Flat FunctionExample: paymentCalculator rule
![Page 25: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/25.jpg)
25
Transforming POSL to RuleML (OO JDREW)POSL RuleML
paymentCalculator (?Price,?Compensation, ?Payment) :-
lessThan(?Compensation, ?Price),
subtract(?Payment, ?Price, ?Compensation).
![Page 26: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/26.jpg)
26
Visualizing RuleML as Grailog(svg)
![Page 27: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/27.jpg)
27
Nested FunctionExample: paymentCalculator rule
![Page 28: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/28.jpg)
28
Transforming POSL to RuleML (manually)POSL RuleML
paymentCalculator (?Price,?Compensation, ?Payment) :-
lessThan(?Compensation, ?Price),
Equal(?Payment,subtract(?Price,?Compensation)).
![Page 29: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/29.jpg)
29
Visualizing RuleML as Grailog(svg)
![Page 30: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/30.jpg)
30
Saxon•Saxon [2] is used to transform the RuleML
version of this usecase into Grailog. It takes the .ruleml and the .xslt files as inputs to produce the .svg as output of the transformation process
•Saxon does not have an interface; it uses DOS command for this purpose
![Page 31: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/31.jpg)
31
Grailog•More information about Grailog is
available on[5]•[3] is the .xslt file that is used to
transform RuleML in to Grailog visualization
![Page 32: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/32.jpg)
32
Future work•Data in this use case can be extended to:
▫ contain comparable information about different medical insurance companies in a specific region to help the user to select the most suitable insurance for himself
▫include additional insurance types(ex, car insurance)
•Grailog can be extended to visualize “naf”
![Page 33: Grailog Use Case](https://reader035.fdocuments.in/reader035/viewer/2022070519/58ef3f631a28ab281c8b46b5/html5/thumbnails/33.jpg)
33
References[1]http://www.jdrew.org/oojdrew/demo.html[2]http://www.saxonica.com/documentation/#!
about/gettingstarted/gettingstartedjava[3]http://www2.unb.ca/~lbidlak1/
GrailogKSViz2_0StandAlone.xslt[4]http://wiki.ruleml.org/index.php/
Glossary_of_Deliberation_RuleML_1.02#.3CNaf.3E
[5]http://wiki.ruleml.org/index.php/Grailog