def _get_pdqv_results_table(self): logger.debug("PQQV building query") # JOIN 1, party table with patient table # LEFT JOIN gnuhealth_patient on gnuhealth_patient.name=party_party.id patient_party_join = Join(self.patient_table, self.party_table) patient_party_join.type_ = 'LEFT' patient_party_join.condition = patient_party_join.left.name == self.party_table.id # JOIN 2, with address table patient_party_addr_join = Join(patient_party_join, self.address_table) patient_party_addr_join.type_ = 'LEFT' patient_party_addr_join.condition = patient_party_addr_join.right.party == patient_party_join.right.id # JOIN 3 , with inpatient_registration table # LEFT JOIN gnuhealth_inpatient_registration ON gnuhealth_inpatient_registration.patient = gnuhealth_patient.id patient_party_reg_join = Join(patient_party_addr_join, self.inpatient_registration_table) patient_party_reg_join.type_ = 'LEFT' patient_party_reg_join.condition = self.inpatient_registration_table.patient == self.patient_table.id # JOIN 4, with hospital_bed table # LEFT JOIN gnuhealth_hospital_bed ON gnuhealth_hospital_bed.id = gnuhealth_inpatient_registration.bed patient_party_bed_join = Join(patient_party_reg_join, self.hospital_bed_table) patient_party_bed_join.type_ = "LEFT" patient_party_bed_join.condition = self.hospital_bed_table.id == self.inpatient_registration_table.bed # JOIN 5, with hospital_ward table # LEFT JOIN gnuhealth_hospital_ward ON gnuhealth_hospital_ward.id = gnuhealth_hospital_bed.ward # where gnuhealth_hospital_ward.name='Maternity' patient_party_ward_join = Join(patient_party_bed_join, self.hospital_ward_table) patient_party_ward_join.type_ = "LEFT" patient_party_ward_join.condition = self.hospital_ward_table.id == self.hospital_bed_table.ward logger.debug("PDQV JOIN TABLE CREATED") return patient_party_ward_join
def _get_pdq_results_table(self): logger.debug("PQQ building query...") patient_party_join = Join(self.patient_table, self.party_table) patient_party_join.type_ = 'LEFT' patient_party_join.condition = patient_party_join.left.name == self.party_table.id # Second join, with address table patient_party_addr_join = Join(patient_party_join, self.address_table) patient_party_addr_join.type_ = 'LEFT' patient_party_addr_join.condition = patient_party_addr_join.right.party == patient_party_join.right.id logger.debug("PDQ JOIN TABLE CREATED") return patient_party_addr_join