def getStudyCasebookSubject(self, ocBaseUrl, studyOid, subjectId): """Get casebook of one subject SubjectId can be StudySubjectOID (SS_) or StudySubjectID (in new version of OC) """ method = studyOid + "/" + subjectId + "/*/*" results = None r = self._ocRequest(ocBaseUrl, method) if r.status_code == 200: if "ClinicalData" in r.json(): subjectData = r.json()["ClinicalData"]["SubjectData"] # Exactly one subject should be reported if type(subjectData) is dict: subj = subjectData subject = Subject() subject.oid = subj["@SubjectKey"] subject.studySubjectId = subj[ "@OpenClinica:StudySubjectID"] if "@OpenClinica:UniqueIdentifier" in subj: subject.uniqueIdentifier = subj[ "@OpenClinica:UniqueIdentifier"] results.append(subject) return results
def getStudyCasebookSubjects(self, data, thread=None): """Get study casebook of all subjects """ if data: ocBaseUrl = data[0] studyOid = data[1] method = studyOid + "/*/*/*" results = [] r = self._ocRequest(ocBaseUrl, method) if r.status_code == 200: if "ClinicalData" in r.json(): subjectData = r.json()["ClinicalData"]["SubjectData"] # Multiple subjects if type(subjectData) is list: for subj in subjectData: subject = Subject() subject.oid = subj["@SubjectKey"] subject.studySubjectId = subj[ "@OpenClinica:StudySubjectID"] if "@OpenClinica:UniqueIdentifier" in subj: subject.uniqueIdentifier = subj[ "@OpenClinica:UniqueIdentifier"] results.append(subject) # Only one subject reported elif type(subjectData) is dict: subj = subjectData subject = Subject() subject.oid = subj["@SubjectKey"] subject.studySubjectId = subj[ "@OpenClinica:StudySubjectID"] if "@OpenClinica:UniqueIdentifier" in subj: subject.uniqueIdentifier = subj[ "@OpenClinica:UniqueIdentifier"] results.append(subject) if thread: thread.emit(QtCore.SIGNAL("finished(QVariant)"), results) return None else: return results
def getStudyCasebookSubjects(self, data, thread=None): """Get study casebook subjects """ if data: ocBaseUrl = data[0] studyOid = data[1] method = studyOid + "/*/*/*" results = [] r = self._ocRequest(ocBaseUrl, method) if r.status_code == 200: if "ClinicalData" in r.json(): subjectData = r.json()["ClinicalData"]["SubjectData"] # Multiple subjects if type(subjectData) is list: for subj in subjectData: subject = Subject() subject.oid = subj["@SubjectKey"] subject.studySubjectId = subj["@OpenClinica:StudySubjectID"] if "@OpenClinica:UniqueIdentifier" in subj: subject.uniqueIdentifier = subj["@OpenClinica:UniqueIdentifier"] results.append(subject) # Only one subject reported elif type(subjectData) is dict: subj = subjectData subject = Subject() subject.oid = subj["@SubjectKey"] subject.studySubjectId = subj["@OpenClinica:StudySubjectID"] if "@OpenClinica:UniqueIdentifier" in subj: subject.uniqueIdentifier = subj["@OpenClinica:UniqueIdentifier"] results.append(subject) if thread: thread.emit(QtCore.SIGNAL("finished(QVariant)"), results) return None else: return results
def getStudyCasebookSubject(self, ocBaseUrl, studyOid, subjectId): """Get casebook of one subject SubjectId can be StudySubjectOID (SS_) or StudySubjectID (in new version of OC) """ method = studyOid + "/" + subjectId + "/*/*" results = None r = self._ocRequest(ocBaseUrl, method) if r.status_code == 200: if "ClinicalData" in r.json(): subjectData = r.json()["ClinicalData"]["SubjectData"] # Exactly one subject should be reported if type(subjectData) is dict: subj = subjectData subject = Subject() subject.oid = subj["@SubjectKey"] subject.studySubjectId = subj["@OpenClinica:StudySubjectID"] if "@OpenClinica:UniqueIdentifier" in subj: subject.uniqueIdentifier = subj["@OpenClinica:UniqueIdentifier"] results.append(subject) return results