\File{parameter.c},{11:45},{Mar 18 1991} \L{\LB{\C{}\/* Copyright 1988 Timothy L. Davis}} \L{\LB{ *}} \L{\LB{ * \$Source: \/mit\/hst\/src\/data\/RCS\/parameter.c,v \$}} \L{\LB{ * \$Log:}\Tab{16}{parameter.c,v \$}} \L{\LB{ * Revision 2.2 90\/08\/18 18:31:24 tldavis}} \L{\LB{ * Added ref to .h file.}} \L{\LB{ * }} \L{\LB{ * Revision 2.1 90\/08\/07 15:49:45 tldavis}} \L{\LB{ * Fixed compiler warnings.}} \L{\LB{ * }} \L{\LB{ * Revision 2.0 90\/08\/06 17:50:56 tldavis}} \L{\LB{ * Final X11R3 version.}} \L{\LB{ * }} \L{\LB{ * Revision 1.3 90\/08\/06 17:10:24 tldavis}} \L{\LB{ * No changes.}} \L{\LB{ * }} \L{\LB{ * Revision 1.2 88\/08\/16 18:11:27 tldavis}} \L{\LB{ * *** empty log message ***}} \L{\LB{ * }} \L{\LB{ *\/\CE{}}} \L{\LB{\K{\#ifndef} lint}} \L{\LB{\K{static} \K{char} }} \L{\LB{*rcs = \S{}\"\$Header: \/mit\/hst\/src\/data\/RCS\/parameter.c,v 2.2 90\/08\/18 18:31:24 tldavis Exp Locker: tldavis \$\"\SE{};}} \L{\LB{\K{\#endif}}\Tab{8}{lint}} \L{\LB{}} \L{\LB{\K{\#include} \}} \L{\LB{\K{\#include} \}} \L{\LB{\K{\#include} \S{}\"..\/sim\/CVDefs.h\"\SE{}}} \L{\LB{\K{extern} \K{char} *malloc(), *realloc();}} \L{\LB{\C{}\/* }} \L{\LB{ * Private Data}} \L{\LB{ *\/\CE{}}} \L{\LB{}} \L{\LB{\K{static} VarData *vars[15][6];}} \L{\LB{\K{static} \K{int} varCount[15][6];}} \L{\LB{SIMULATION savedsim[2];}} \L{\LB{}} \L{\LB{\K{static} \K{char} *VarUnits[] = }} \L{\LB{\{ \C{}\/*** depends on type defines in cvdefs.h ***\/\CE{}}} \L{\LB{ \S{}\"cm\/sec\"\SE{},}} \L{\LB{ \S{}\"ml\/sec\"\SE{},}} \L{\LB{ \S{}\"mmHg\"\SE{},}} \L{\LB{ \S{}\"ml\"\SE{},}} \L{\LB{ \S{}\"ml\/mmHg\"\SE{},}} \L{\LB{ \S{}\"ml\/mmHg\"\SE{},}} \L{\LB{ \S{}\"ml\/mmHg\"\SE{},}} \L{\LB{ \S{}\"ml\"\SE{},}} \L{\LB{ \S{}\"mmHg*sec\/ml\"\SE{},}} \L{\LB{ \S{}\"beats\/min\"\SE{},}} \L{\LB{ \S{}\"mmHg\"\SE{},}} \L{\LB{\};}} \L{\LB{}} \L{\LB{\C{}\/*************************************}} \L{\LB{ *}} \L{\LB{ * Public Routines}} \L{\LB{ *}} \L{\LB{ *************************************\/\CE{}}} \L{\LB{}} \L{\LB{\C{}\/*PUBLIC*\/\CE{}}} \L{\LB{VarData *get\_vardata(place, type)}} \L{\LB{\K{int} place, type;}} \L{\LB{\{}} \L{\LB{ VarData *p;}} \L{\LB{ \K{int} i;}} \L{\LB{}} \L{\LB{ \K{if} (place \< 0 \|\| type \< 0) \K{return}(NULL);}} \L{\LB{ \K{if} (type == TIME) place = SYSTEM;}} \L{\LB{ \K{for} (i=0; i\<7; i++) \{}} \L{\LB{ p = vars[place][i];}} \L{\LB{ \K{if} (p != NULL)}} \L{\LB{ \K{while} (p\-\>var != ENDVAR) \{}} \L{\LB{}\Tab{8}{\K{if} (p\-\>var == type)}} \L{\LB{}\Tab{8}{ \K{return}(p);}} \L{\LB{}\Tab{8}{\K{else} p++;}} \L{\LB{ \}}} \L{\LB{ \}}} \L{\LB{ \K{return}(NULL); \C{}\/*no such variable*\/\CE{}}} \L{\LB{\}}} \L{\LB{}} \L{\LB{\C{}\/*PUBLIC*\/\CE{}}} \L{\LB{\K{int} *get\_varlist(place, device, dep)}} \L{\LB{\K{int} place, device, dep;}} \L{\LB{\{}} \L{\LB{ \K{int} *l, n, o;}} \L{\LB{ VarData *p;}} \L{\LB{ \K{if} (place \< 0 \|\| device \< 0 \|\| place \> 8 \|\| device \> 6) \{}} \L{\LB{ printf(\S{}\"Error: get\_varlist: illegal parameter.\!n\"\SE{});}} \L{\LB{ exit(1);}} \L{\LB{ \}}} \L{\LB{ l = (\K{int} *) malloc((\K{unsigned})(5*\K{sizeof}(\K{int})));}} \L{\LB{ p = vars[place][device];}} \L{\LB{ n = o = 0;}} \L{\LB{ \K{while} (p \&\& (p+o)\-\>var != ENDVAR) \{}} \L{\LB{ \K{if} ((p+o)\-\>dep == dep) l[n++] = (p+o)\-\>var;}} \L{\LB{ o++;}} \L{\LB{ \}}} \L{\LB{ l[n] = ENDVAR;}} \L{\LB{ \K{return}(l);}} \L{\LB{\}}} \L{\LB{}} \L{\LB{\C{}\/*PUBLIC*\/\CE{}}} \L{\LB{\K{int} var\_in\_bounds(place, type, value)}} \L{\LB{\K{int} type, place;}} \L{\LB{\K{double} value;}} \L{\LB{\{}} \L{\LB{ VarData *p;}} \L{\LB{ \K{int} i;}} \L{\LB{}} \L{\LB{ \K{for} (i = 0; i\<7; i++) \{}} \L{\LB{ p = vars[place][i];}} \L{\LB{ \K{if} (p != NULL)}} \L{\LB{ \K{while} (p\-\>var != ENDVAR)}} \L{\LB{}\Tab{8}{\K{if} (p\-\>var == type) \{}} \L{\LB{}\Tab{8}{ \K{if} (p\-\>min \<= value \&\& p\-\>max \>= value) \{}} \L{\LB{}\Tab{8}{ \K{return}(1);}} \L{\LB{}\Tab{8}{ \} \K{else} \{ }} \L{\LB{}\Tab{8}{ \K{return}(0);}} \L{\LB{}\Tab{8}{ \}}} \L{\LB{}\Tab{8}{\} \K{else} p++;}} \L{\LB{ \}}} \L{\LB{ \K{return}(0); \C{}\/* no such variable exists *\/\CE{}}} \L{\LB{\}}} \L{\LB{}} \L{\LB{\C{}\/*PUBLIC*\/\CE{}}} \L{\LB{\K{void} LoadParameterData(path)}} \L{\LB{\K{char} *path;}} \L{\LB{\{}} \L{\LB{ FILE *fp;}} \L{\LB{ VarData *vdPtr;}} \L{\LB{ \K{int} c;}} \L{\LB{ \K{char} place[80], dev[80], type[80], dep[80], name[80];}} \L{\LB{ \K{double} def, min, max, gmin, gmax;}} \L{\LB{ \K{int} placeCode = \-1, devCode = \-1, typeCode = \-1, depCode = \-1;}} \L{\LB{}} \L{\LB{ \K{if} ((fp = fopen(path, \S{}\"r\"\SE{})) == NULL) \{}} \L{\LB{ fprintf(stderr, \S{}\"Can\'t open parameter file \%s.\!n\"\SE{},path);}} \L{\LB{ exit(1);}} \L{\LB{ \}}} \L{\LB{ \{}} \L{\LB{ \K{register} \K{int} x, y;}} \L{\LB{ \K{for} (x=0; x\<15; x++)}} \L{\LB{ \K{for} (y=0; y\<6; y++)}} \L{\LB{}\Tab{8}{\{ \K{if} (vars[x][y]) free(vars[x][y]);}} \L{\LB{}\Tab{8}{ vars[x][y] = NULL;}} \L{\LB{}\Tab{8}{ varCount[x][y] = 0;}} \L{\LB{}\Tab{8}{\}}} \L{\LB{ \}}} \L{\LB{ \K{while} ((c=fgetc(fp)) != EOF) \{}} \L{\LB{ \K{if} (c==\S{}\'\#\'\SE{}) \{}} \L{\LB{ \K{while} ((c=fgetc(fp)) != \S{}\'\!n\'\SE{} \&\& c != EOF) }} \L{\LB{}\Tab{8}{;}} \L{\LB{ \} \K{else} \{}} \L{\LB{ c = fscanf(fp,\S{}\":\%[\^:]:\%[\^:]:\%[\^:]:\%[\^:]:\%lf :\%lf :\%lf :\%lf :\%lf :\%[\^\!n]\"\SE{},}} \L{\LB{}\Tab{16}{ place,dev, type, dep, \&def,\&min,\&max,\&gmin,\&gmax, name);}} \L{\LB{ \K{if} (c == 0) \K{continue};}} \L{\LB{ \K{else} \K{if} (c == EOF) \K{break};}} \L{\LB{ \K{else} \K{if} (c \< 10) \{}} \L{\LB{}\Tab{8}{fprintf(stderr, \S{}\"Bad database line: \%s :\%s :\%s :\%s: ...etc... :\%s\!n\"\SE{},}} \L{\LB{}\Tab{16}{place, dev, type, dep, name);}} \L{\LB{}\Tab{8}{\K{continue};}} \L{\LB{ \}}} \L{\LB{ \K{if} (strncmp(place, \S{}\"l\"\SE{}, 1) == 0) placeCode = LV;}} \L{\LB{ \K{else} \K{if} (strncmp(place, \S{}\"r\"\SE{}, 1) == 0) placeCode = RV;}} \L{\LB{ \K{else} \K{if} (strncmp(place, \S{}\"a\"\SE{}, 1) == 0) placeCode = SA;}} \L{\LB{ \K{else} \K{if} (strncmp(place, \S{}\"v\"\SE{}, 1) == 0) placeCode = SV;}} \L{\LB{ \K{else} \K{if} (strncmp(place, \S{}\"pa\"\SE{},2) == 0) placeCode = PA;}} \L{\LB{ \K{else} \K{if} (strncmp(place, \S{}\"pv\"\SE{},2) == 0) placeCode = PV;}} \L{\LB{ \K{else} \K{if} (strncmp(place, \S{}\"micro\"\SE{},1)==0) placeCode = SC;}} \L{\LB{ \K{else} \K{if} (strncmp(place, \S{}\"pmicro\"\SE{},2)==0)placeCode = PC;}} \L{\LB{ \K{else} \K{if} (strncmp(place,\S{}\"sys\"\SE{},3) == 0) placeCode = SYSTEM;}} \L{\LB{ \K{else} \{fprintf(stderr,\S{}\"Bad Place \%s in db \%s.\!n\"\SE{}, place, path); exit(1);\}}} \L{\LB{}} \L{\LB{ \K{if} (strncmp(dev, \S{}\"cap\"\SE{}, 3) == 0) devCode = CAPACITOR;}} \L{\LB{ \K{else} \K{if} (strncmp(dev, \S{}\"res\"\SE{}, 3) == 0) devCode = RESISTOR;}} \L{\LB{ \K{else} \K{if} (strncmp(dev, \S{}\"vcap\"\SE{},4) == 0) devCode = VARCAPACITOR;}} \L{\LB{ \K{else} \K{if} (strncmp(dev, \S{}\"system\"\SE{},6) == 0) devCode = SYSTEMOR;}} \L{\LB{ \K{else} \{fprintf(stderr,\S{}\"Bad Device \%s in db \%s.\!n\"\SE{}, dev, path); exit(1);\}}} \L{\LB{}} \L{\LB{ \K{if} (strncmp(type, \S{}\"csys\"\SE{}, 4) == 0) typeCode = CAPACITANCE\_SYS;}} \L{\LB{ \K{else} \K{if} (strncmp(type, \S{}\"cdias\"\SE{}, 4) == 0) typeCode = CAPACITANCE\_DIAS;}} \L{\LB{ \K{else} \K{if} (strncmp(type, \S{}\"cap\"\SE{}, 3) == 0) typeCode = CAPACITANCE;}} \L{\LB{ \K{else} \K{if} (strncmp(type, \S{}\"zvol\"\SE{},4) == 0) typeCode = ZPVOLUME;}} \L{\LB{ \K{else} \K{if} (strncmp(type, \S{}\"res\"\SE{}, 3) == 0) typeCode = RESISTANCE;}} \L{\LB{ \K{else} \K{if} (strncmp(type, \S{}\"hr\"\SE{}, 2) == 0) typeCode = HEARTRATE;}} \L{\LB{ \K{else} \K{if} (strncmp(type, \S{}\"pres\"\SE{}, 4) == 0) typeCode = PRESSURE;}} \L{\LB{ \K{else} \K{if} (strncmp(type, \S{}\"vol\"\SE{}, 3) == 0) typeCode = VOLUME;}} \L{\LB{ \K{else} \K{if} (strncmp(type, \S{}\"flow\"\SE{}, 4) == 0) typeCode = FLOW;}} \L{\LB{ \K{else} \K{if} (strncmp(type, \S{}\"time\"\SE{}, 4) == 0) typeCode = TIME;}} \L{\LB{ \K{else} \{fprintf(stderr,\S{}\"Bad Type \%s in db \%s.\!n\"\SE{}, type, path); exit(1);\}}} \L{\LB{}} \L{\LB{ \K{if} (dep[0] == \S{}\'i\'\SE{}) depCode = INDEPENDENT;}} \L{\LB{ \K{else} \K{if} (dep[0] == \S{}\'d\'\SE{}) depCode = DEPENDENT;}} \L{\LB{ \K{else} \{fprintf(stderr, \S{}\"Bad Dep. flag \%s in db \%s.\!n\"\SE{},dep,path); exit(1);\}}} \L{\LB{}} \L{\LB{ \K{if} (vars[placeCode][devCode] == NULL) \{}} \L{\LB{}\Tab{8}{vars[placeCode][devCode] = }} \L{\LB{}\Tab{8}{ (VarData *)malloc((\K{unsigned})(2*\K{sizeof}(VarData)));}} \L{\LB{}\Tab{8}{varCount[placeCode][devCode]++;}} \L{\LB{ \} \K{else} \{}} \L{\LB{}\Tab{8}{vars[placeCode][devCode] = }} \L{\LB{}\Tab{8}{ (VarData *)realloc((\K{char} *)vars[placeCode][devCode],}} \L{\LB{}\Tab{24}{ (\K{unsigned})((++varCount[placeCode][devCode]+1)}} \L{\LB{}\Tab{24}{ *\K{sizeof}(VarData)));}} \L{\LB{ \}}} \L{\LB{ vdPtr = vars[placeCode][devCode] + (varCount[placeCode][devCode]\-1);}} \L{\LB{ vdPtr\-\>var = typeCode;}} \L{\LB{ vdPtr\-\>dep = depCode;}} \L{\LB{ vdPtr\-\>normal = def;}} \L{\LB{ vdPtr\-\>min = min;}} \L{\LB{ vdPtr\-\>max = max;}} \L{\LB{ vdPtr\-\>gmin = gmin;}} \L{\LB{ vdPtr\-\>gmax = gmax;}} \L{\LB{ vdPtr\-\>name = malloc((\K{unsigned})((strlen(name)+1)*\K{sizeof}(\K{char})));}} \L{\LB{ strcpy(vdPtr\-\>name, name);}} \L{\LB{ vdPtr\-\>units = VarUnits[typeCode];}} \L{\LB{ (vdPtr+1)\-\>var = ENDVAR;}} \L{\LB{ \}}} \L{\LB{ \}}} \L{\LB{ \C{}\/* Set the NORMAL set: *\/\CE{}}} \L{\LB{ savedsim[1].Vl0 = get\_vardata(LV,ZPVOLUME)\-\>normal;}} \L{\LB{ savedsim[1].Vr0 = get\_vardata(RV,ZPVOLUME)\-\>normal;}} \L{\LB{ savedsim[1].Va0 = get\_vardata(SA,ZPVOLUME)\-\>normal;}} \L{\LB{ savedsim[1].Vv0 = get\_vardata(SV,ZPVOLUME)\-\>normal;}} \L{\LB{ savedsim[1].VPa0 = get\_vardata(PA,ZPVOLUME)\-\>normal;}} \L{\LB{ savedsim[1].VPv0 = get\_vardata(PV,ZPVOLUME)\-\>normal;}} \L{\LB{ savedsim[1].bv = get\_vardata(SYSTEM,VOLUME)\-\>normal;}} \L{\LB{ savedsim[1].Ra = get\_vardata(SC,RESISTANCE)\-\>normal;}} \L{\LB{ savedsim[1].Rv = get\_vardata(SV,RESISTANCE)\-\>normal;}} \L{\LB{ savedsim[1].RPv = get\_vardata(PC,RESISTANCE)\-\>normal;}} \L{\LB{ savedsim[1].Rli = get\_vardata(PV,RESISTANCE)\-\>normal;}} \L{\LB{ savedsim[1].Rlo = get\_vardata(LV,RESISTANCE)\-\>normal;}} \L{\LB{ savedsim[1].Rro = get\_vardata(RV,RESISTANCE)\-\>normal;}} \L{\LB{ savedsim[1].Ca = get\_vardata(SA,CAPACITANCE)\-\>normal;}} \L{\LB{ savedsim[1].Cv = get\_vardata(SV,CAPACITANCE)\-\>normal;}} \L{\LB{ savedsim[1].CPa = get\_vardata(PA,CAPACITANCE)\-\>normal;}} \L{\LB{ savedsim[1].CPv = get\_vardata(PV,CAPACITANCE)\-\>normal;}} \L{\LB{ savedsim[1].Cldias = get\_vardata(LV,CAPACITANCE\_DIAS)\-\>normal;}} \L{\LB{ savedsim[1].Clsys = get\_vardata(LV,CAPACITANCE\_SYS)\-\>normal;}} \L{\LB{ savedsim[1].Crdias = get\_vardata(RV,CAPACITANCE\_DIAS)\-\>normal;}} \L{\LB{ savedsim[1].Crsys = get\_vardata(RV,CAPACITANCE\_SYS)\-\>normal;}} \L{\LB{ savedsim[1].pth = get\_vardata(SYSTEM,PRESSURE)\-\>normal;}} \L{\LB{ savedsim[1].hr = get\_vardata(SYSTEM,HEARTRATE)\-\>normal;}} \L{\LB{}} \L{\LB{ \C{}\/* Set the CURRENT set (same as normal for now): *\/\CE{}}} \L{\LB{ savedsim[0].Vl0 = get\_vardata(LV,ZPVOLUME)\-\>normal;}} \L{\LB{ savedsim[0].Vr0 = get\_vardata(RV,ZPVOLUME)\-\>normal;}} \L{\LB{ savedsim[0].Va0 = get\_vardata(SA,ZPVOLUME)\-\>normal;}} \L{\LB{ savedsim[0].Vv0 = get\_vardata(SV,ZPVOLUME)\-\>normal;}} \L{\LB{ savedsim[0].VPa0 = get\_vardata(PA,ZPVOLUME)\-\>normal;}} \L{\LB{ savedsim[0].VPv0 = get\_vardata(PV,ZPVOLUME)\-\>normal;}} \L{\LB{ savedsim[0].bv = get\_vardata(SYSTEM,VOLUME)\-\>normal;}} \L{\LB{ savedsim[0].Ra = get\_vardata(SC,RESISTANCE)\-\>normal;}} \L{\LB{ savedsim[0].Rv = get\_vardata(SV,RESISTANCE)\-\>normal;}} \L{\LB{ savedsim[0].RPv = get\_vardata(PC,RESISTANCE)\-\>normal;}} \L{\LB{ savedsim[0].Rli = get\_vardata(PV,RESISTANCE)\-\>normal;}} \L{\LB{ savedsim[0].Rlo = get\_vardata(LV,RESISTANCE)\-\>normal;}} \L{\LB{ savedsim[0].Rro = get\_vardata(RV,RESISTANCE)\-\>normal;}} \L{\LB{ savedsim[0].Ca = get\_vardata(SA,CAPACITANCE)\-\>normal;}} \L{\LB{ savedsim[0].Cv = get\_vardata(SV,CAPACITANCE)\-\>normal;}} \L{\LB{ savedsim[0].CPa = get\_vardata(PA,CAPACITANCE)\-\>normal;}} \L{\LB{ savedsim[0].CPv = get\_vardata(PV,CAPACITANCE)\-\>normal;}} \L{\LB{ savedsim[0].Cldias = get\_vardata(LV,CAPACITANCE\_DIAS)\-\>normal;}} \L{\LB{ savedsim[0].Clsys = get\_vardata(LV,CAPACITANCE\_SYS)\-\>normal;}} \L{\LB{ savedsim[0].Crdias = get\_vardata(RV,CAPACITANCE\_DIAS)\-\>normal;}} \L{\LB{ savedsim[0].Crsys = get\_vardata(RV,CAPACITANCE\_SYS)\-\>normal;}} \L{\LB{ savedsim[0].pth = get\_vardata(SYSTEM,PRESSURE)\-\>normal;}} \L{\LB{ savedsim[0].hr = get\_vardata(SYSTEM,HEARTRATE)\-\>normal;}} \L{\LB{\}}} \L{\LB{}} \L{\LB{}} \L{\LB{}} \L{\LB{\C{}\/***** OLD STUFF BELOW HERE ******\/\CE{}}} \L{\LB{ }} \L{\LB{\K{\#ifdef} NOTDEF}} \L{\LB{\C{}\/* The following are not used currently *\/\CE{}}} \L{\LB{\K{static} \K{struct} cvstatus cvstat[] = \{}} \L{\LB{ \{ \S{}\"Current Patient\"\SE{},}} \L{\LB{}\Tab{8}{ NVL0,NVR0,NVA0,NVV0,NVPA0,NVPV0,NBV,}} \L{\LB{}\Tab{8}{ NRA,NRV,NRPV,NRLI,NRLO,NRRO,}} \L{\LB{}\Tab{8}{ NCA,NCV,NCPA,NCPV,NCLDIAS,NCLSYS,NCRDIAS,NCRSYS,}} \L{\LB{}\Tab{8}{ NPTH,NHR\},}} \L{\LB{}\Tab{8}{\{ \S{}\"Normal\"\SE{},}} \L{\LB{}\Tab{8}{ NVL0,NVR0,NVA0,NVV0,NVPA0,NVPV0,NBV,}} \L{\LB{}\Tab{8}{ NRA,NRV,NRPV,NRLI,NRLO,NRRO,}} \L{\LB{}\Tab{8}{ NCA,NCV,NCPA,NCPV,NCLDIAS,NCLSYS,NCRDIAS,NCRSYS,}} \L{\LB{}\Tab{8}{ NPTH,NHR\},}} \L{\LB{}\Tab{8}{\{ \S{}\"Aging\"\SE{},}} \L{\LB{}\Tab{8}{ NVL0,NVR0,NVA0,NVV0,NVPA0,NVPV0,NBV,}} \L{\LB{}\Tab{8}{ NRA,NRV,NRPV,NRLI,NRLO,NRRO,}} \L{\LB{}\Tab{8}{ 0.8,NCV,NCPA,NCPV,NCLDIAS,NCLSYS,NCRDIAS,NCRSYS,}} \L{\LB{}\Tab{8}{ NPTH,NHR\},}} \L{\LB{}\Tab{8}{\{ \S{}\"Chronic Hypertension\"\SE{},}} \L{\LB{}\Tab{8}{ NVL0,NVR0,NVA0,NVV0,NVPA0,NVPV0,NBV,}} \L{\LB{}\Tab{8}{ 1.6,NRV,NRPV,NRLI,NRLO,NRRO,}} \L{\LB{}\Tab{8}{ 1.0,NCV,NCPA,NCPV,NCLDIAS,NCLSYS,NCRDIAS,NCRSYS,}} \L{\LB{}\Tab{8}{ NPTH,NHR\},}} \L{\LB{}\Tab{8}{\{ \S{}\"Aortic Stenosis\"\SE{},}} \L{\LB{}\Tab{8}{ NVL0,NVR0,NVA0,NVV0,NVPA0,NVPV0,NBV,}} \L{\LB{}\Tab{8}{ NRA,NRV,NRPV,NRLI,0.22,NRRO,}} \L{\LB{}\Tab{8}{ NCA,NCV,NCPA,NCPV,NCLDIAS,NCLSYS,NCRDIAS,NCRSYS,}} \L{\LB{}\Tab{8}{ NPTH,NHR\},}} \L{\LB{}\Tab{8}{\{ \S{}\"Hypovolemic Shock\"\SE{},}} \L{\LB{}\Tab{8}{ NVL0,NVR0,NVA0,NVV0,NVPA0,NVPV0,4500.0,}} \L{\LB{}\Tab{8}{ NRA,NRV,NRPV,NRLI,NRLO,NRRO,}} \L{\LB{}\Tab{8}{ NCA,NCV,NCPA,NCPV,NCLDIAS,NCLSYS,NCRDIAS,NCRSYS,}} \L{\LB{}\Tab{8}{ NPTH,NHR\},}} \L{\LB{}\Tab{8}{\{ \S{}\"Cardiogenic Shock\"\SE{},}} \L{\LB{}\Tab{8}{ NVL0,NVR0,NVA0,NVV0,NVPA0,NVPV0,NBV,}} \L{\LB{}\Tab{8}{ NRA,NRV,NRPV,NRLI,NRLO,NRRO,}} \L{\LB{}\Tab{8}{ NCA,NCV,NCPA,NCPV,NCLDIAS,1.2,NCRDIAS,NCRSYS,}} \L{\LB{}\Tab{8}{ NPTH,NHR\},}} \L{\LB{\};}} \L{\LB{}} \L{\LB{\K{static} \K{int} NEXAMPLES = (\K{sizeof}(cvstat) \/ \K{sizeof}(cvstat[0]));}} \L{\LB{\K{\#endif} NOTDEF}} \L{\LB{\K{static} \K{int} NEXAMPLES = 2;}} \L{\LB{}} \L{\LB{\C{}\/*PUBLIC*\/\CE{}}} \L{\LB{SIMULATION *setsimulation()}} \L{\LB{\{}} \L{\LB{ savedsim[0].Vl0 = get\_vardata(LV,ZPVOLUME)\-\>normal;}} \L{\LB{ savedsim[0].Vr0 = get\_vardata(RV,ZPVOLUME)\-\>normal;}} \L{\LB{ savedsim[0].Va0 = get\_vardata(SA,ZPVOLUME)\-\>normal;}} \L{\LB{ savedsim[0].Vv0 = get\_vardata(SV,ZPVOLUME)\-\>normal;}} \L{\LB{ savedsim[0].VPa0 = get\_vardata(PA,ZPVOLUME)\-\>normal;}} \L{\LB{ savedsim[0].VPv0 = get\_vardata(PV,ZPVOLUME)\-\>normal;}} \L{\LB{ savedsim[0].bv = get\_vardata(SYSTEM,VOLUME)\-\>normal;}} \L{\LB{ savedsim[0].Ra = get\_vardata(SC,RESISTANCE)\-\>normal;}} \L{\LB{ savedsim[0].Rv = get\_vardata(SV,RESISTANCE)\-\>normal;}} \L{\LB{ savedsim[0].RPv = get\_vardata(PC,RESISTANCE)\-\>normal;}} \L{\LB{ savedsim[0].Rli = get\_vardata(PV,RESISTANCE)\-\>normal;}} \L{\LB{ savedsim[0].Rlo = get\_vardata(LV,RESISTANCE)\-\>normal;}} \L{\LB{ savedsim[0].Rro = get\_vardata(RV,RESISTANCE)\-\>normal;}} \L{\LB{ savedsim[0].Ca = get\_vardata(SA,CAPACITANCE)\-\>normal;}} \L{\LB{ savedsim[0].Cv = get\_vardata(SV,CAPACITANCE)\-\>normal;}} \L{\LB{ savedsim[0].CPa = get\_vardata(PA,CAPACITANCE)\-\>normal;}} \L{\LB{ savedsim[0].CPv = get\_vardata(PV,CAPACITANCE)\-\>normal;}} \L{\LB{ savedsim[0].Cldias = get\_vardata(LV,CAPACITANCE\_DIAS)\-\>normal;}} \L{\LB{ savedsim[0].Clsys = get\_vardata(LV,CAPACITANCE\_SYS)\-\>normal;}} \L{\LB{ savedsim[0].Crdias = get\_vardata(RV,CAPACITANCE\_DIAS)\-\>normal;}} \L{\LB{ savedsim[0].Crsys = get\_vardata(RV,CAPACITANCE\_SYS)\-\>normal;}} \L{\LB{ savedsim[0].pth = get\_vardata(SYSTEM,PRESSURE)\-\>normal;}} \L{\LB{ savedsim[0].hr = get\_vardata(SYSTEM,HEARTRATE)\-\>normal;}} \L{\LB{ \K{return}(\&savedsim[0]);}} \L{\LB{\}}} \L{\LB{}} \L{\LB{\C{}\/*PUBLIC*\/\CE{}}} \L{\LB{SIMULATION *getsimulation(pathology)}} \L{\LB{\K{int} pathology;}} \L{\LB{\{}} \L{\LB{ \K{if} (pathology \< 0 \|\| pathology \>= NEXAMPLES)}} \L{\LB{ fprintf(stderr,\S{}\"Bad physiologic state code to getsimulation.\!n\"\SE{});}} \L{\LB{ \K{return}((SIMULATION *) \&(savedsim[pathology]));}} \L{\LB{\}}} \L{\LB{}}