=Paper= {{Paper |id=None |storemode=property |title=HarmonICS - a Tool for Composing Medical Services |pdfUrl=https://ceur-ws.org/Vol-847/paper4.pdf |volume=Vol-847 |dblpUrl=https://dblp.org/rec/conf/zeus/DoliwaHJNPPS12 }} ==HarmonICS - a Tool for Composing Medical Services== https://ceur-ws.org/Vol-847/paper4.pdf
 HarmonICS - a Tool for Composing Medical Services ?

    Dariusz Doliwa1 , Wojciech Horzelski1 , Mariusz Jarocki1 , Artur Niewiadomski2 ,
             Wojciech Penczek2,3 , Agata Półrola1 , and Jarosław Skaruz2
                1
                    University of Łódź, FMCS, Banacha 22, 90-238 Łódź, Poland
             {doliwa,horzel,jarocki,polrola}@math.uni.lodz.pl
                 2
                     Siedlce University of Natural Sciences and Humanities, ICS,
                               3-go Maja 54, 08-110 Siedlce, Poland
                            {artur,jskaruz}@ii.uph.edu.pl
           3
              Institute of Computer Science, PAS, Ordona 21, 01-237 Warsaw, Poland
                                  penczek@ipipan.waw.pl



        Abstract. The paper presents the tool HarmonICS designed for automated com-
        position of medical services and implementing our approach to description and
        composition of web services. HarmonICS enables arranging sequences of services
        to satisfy a user’s request specified by a query. The query language is rich enough
        to express requirements on the timing and the ordering of services used.


1     Introduction and Related Work

We present a new tool for automated composition of web services (WS) related to the
medical domain. The tool implements our original approach [7] to WS composition,
based on introducing a uniform semantic description of services, an object model for
the problem, and applying a multi-phase composition supported by model checking
methods. The planning process aims at satisfying a user’s goal, specified in a declar-
ative language, which enables not only to express features of the objects, but also re-
quirements on the timing and ordering of services occurring in the plan.
    The WS composition problem is a very important subject of research for which
many various solutions exist. The simplest ones are based on explicit state space search
algorithms [16], while more advanced ones employ a graph-based planning [5], logic
programming [14], an AI planning [13, 11], model checking methods [10, 12], and ge-
netic algorithms [3]. Vitvar et al. [17] proposed a solution based on WSMO/WSML
[15] formalisms. While the fundamental ideas of their concepts seem similar to ours, it
is important to mention that our approach is simpler and thus much easier to implement.
    Our considerations follow that of Ambroszkiewicz [1], which provides a specifi-
cation of an automatic composition system based on a multi-phase composition and
uniform semantic descriptions of services. However, several extensions like enriched
descriptions of services or a hierarchic organisation of services and objects they operate
on, have been additionally designed. Doing all that, we keep the semantic base as sim-
ple as possible, which aims at enabling a translation of the WS composition problem to
a problem solvable by means of eficient methods and tools from other domains.
?
    Partly supported by National Science Centre under the grant No. 2011/01/B/ST6/01477.
     The first “general” implementation of our approach (system PlanICS) was described
by Doliwa et al. [8]. The tool HarmonICS to be presented here is, on one hand, an exten-
sion of PlanICS due to incorporating new theoretical solutions, while on the other hand
it is its specialization to a particular domain. In addition to the SAT-based planning
method inherited from PlanICS, HarmonICS offers also a new specialized SMT-based so-
lution. The SMT-based concrete planner has been developed in response to insufficient
performance of the previous solution in some particular cases. The bottleneck was a
translation of TADDPA1 to SAT in the presence of a large number of conditions im-
posed on the variables, especially these "expensive" ones, e.g., using modulo operator.
     In addition to introducing the SMT-based planner, our contribution consists in de-
veloping several extensions of the underlying formalisms, which are discussed in the
next section together with the theoretical background of our approach. The rest of the
paper is organizes as follows. Sec. 3 introduces the main features of our solution, and
gives an overview of the system implementation. Finally, a summary and a comparison
between HarmonICS and PlanICS are provided in Sec. 4.


2      Theory behind HarmonICS
Our approach to automated composition of WSs is based on introducing a unified se-
mantics for functionalities offered by services. A service is understood as a function
which transforms a set of data into another set of data. The sets of data, i.e., inputs
and outputs of services, are described in terms taken from a “dictionary” of types, in-
troduced by an appropriate ontology. Each ontology follows the standard object model
with classes, objects as their instantiations, and attributes as their components. More
precisely, both the services and the items they operate on are organised into a multiple
inheritance hierarchy of types, the top of which is composed of the following classes:
Thing of no attributes and its descendants: Object, Service, and Trace.
    Below we explain the meaning of the branches rooted at the three descendant classes
of Thing mentioned above. An example fragment of the ontology tree is presented in
Fig. 1, where the solid arrows stand for the inheritance relation. We embed our expla-
nation in the context of medical services considered in the paper. Therefore, we use the
names from Fig. 1 as examples, but, in fact, all the nodes below Object, Service, and
Trace are domain-dependent, and even for a “fixed” domain they can vary depending
on the modelling assumed.
    The branch of classes rooted at Object introduces “types of beings”, Patient, Di-
agnosis, Therapy, that are necessary to specify what the services operate on, together
with the “features” of these beings expressed by their attributes. For example the class
Patient has the attributes First_name, Last_name, Address, Date_of_Birth, Diagnosis
etc. having a clear intuitive meaning.
    The branch of classes rooted at Service introduces types of services - Visit, Treat-
ment, Registration. The attributes of the class Service, inherited by all its descendants,
are as follows : in, out, inout, preCondition, and postCondition. The first three of them
are aimed at listing objects (classified by names and types, similarly to subprogam pa-
rameters) which, respectively, are required to execute the service (in), are produced by
 1
     Timed Automata with Discrete Data and Parametric Assignments
                    Fig. 1. A fragment of the ontology used by HarmonICS



the service (out), and are taken as an input and returned modified (inout). The aim of
preCondition and postCondition is to specify respectively the conditions which should
be satisfied by the “input” objects to have the service started and the conditions the “out-
put” object satisfy after the service has been executed. For example we can express that
the services of the type Visit modify an instance of Patient by placing p:Patient in the
inout list, and require a visit to result in a diagnosis by placing isSet(p.Diagnosis) in the
postCondition. The values of the attributes common for all the services of a given type
are specified in a special instance of the corresponding class, called an abstract service.
The concrete services of a given type (instances of the class representing this type) can
introduce their own extensions to the attributes above. For example, the concrete service
GeriatricianSmith of type GeriatricianVisit can require his patients to be older than 85
by extending the common preCondition by p.Date_of_Birth < "1927-12-31"). A more
detailed description of the above elements of ontologies can be found in [7].
    A new concept introduced to HarmonICS is shown as the third branch (from the left)
of the inheritance tree in Fig. 1, i.e., the class Trace and its descendants. The instances
of the above classes, called Traces, are “virtual products” (not corresponding to real-
world beings). The out list of each service contains exactly one element corresponding
to a trace, e.g. t:Trace. The main motivation behind Traces is a need for dealing with
imperative queries, when the user precisely points out to the types of services to be exe-
cuted, just like in most of the considered medical scenarios. Moreover, Traces enable to
associate the services types (and also their concrete instances) with attributes like price,
duration, location or quality, without affecting the existing structure of the language.
    The attributes of the class Trace are the following: level, block, serviceType, and
serviceName. The first two of them aim at storing an information about a position
of the service in the scenario generated, while the next two are used to identify the
service executed. For example, if the service GeriatricianSmith is the first of the sce-
nario, then the attributes of the trace t produced by this service are t.level=0, t.block=0,
t.serviceType="GeriatricianVisit", and t.ServiceName="GeriatricianSmith".
    Traces enable to express certain requirements on sequences of services, both on
the level of service descriptions and while specifying users goals. For example, Sur-
geonVisit can require seeing a general practicioner earlier by including x:Trace in its in
and x.ServiceType="GPVisit" in its preCondition. The descendants of Trace can intro-
duce additional information. For example, a class TimedTrace with the attributes start
and stop brings in time of the service execution. PriceTrace with the attribute price
provides information about the service price, while LocationTrace with the attribute
location introduces the information about the place where the service operates.

    The user specifies its goal in the form of a user query, which defines what he “pos-
seses” (the initial world) and what he “wants to posses” (the effect world), together
with these of their features that are of his interest, using names of the classes from
the branch rooted at Object and names of their attributes to this aim. For example,
the user John Gold can specify that possessing “nothing”, he wants to possess the ob-
ject p:Patient with p.First_name="John" and p.Last_name="Gold", which means that
he wants to become a patient. The goals can be also specified in terms of traces (i.e.,
names of the classes from the branch rooted at Trace). This enables to express that the
user wants the scenario generated to contain a service ofcertain type (e.g., by specifying
that the effect world should contain t1:Trace such that t1.ServiceType="SurgeonVisit")
or a service of a concrete provider (e.g., by extending the above requirement by adding
t1.ServiceName="SurgeonSmith"). Traces enable also to require a given ordering of ser-
vices in a plan (by the use of the level attributes), or a given ordering of groups of servces
(by the use of the attribute block) - for example, one can require the effect world to con-
tain t1,t2:Trace such that t1.ServiceType="GPVisit", t2.ServiceType="SurgeonVisit" and
t2.level