Esempio n. 1
0
    def action_default(self):
        """Render the details for the specified patient information, including controls to modify"""
        userId = int(self.requestData["sim_user_id"]);
        patientId = int(self.requestData["sim_patient_id"]);
        simTime = None;

        manager = SimManager();
        userModel = manager.loadUserInfo([userId])[0];  # Assume found good single match
        try:
            simTime = int(self.requestData["sim_time"]);
        except ValueError:
            # Unable to parse any explicit simulation time. 
            # Lookup the last activity (order) time for the patient and start just after that to resume the simulation
            simTime = manager.loadPatientLastEventTime(patientId) + 60;  # Advance by one minute to avoid confusing states where multiple events happening within zero time.
            self.requestData["sim_time"] = simTime; # So sub-pages have access

        patientModel = manager.loadPatientInfo([patientId], simTime)[0];
        #print >> sys.stderr, "Loaded %(sim_patient_id)s in state %(sim_state_id)s at %(relative_time_start)s" % patientModel

        for key, value in userModel.iteritems():
            self.requestData["sim_user."+key] = value;
        for key, value in patientModel.iteritems():
            self.requestData["sim_patient."+key] = value;
        self.requestData["sim_time.format"] = (BASE_TIME + timedelta(0,simTime)).strftime(TIME_FORMAT);

        subData = self.pageClassByName[self.requestData["currentDataPage"]]();
        subData.requestData["sim_user_id"] = self.requestData["sim_user_id"];
        subData.requestData["sim_patient_id"] = self.requestData["sim_patient_id"];
        subData.requestData["sim_time"] = self.requestData["sim_time"];
        subData.action_default();
        self.requestData["currentDataTable"] = subData.populatedTemplate();

        subData = NewOrders();
        subData.action_default();
        self.requestData["dataEntryTable"] = subData.populatedTemplate();
Esempio n. 2
0
    def action_final(self): # Do as last step, so will capture any just completed creation steps
        """Load lists of users, patients, and states to select from"""
        manager = SimManager();
        
        userModels = manager.loadUserInfo();
        valueList = list();
        textList = list();
        for userModel in userModels:
            valueList.append(str(userModel["sim_user_id"]));
            textList.append(userModel["name"]);
        self.requestData["userOptions"] = self.optionTagsFromList(valueList, textList);

        patientModels = manager.loadPatientInfo();
        valueList = list();
        textList = list();
        for patientModel in patientModels:
            valueList.append(str(patientModel["sim_patient_id"]));
            textList.append("%(name)s" % patientModel);
        self.requestData["patientOptions"] = self.optionTagsFromList(valueList, textList);
        
        stateModels = manager.loadStateInfo();
        valueList = list();
        textList = list();
        for stateModel in stateModels:
            valueList.append(str(stateModel["sim_state_id"]));
            textList.append("%(name)s" % stateModel);
        self.requestData["stateOptions"] = self.optionTagsFromList(valueList, textList);