Infusion pumps are medical cyber physical systems used for controlled delivery of liquid drugs into a patient's body according to a physician's prescription (the set of instructions that governs infusion rates for a medication). These pumps may be classified into various kinds depending on their features, construction, and usage. Patient-Controlled Analgesia (PCA) pumps are generally equipped with a feature that allows patients to self-administer a controlled amount of drug (a patient-bolus), typically a pain medication. 

In an infusion system, the clinician operates the GPCA device, programs the prescription information, loads the drug, connects the device with the patient, and responds to exceptional conditions that occur during the therapy. The patient receives the medication from the device through an intravenous needle. The patient can self-administer prescribed amounts of additional drug by requesting a bolus, a request usually done by pressing a bolus request button accessible at the patient's bed. The hospital pharmacy database is a repository that stores manufacturer provided drug information (for example, upper limits on infusion rates for a specific drug). 

In short, the GPCA system has three primary functions:
(1) deliver the drug based on the prescribed schedule and patient requests, 
(2) prevent hazards that may arise during its usage, and 
(3) monitor and notify the clinician of any exceptional conditions encountered. 

This package contains a model of the alarm management behavior of the software of an infusion pump, a version of the model with read faults, a set of seeded mutants, and associated test inputs used for model-based testing research. 

For more information on this model, please see: Anitha Murugesan, Michael Whalen, Sanjai Rayadurgam and Mats Heimdahl. Compositional Verification of a Medical Device System. Accepted at High Integrity Language Technology Accepted at High Integrity Language Technology, Pittsburg, Nov 2013
(and the included papers in the /docs folder)

This package contains the following data:

/docs
	Papers where these models are described or used.
/models
	/stateflow
		The original model, developed in the Stateflow notation.
		/faulty
		A version of the model with real faults (see faults.docx in the docs folder)
	/lustre
		Model translated into the text-based Lustre modeling language.
		/faulty
		/mutants
		Mutated versions of the original model, used for fault-finding experiments.
/tests
	Test cases that satisfy various structural coverage metrics and 
	randomly-generated test cases.
	Format is:
	input1,input2,...,inputN
	value_test1_step1,value_test1_step1,...,value_test1_step1
	...

For questions regarding this data, please contact:
- Gregory Gay (greg@greggay.com)
- Anitha Murugesan (anitha@cs.umn.edu)
- Sanjai Rayadurgam (rsanjai@cs.umn.edu)
- Mats Heimdahl (heimdahl@cs.umn.edu)

This model has been used for testing purposes in the following publications:
[1] Gregory Gay, Matt Staats, Michael Whalen, Mats P.E. Heimdahl. Automated Oracle Data Selection Support. To appear, IEEE Transactions on Software Engineering, 2015.
[2] Gregory Gay, Matt Staats, Michael Whalen, Mats P.E. Heimdahl. The Risks of Coverage-Directed Test Case Generation. To appear, IEEE Transactions on Software Engineering, 2015. 
[3] Anitha Murugesan, Michael Whalen, Neha Rungta, Oksana Tkachuk, Suzette Person, Mats Heimdahl and Dongjiang You. Are We There Yet? Determining the Adequacy of Formalized Requirements and Test Suites. Accepted at NASA Formal Methods Symposium, Parsedena, CA, April 2015.


Additionally, this model is described or used for other purposed in:
[1] Anitha Murugesan, Michael Whalen, Sanjai Rayadurgam, John Komp, Lian Duan, Mats Heimdahl, Baek-Gyu Kim, Oleg Sokolsky and Insup Lee.From Requirements to Code: Model Based Development of a Medical Cyber Physical System. Accepted at Symposium on Foundations of Health Information Engineering and Systems (FHIES) and the Software Engineering in Healthcare (SEHC) Workshop, Washington DC, July 2014.
[2] Michael Whalen, Anitha Murugesan, Sanjai Rayadurgam, and Mats Heimdahl Structuring Simulink Models for Verification and Reuse. Accepted at Sixth International Workshop on Modelling in Software Engineering, India, May 2014.
[3] Anitha Murugesan, Oleg Sokolsky ,Sanjai Rayadurgam, Michael Whalen, Mats Heimdahl and Insup Lee Linking abstract analysis to concrete design: A hierarchical approach to verify medical CPS safety. Accepted at 5th International Conference on Cyber-Physical Systems, Berlin, Germany, April 2014.
[4] Anitha Murugesan, Michael Whalen, Sanjai Rayadurgam and Mats Heimdahl. Compositional Verification of a Medical Device System. Accepted at High Integrity Language Technology Accepted at High Integrity Language Technology, Pittsburg, Nov 2013. Outstanding Paper Award.
[5] Anitha Murugesan, Sanjai Rayadurgam, Mats Heimdahl Using Models to Address Challenges in Specifying Requirements for Medical Cyber-Physical Systems. Accepted at Medical Cyber Physical Systems Workshop, Philadelphia, Pennsylvania, Apr 2013.
[6] Anitha Murugesan, Sanjai Rayadurgam, Mats Heimdahl. Modes, Features, and State-Based Modeling for Clarity and Flexibility. Accepted at Workshop on Modeling in Software Engineering, San Francisco, California, May 2013.
[7] Michael W. Whalen, Andrew Gacek, Darren Cofer, Anitha Murugesan, Mats P. E. Heimdahl and Sanjai Rayadurgam.Your What is My How: Iteration and Hierarchy in System Design Accepted at IEEE Software Journal, Nov 2012.
