You are on page 1of 4

HealthCareClinic.

spfx

General Description
This model represents a portion of a Health Care Clinic that includes care for several types of sick
patients. The clinic consists of a registration area, basic and advanced evaluation rooms, a lab, and a
checkout area.

Patients enter the clinic through the entrance and go directly to the registration area. After they are
registered, they are sent to either the basic or advanced evaluation room, based on the type of care that
is required. Mild sick patients are sent for basic evaluation tasks, while sick patients are sent for more
advanced evaluation tasks. A portion of the sick patients require lab work to be completed. Once
patients are evaluated and treated, they are sent to the checkout area.

Detailed Description
Patient Arrivals

The PatientArrivals Source is where all patients arrive to the clinic. This Source uses the PatientTypes
data table to determine the percentage mix of patients into the system. The table includes the Patient
Type, as well as the Mix Percentage that is then used in the Row Number property reference
‘PatientTypes.MixPercentage.RandomRow’. The Patient Type, which is the entity name, is set as a ‘key’
column so that other tables can use this field for “relational” tables.

The patient flow through the clinic is determined by the entity’s Initial Sequence, which is defined in the
PatientFlow table. The Mild Sick patients will first go to the Registration area, then Basic Evaluation, and
then Checkout. The Sick patients will also first go to the Registration area, then Advanced Evaluation and
then Checkout. The PatientType column in this table is set up as a ‘Foreign Key’ column that points to
the ‘key’ PatientType column in the PatientTypes table (‘PatientTypes.PatientType’). Therefore only
those rows associated with a given patient type will be used for that patient type, even though all
‘sequence’ type information is shown within this single table.

Registration Area

The registration desk is a standard Server with Initial Capacity of ‘2’. The registration area process
includes several tasks that are specified within the Activity Tasks table, specifically the ‘Registration’
activities. These include FindPatientName which is a 5 minute delay and SendInfoToNurse which is a 10
minute delay.

Basic Evaluation

The basic evaluation process is also a standard Server with an initial Capacity of ‘Infinity’. The basic
evaluation process includes several tasks (also within the Activity Tasks table), specifically the
‘BasicEvaluation’ activities. These include GetVitals which is a 4 minute delay, EvalWithDoctor which is a
6 minute delay and then FollowupTask which is a 2 minute delay. These three tasks are used only by
mild sick type patients based on that patient’s sequence.
HealthCareClinic.spfx

Advanced Evaluation

The advanced evaluation process is also a standard Server with an initial Capacity of ‘Infinity’. The
process activities are defined within the Activity Tasks table, specifically the AdvancedEvaluation
activities. These include EvalWithDoctor which is a 15 minute delay and then SendLabWork process,
which only occurs for 70% of the patients (Branch Type is Probabilistic with Condition or Probability of
‘0.7’). These tasks, used only by sick type patients based on that patient’s sequence.

The SendLabWork task is not a simple delay task like the other tasks defined within the ActivityTasks
table. Instead, the ProcessType is defined as ‘Submodel’ which will create a SubmodelEntityType
‘LabWorkOrder’ that will be sent into the SubmodelStartingNode named ‘Input@LabWork’, which is the
entry point of the LabWork Server object. When the ProcessType is ‘Submodel’ (instead of Specific
Time), then a specified type of entity is created and sent into some other distinct part of the overall
model. The task is considered finished then once that entity has ended its processing (and is destroyed).
In this example, the LabWorkOrder entity is sent into the LabWork server, delays for 20 minutes and
then is done. Once that is completed, the task is complete and the sick patient (still physically located at
the AdvancedEval server) continues to the Checkout.

Checkout

The last activity for either of the patient types is Checkout, which is a Sink object. There is a simple
Transfer-In Time delay of ‘1 minute’ for paperwork activities.

Data Tables

As described above, this example uses a number of relational tables to store data that is used within the
objects of the Facility window.

The PatientTypes table includes an entity reference column and mix percentages used to create the
entities in the PatientArrivals Source object. The PatientType is then a ‘key’ and used within the
PatientFlow table. The Activities table also has a ‘key’ column that is used to define the various activities
in the system, including Registration, BasicEvaluation, AdvancedEvaluation and Checkout. Both of these
tables are then used in the PatientFlow table.

The PatientFlow table defines the entity sequences in the system, that is, the steps that each patient will
take as it moves through the clinic. Both the MildSick and Sick patient sequences are shown in this table,
with the Destination column, which is a SequenceDestination property type of column. In this table,
the PatientType column references the PatientTypes table, and the Activity column references the
Activities table. Note that all TransferNodes from one location to the next within the next in the model
indicate the Entity Destination Type as ‘By Sequence’.

The ActivityTasks table defines the data that is required in the Processing Tasks repeating properties
within a Server that is specified to have a Process Type of ‘Task Sequence’. In this example, the
HealthCareClinic.spfx

ActivityTask table includes all the data for 3 types of activities, including Registration, BasicEvaluation
and AdvancedEvaluation. If a property within the repeating property area of the Processing Tasks is not
specified, the property will take on a default value. Note that within the Processing Tasks of a Server,
there are many more properties than shown in the table. For example, Resource Requirements and Add-
On Process Triggers properties do not have table references, therefore, there are no resources or
additional process logic needed for any of the activities in this example. An enhancement could include a
resource being required at one or more of the Servers for a processing task. Additional column(s) would
then be required in the ActivityTasks table to ‘map’ into the corresponding resource fields.

** Note that this example is ‘in progress’. **


HealthCareClinic.spfx

You might also like