EUSA3: Usage Support Agent Behaviour External View
Store Information in Database
If the Usage Support Agent receives a communication that
medicine has been taken, then the agent stores this information in
the patient database.
∀t:TIME, γ:TRACE, M:MEDICINE state(γ, t, input(USA)) |=
communicated_from_to(medicine_used(M),
medicine_box_agent,
usage_support_agent) &
⇒ ∃t’:TIME t ≤ t’≤ t + e [ state(γ, t’, output(USA)) |=
performing_in(store_usage(M, t),
patient_database) ]
EUSA4: Usage Support Agent Behaviour External View
Store Send Early Warning Message to Patient
If the Usage Support Agent receives a communication that the
patient attempted to take medicine too early, then the agent sends
an SMS to the patient cell phone.
∀t:TIME, γ:TRACE, M:MEDICINE state(γ, t, input(USA)) |=
communicated_from_to(too_early_intake_intention,
medicine_box_agent, usage_support_agent) &
⇒ ∃t’:TIME t ≤ t’≤ t + e [ state(γ, t’, output(USA)) |=
communication_from_to(put_medicine_back_and_wait_for_signal,
usage_support_agent, patient_cell_phone) ]
EUSA5: Usage Support Agent Behaviour External View Send
Approximated Concentration to Medicine Box Agent
If the history of medicine usage implies a certain medicine level,
then the Usage Support Agent communicates this value to the
Medicine Box Agent.
∀t:TIME, γ:TRACE, M:MEDICINE, C:REAL
history_implied_value(γ, input(USA), t, M, C) ⇒
∃t’ t≤ t’≤ t+e & state(γ, t’, output(USA)) |=
communication_from_to(medicine_level(M,
C),
usage_support_agent, medicine_box_agent)
Besides the Usage Support Agent, the Medicine Box
Agent (MBA) plays an important role within the
system as well. From an external perspective, the
MBA has three behavioural properties. The first
(EMBA1) expresses that the MBA should
communicate to the Usage Support Agent that
medicine has been taken by the patient. This only
occurs when the medicine is not taken too early.
Properties EMBA2 and EMBA3 concern the
communication in case of an early intake. First of
all, the MBA should sound a beep (EMBA2), and
furthermore, the MBA should communicate this
information to the USA (EMBA3). Again, a
parameter e is used to specify the maximum delay
for these properties. Note that these properties are
later referred to as EMBA, which is the conjunction
of the three properties specified below.
EMBA1: Medicine Box Agent Behaviour External View
Communicate Usage Non-Early Intake
When the medicine box agent observes medicine is taken from
position X,Y in the box and the medicine is of type M, and the
medicine level of M communicated to the agent is C, and
furthermore, the medicine level plus a dose does not exceed the
overall maximum, then the medicine box agent outputs medicine
has been taken to the Usage Support Agent.
∀γ:TRACE, t:TIME, X, Y:INTEGER, C:REAL, M:MEDICINE
state(γ, t, input(medicine_box_agent) |=
observed_result_from(medicine_taken_from_position(
x_y_coordinate(X, Y)), medicine_box) &
state(γ, t, input(medicine_box_agent) |=
communicated_from_to(medicine_level(M, C),
usage_support_agent, medicine_box_agent) &
C+DOSE <= MAX_MEDICINE_LEVEL &
medicine_at_location(X, Y, M)
⇒ ∃t’:TIME t ≤ t’≤ t + e [ state(γ, t’, output(medicine_box_agent) |=
communication_from_to(medicine_used(M),
medicine_box_agent,
usage_support_agent) ]
EMBA2: Medicine Box Agent Behaviour External View
Communicate Beep when Early Intake
When the medicine box agent observes medicine is taken from
position X,Y in the box and the medicine is of type M, and the
medicine level of M communicated to the agent is C, and
furthermore, the medicine level plus a dose exceeds the overall
maximum, then the medicine box agent outputs a beep to the
Patient.
∀γ:TRACE, t:TIME, X, Y:INTEGER, C:REAL, M:MEDICINE
state(γ, t, input(medicine_box_agent) |=
observed_result_from(medicine_taken_from_position(
x_y_coordinate(X, Y)), medicine_box) &
state(γ, t, input(medicine_box_agent) |=
communicated_from_to(medicine_level(M, C),
usage_support_agent, medicine_box_agent) &
C+DOSE > MAX_MEDICINE_LEVEL &
medicine_at_location(X, Y, hiv_slowers)
⇒ ∃t’:TIME t ≤ t’≤ t + e [state(γ, t’, output(medicine_box_agent) |=
communication_from_to(sound_beep, medicine_box_agent,
patient) ]
EMBA3: Medicine Box Agent Behaviour External View
Communicate Early Intake to Usage Support Agent
When the medicine box agent observes medicine is taken from
position X,Y in the box and the medicine is of type M, and the
medicine level of M communicated to the agent is C, and
furthermore, the medicine level plus a dose exceeds the overall
maximum, then the medicine box agent outputs a communication
concerning this early intake intention to the Usage Support Agent.
∀γ:TRACE, t:TIME, X, Y:INTEGER, C:REAL, M:MEDICINE
state(γ, t, input(medicine_box_agent) |=
observed_result_from(medicine_taken_from_position(
x_y_coordinate(X, Y)), medicine_box) &
state(γ, t, input(medicine_box_agent) |=
communicated_from_to(medicine_level(M, C),
usage_support_agent, medicine_box_agent) &
C+DOSE > MAX_MEDICINE_LEVEL &
medicine_at_location(X, Y, hiv_slowers)
⇒ ∃t’:TIME t ≤ t’≤ t + e [ state(γ, t’, output(medicine_box_agent) |=
communication_from_to(too_early_intake_intention,
medicine_box_agent, usage_support_agent) ]
Furthermore, a number of properties are specified
for the external behavior of the other components.
These properties include basic forwarding of
information by the patient cell phone (PCP), the
doctor cell phone (DCP), communication between
various communicating components (CP).
Furthermore, it includes the specification of the
observation results of performing actions in the
medicine box (EMD), the storage of information in
the database (PDP), and the transfer of those actions
and observations (WP).
Finally, in order for such external behavioral
properties to establish the global property, certain
assumptions need to be made concerning the
behavior of the doctor and of the patient. For the
proof, the minimal behavior of the patient is used.
This minimal behavior is specified by stating that
the patient should at least respond to the doctor
FORMAL ANALYSIS OF INTELLIGENT AGENTS FOR MODEL-BASED MEDICINE USAGE MANAGEMENT
153