def __init__(self): BaseCPOEWeb.__init__(self) # Initialize default values to place in template htm file self.requestData["sim_user_id"] = "" self.requestData["sim_patient_id"] = "" self.requestData["sim_state_id"] = "" self.requestData["sim_time"] = "0" self.requestData["currentDataPage"] = NotesReview.__name__ self.requestData["autoQuery"] = "" self.requestData["maxResults"] = "50" # Maximum of results to show when searching for orders self.requestData["newOrderItemId"] = list() self.requestData["discontinuePatientOrderId"] = list() # Sub-Table / Dynamically loaded data self.requestData["currentDataTable"] = "" self.requestData["dataEntryTable"] = "" self.requestData["searchResultsTable"] = "" # Map strings to sub-page class lookups. Could use importlib and getattr to do dynamic reflection # but this makes it more explicit what is happening. self.pageClassByName = dict() for subPageClass in [NotesReview, ResultsReview, ActiveOrders]: self.pageClassByName[subPageClass.__name__] = subPageClass self.addHandler("signOrders", PatientCareFrame.action_signOrders.__name__) self.addHandler("sim_patient_id", PatientCareFrame.action_default.__name__)
def __init__(self): BaseCPOEWeb.__init__(self) self.requestData["userOptions"] = ""; self.requestData["patientOptions"] = ""; self.requestData["stateOptions"] = ""; self.addHandler("createUser", SimSetup.action_createUser.__name__); self.addHandler("createPatient", SimSetup.action_createPatient.__name__); self.addHandler("copyPatientTemplate", SimSetup.action_copyPatientTemplate.__name__);
def defaultTemplateFilename(self): """Dynamic data pages may be called from other scripts in other directories, so make sure the reference to the template files are by absolute reference. """ directory = os.path.dirname( medinfo.web.cgibin.cpoe.dynamicdata.__file__) return os.path.join(directory, BaseCPOEWeb.defaultTemplateFilename(self))
def __init__(self): BaseCPOEWeb.__init__(self) # Initialize default values to place in template htm file # If not already available, build a list of order / item categories to select from if "clinicalItemCategoryAvailable" not in Options.FIELD2VALUE: resultTable = \ DBUtil.execute \ ( """select cic.clinical_item_category_id, cic.description, cic.default_recommend, count(ci.name) from clinical_item as ci, clinical_item_category as cic where ci.clinical_item_category_id = cic.clinical_item_category_id and ci.analysis_status = 1 group by cic.clinical_item_category_id, cic.description, cic.default_recommend order by count(ci.name) desc """ ) optionValues = [] optionTexts = [] excludeOptionValues = [] excludeOptionTexts = [] for (categoryId, categoryDescr, defaultRecommend, itemCount) in resultTable: opValue = str(categoryId) opText = "(%d) %s" % (itemCount, categoryDescr) optionValues.append(opValue) optionTexts.append(opText) if not defaultRecommend: # Don't want this included by default, add to exclusion list excludeOptionValues.append(opValue) excludeOptionTexts.append(opText) Options.FIELD2VALUE["clinicalItemCategoryAvailable"] = optionValues Options.FIELD2TEXT["clinicalItemCategoryAvailable"] = optionTexts Options.FIELD2VALUE[ "clinicalItemCategoryExcluded"] = excludeOptionValues Options.FIELD2TEXT[ "clinicalItemCategoryExcluded"] = excludeOptionTexts self.requestData[ "clinicalItemCategoryOptions"] = self.optionTagsFromField( "clinicalItemCategoryAvailable") self.requestData[ "clinicalItemCategoryExcludedOptions"] = self.optionTagsFromField( "clinicalItemCategoryExcluded") # If not already available, build a list of order / item categories to exclude by default if "clinicalItemExcluded" not in Options.FIELD2VALUE: resultTable = \ DBUtil.execute \ ( """select ci.clinical_item_id, ci.name, ci.description from clinical_item as ci where ci.default_recommend = 0 order by ci.name """ ) excludeOptionValues = [] excludeOptionTexts = [] for (clinicalItemId, itemName, itemDescription) in resultTable: opValue = str(clinicalItemId) opText = "%s - %s" % (itemName, itemDescription) excludeOptionValues.append(opValue) excludeOptionTexts.append(opText) Options.FIELD2VALUE["clinicalItemExcluded"] = excludeOptionValues Options.FIELD2TEXT["clinicalItemExcluded"] = excludeOptionTexts self.requestData[ "clinicalItemExcludedOptions"] = self.optionTagsFromField( "clinicalItemExcluded") if "timeDeltaMax" not in Options.FIELD2VALUE: secondsOptions = DELTA_NAME_BY_SECONDS.keys() secondsOptions.sort() Options.FIELD2VALUE["timeDeltaMax"] = [ str(seconds) for seconds in secondsOptions ] Options.FIELD2TEXT["timeDeltaMax"] = [ DELTA_NAME_BY_SECONDS[seconds] for seconds in secondsOptions ] self.requestData["timeDeltaMaxOptions"] = self.optionTagsFromList( Options.FIELD2VALUE["timeDeltaMax"], Options.FIELD2TEXT["timeDeltaMax"], "86400") if "filterField" not in Options.FIELD2VALUE: optionPairs = \ [ ("baselineFreq", "Baseline Freq (nB/N)"), ("conditionalFreq", "Conditional Freq (nAB/nA)"), ("freqRatio", "Freq Ratio = (nAB/nA) / (nB/N)"), ("OR", "Odds Ratio (OR)"), ("OR95CILow", "OR 95% CI, Low"), ("OR95CIHigh", "OR 95% CI, High"), ("RR", "Relative Risk (RR)"), ("RR95CILow", "RR 95% CI, Low"), ("RR95CIHigh", "RR 95% CI, High"), ("LR", "Positive Likelihood Ratio (LR)"), ("LR-", "Negative Likelihood Ratio (LR-)"), ("sensitivity","Sensitivity"), ("specificity","Specificity"), ("PPV","Positive Predictive Value (PPV)"), ("NPV","Negative Predictive Value (NPV)"), ("prevalence","Prevalence"), ("P-YatesChi2", "P-value (Yates-Chi2)"), ("P-YatesChi2-NegLog", "P-value (Yates-Chi2), Negative Log"), ("P-Fisher", "P-value (Fisher)"), ("P-Fisher-NegLog", "P-value (Fisher), Negative Log"), #("P-Fisher-Complement", "P-value (Fisher), Complement (1-p)"), ("nAB", "nAB (query-target co-ocurrences) "), ("nA", "nA (query item instances)"), ("nB", "nB (target item instances)"), ("N", "N (patients)"), ] optionValues = list() optionTexts = list() for (value, text) in optionPairs: optionValues.append(value) optionTexts.append(text) Options.FIELD2VALUE["filterField"] = optionValues Options.FIELD2TEXT["filterField"] = optionTexts self.requestData["sortFieldOptions"] = self.optionTagsFromList( Options.FIELD2VALUE["filterField"], Options.FIELD2TEXT["filterField"], "PPV") self.requestData["filterField1Options"] = self.optionTagsFromList( Options.FIELD2VALUE["filterField"], Options.FIELD2TEXT["filterField"], "prevalence") self.requestData["filterField2Options"] = self.optionTagsFromList( Options.FIELD2VALUE["filterField"], Options.FIELD2TEXT["filterField"], "PPV") self.requestData["filterField3Options"] = self.optionTagsFromList( Options.FIELD2VALUE["filterField"], Options.FIELD2TEXT["filterField"], "RR") self.requestData["filterField4Options"] = self.optionTagsFromList( Options.FIELD2VALUE["filterField"], Options.FIELD2TEXT["filterField"], "sensitivity") self.requestData["filterField5Options"] = self.optionTagsFromList( Options.FIELD2VALUE["filterField"], Options.FIELD2TEXT["filterField"], "P-YatesChi2") self.addHandler(self.requestData["WEB_CLASS"], ItemRecommenderWeb.action_default.__name__)
def __init__(self): # Super-class init should setup lots of common drop-list data BaseCPOEWeb.__init__(self)