Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from openerp import models, fields, api
- from datetime import datetime, date
- from openerp.exceptions import Warning
- class McuJsonInput(models.Model):
- _inherit = "mcu.record"
- # query_mode: can be "mcu" or "outpatient"
- # header_id: id of the header record can be "mcu.record" or "outpatient.laboratory.record"
- # line: the mcu.record.line dictionary not the model itself
- # data: the mcu.data
- # create: flag whether to create or not to create the related model
- def _query_mcu_data(self, query_mode, header_id, line, data, create=False):
- # import ipdb; ipdb.set_trace();
- if (header_id==False or header_id==None):
- return line
- header = None
- header_link = None
- domain = None
- patient_id = None
- if query_mode=="mcu":
- header = self.env["mcu.record"].search([("id", "=", header_id)])
- header_link = {"patient_mcu_id": header_id}
- patient_id = header.patient_id.id
- domain = [("patient_mcu_id", "=", header_id)]
- if query_mode=="outpatient":
- header = self.env["outpatient.laboratory.record"].search([("id", "=", header_id)])
- header_link = {"outpatient_lab_id": header_id}
- patient_id = header.patient_id.id
- domain = [("outpatient_lab_id", "=", header_id)]
- if query_mode=="inpatient":
- header = self.env["inpatient.laboratory.record"].search([("id", "=", header_id)])
- header_link = {"inpatient_lab_id": header_id}
- patient_id = header.patient_id.id
- domain = [("inpatient_lab_id", "=", header_id)]
- # if header.state!="sampling":
- # return line
- if (line["data_model"]=="mcu.data.health.history"):
- mcu_health = self.env[line["data_model"]]
- mcu_res = data.health_history_id
- if mcu_res == False:
- mcu_res = mcu_health.search(domain)
- if (len(mcu_res)==0 and create):
- health_data = {
- "exam_id": line["exam_id"],
- "data_id": data.id,
- }
- health_data.update(header_link)
- mcu_res = mcu_health.create(health_data)
- data.health_history_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="fhg.patient.cons.param"):
- # import ipdb; ipdb.set_trace();
- mcu_parameter = self.env[line["data_model"]]
- mcu_res = data.patient_cons_param_id
- if mcu_res == False:
- mcu_res = mcu_parameter.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_parameter.create(value_set)
- data.patient_cons_param_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.body"):
- try :
- mcu_body = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.body on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.body_id
- if mcu_res == False:
- mcu_res = mcu_body.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "exam_id": line["exam_id"],
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_body.create(value_set)
- data.body_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.physical.examination"):
- try :
- mcu_physical_examination = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.physical.examination on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.physical_examination_id
- if mcu_res == False:
- mcu_res = mcu_physical_examination.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_physical_examination.create(value_set)
- data.physical_examination_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.spirometry"):
- try :
- mcu_spiro = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.spirometry on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.spirometry_id
- if mcu_res == False:
- mcu_res = mcu_spiro.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "exam_id": line["exam_id"],
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_spiro.create(value_set)
- data.spirometry_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.framingham"):
- try :
- mcu_framingham = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.framingham on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.framingham_id
- if mcu_res == False:
- mcu_res = mcu_framingham.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "exam_id": line["exam_id"],
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_framingham.create(value_set)
- data.framingham_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.audio"):
- try :
- mcu_audiometry = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.audio on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.audio_id
- if mcu_res == False:
- mcu_res = mcu_audiometry.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "exam_id": line["exam_id"],
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_audiometry.create(value_set)
- data.audio_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.vision"):
- try :
- mcu_vision = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.vision on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.vision_id
- if mcu_res == False:
- mcu_res = mcu_vision.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_vision.create(value_set)
- data.vision_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.tonometry"):
- try :
- mcu_tonometry = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.tonometry on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.tonometry_id
- if mcu_res == False:
- mcu_res = mcu_tonometry.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_tonometry.create(value_set)
- data.tonometry_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.ophtalmologist" or line["data_model"]=="mcu.data.ophtalmology"):
- try :
- mcu_ophtalmology = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.ophtalmology on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.ophtalmology_id
- if mcu_res == False:
- mcu_res = mcu_ophtalmology.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_ophtalmology.create(value_set)
- data.ophtalmology_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.widal"):
- try :
- mcu_widal = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.widal on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.widal_id
- if mcu_res == False:
- mcu_res = mcu_widal.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_widal.create(value_set)
- data.widal_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.thrombocyte.aggregation"):
- try :
- mcu_thrombocyte_aggregation = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.thrombocyte.aggregation on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.thrombocyte_aggregation_id
- if mcu_res == False:
- mcu_res = mcu_thrombocyte_aggregation.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_thrombocyte_aggregation.create(value_set)
- data.thrombocyte_aggregation_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.confirmation.alcohol.in.blood"):
- try :
- mcu_data_confirmation_alcohol_in_blood = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.confirmation.alcohol.in.blood on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.confirmation_alcohol_in_blood_id
- if mcu_res == False:
- mcu_res = mcu_data_confirmation_alcohol_in_blood.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_data_confirmation_alcohol_in_blood.create(value_set)
- data.confirmation_alcohol_in_blood_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.confirmation.cannabis.in.urine"):
- try :
- mcu_data_confirmation_cannabis_in_urine = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.confirmation.cannabis.in.urine on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.confirmation_cannabis_in_urine_id
- if mcu_res == False:
- mcu_res = mcu_data_confirmation_cannabis_in_urine.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_data_confirmation_cannabis_in_urine.create(value_set)
- data.confirmation_cannabis_in_urine_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.confirmation.opiates.in.urine"):
- try :
- mcu_data_confirmation_opiates_in_urine = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.confirmation.opiates.in.urine on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.confirmation_opiates_in_urine_id
- if mcu_res == False:
- mcu_res = mcu_data_confirmation_opiates_in_urine.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_data_confirmation_opiates_in_urine.create(value_set)
- data.confirmation_opiates_in_urine_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.confirmation.benzodiazepine.in.urine"):
- try :
- mcu_data_confirmation_benzodiazepine_in_urine = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.confirmation.benzodiazepine.in.urine on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.confirmation_benzodiazepine_in_urine_id
- if mcu_res == False:
- mcu_res = mcu_data_confirmation_benzodiazepine_in_urine.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_data_confirmation_benzodiazepine_in_urine.create(value_set)
- data.confirmation_benzodiazepine_in_urine_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.confirmation.barbiturate.in.blood"):
- try :
- mcu_data_confirmation_barbiturate_in_blood = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.confirmation.barbiturate.in.blood on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.confirmation_barbiturate_in_blood_id
- if mcu_res == False:
- mcu_res = mcu_data_confirmation_barbiturate_in_blood.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_data_confirmation_barbiturate_in_blood.create(value_set)
- data.confirmation_barbiturate_in_blood_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="xray.record" or line["data_model"]=="ecg.record" or line["data_model"]=="usg.record" or line["data_model"]=="treadmill.record"):
- # import ipdb; ipdb.set_trace();
- patient_xray = self.env[line["data_model"]]
- domain_ext = domain[:]
- if line["exam_id"] :
- domain_ext.extend([("exam_id", "=", line["exam_id"])])
- mcu_res = patient_xray.search(domain_ext)
- if (len(mcu_res)==0 and create):
- # mcu_note = ", ".join([doc.name for doc in rec.child_ids])
- value_set = {
- "patient_id": patient_id,
- "medical_center_id": self.medical_center_id.id,
- # "medical_staff_id": self.medical_staff_id.id,
- "exam_id": line["exam_id"],
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = patient_xray.create(value_set)
- if line["data_model"]=="xray.record":
- data.xray_record_id = mcu_res.id
- if line["data_model"]=="ecg.record":
- data.ecg_record_id = mcu_res.id
- if line["data_model"]=="usg.record":
- data.usg_record_id = mcu_res.id
- if line["data_model"]=="treadmill.record":
- data.treadmill_record_id = mcu_res.id
- # import ipdb; ipdb.set_trace();
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.culture.sensitivity"):
- culture = self.env[line["data_model"]]
- mcu_res = data.culture_sensitivity_id
- if mcu_res == False:
- mcu_res = culture.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "mcu_data_id": data.id,
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = culture.create(value_set)
- data.culture_sensitivity_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.hb.electrophoresis"):
- hbe = self.env[line["data_model"]]
- mcu_res = data.hb_electrophoresis_id
- if mcu_res == False:
- mcu_res = hbe.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = hbe.create(value_set)
- data.hb_electrophoresis_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.brief.mental.status"):
- try :
- mcu_brief_mental_status = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.brief.mental.status on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.brief_mental_status_id
- if mcu_res == False:
- mcu_res = mcu_brief_mental_status.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_brief_mental_status.create(value_set)
- data.brief_mental_status_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.mercury"):
- try :
- mcu_data_mercury = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.mercury on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.mercury_id
- if mcu_res == False:
- mcu_res = mcu_data_mercury.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_data_mercury.create(value_set)
- data.mercury_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.lead"):
- try :
- mcu_data_lead = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.lead on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.lead_id
- if mcu_res == False:
- mcu_res = mcu_data_lead.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_data_lead.create(value_set)
- data.lead_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.arsenic"):
- try :
- mcu_data_arsenic = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.arsenic on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.arsenic_id
- if mcu_res == False:
- mcu_res = mcu_data_arsenic.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_data_arsenic.create(value_set)
- data.arsenic_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.xylene"):
- try :
- mcu_data_xylene = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.xylene on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.xylene_id
- if mcu_res == False:
- mcu_res = mcu_data_xylene.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_data_xylene.create(value_set)
- data.xylene_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.benzene"):
- try :
- mcu_data_benzene = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.benzene on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.benzene_id
- if mcu_res == False:
- mcu_res = mcu_data_benzene.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_data_benzene.create(value_set)
- data.benzene_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.toluene"):
- try :
- mcu_data_toluene = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.toluene on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.toluene_id
- if mcu_res == False:
- mcu_res = mcu_data_toluene.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_data_toluene.create(value_set)
- data.toluene_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.health.history.dslng"):
- try :
- mcu_data_dslng = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.health.history.dslng on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.health_history_dslng_id
- if mcu_res == False:
- mcu_res = mcu_data_dslng.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_data_dslng.create(value_set)
- data.health_history_dslng_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.general.physical"):
- try :
- mcu_general_physical = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.general.physical on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.general_physical_id
- if mcu_res == False:
- mcu_res = mcu_general_physical.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_general_physical.create(value_set)
- data.general_physical_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.hearing.assessment"):
- try :
- mcu_hearing_assessment = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.hearing.assessment on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.hearing_assessment_id
- if mcu_res == False:
- mcu_res = mcu_hearing_assessment.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_hearing_assessment.create(value_set)
- data.hearing_asssessment_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.visual.assessment"):
- try :
- mcu_visual_assessment = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.visual.assessment on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.visual_assessment_id
- if mcu_res == False:
- mcu_res = mcu_visual_assessment.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_visual_assessment.create(value_set)
- data.visual_assessment_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.neurological"):
- try :
- mcu_data_neurological = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.neurological on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.neurological_id
- if mcu_res == False:
- mcu_res = mcu_data_neurological.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_data_neurological.create(value_set)
- data.neurological_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.musculoskeletal"):
- try :
- mcu_data_musculoskeletal = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.mcu.data.musculoskeletal on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.musculoskeletal_id
- if mcu_res == False:
- mcu_res = mcu_data_musculoskeletal.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_data_musculoskeletal.create(value_set)
- data.musculoskeletal_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.respiratory"):
- try :
- mcu_data_respiratory = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.respiratory on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.respiratory_id
- if mcu_res == False:
- mcu_res = mcu_data_respiratory.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_data_respiratory.create(value_set)
- data.respiratory_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.abdomen"):
- try :
- mcu_data_abdomen = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.abdomen on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.abdomen_id
- if mcu_res == False:
- mcu_res = mcu_data_abdomen.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_data_abdomen.create(value_set)
- data.abdomen_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="mcu.data.cardiovascular"):
- try :
- mcu_data_cardiovascular = self.env[line["data_model"]]
- except :
- text = "You need to put mcu.data.cardiovascular on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = data.cardiovascular_id
- if mcu_res == False:
- mcu_res = mcu_data_cardiovascular.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = mcu_data_cardiovascular.create(value_set)
- data.cardiovascular_id = mcu_res.id
- line["res_id"] = mcu_res.id
- elif (line["data_model"]=="finding.recommendation"):
- try :
- finding_recommendation = self.env[line["data_model"]]
- except :
- text = "You need to finding.recommendation on the package of %s" % (self.mcu_pack_id.name)
- raise Warning(text)
- mcu_res = finding_recommendation.search(domain)
- if (len(mcu_res)==0 and create):
- value_set = {
- "patient_id": patient_id,
- "data_id": data.id,
- }
- value_set.update(header_link)
- mcu_res = finding_recommendation.create(value_set)
- data.find_recom_id = mcu_res.id
- line["res_id"] = mcu_res.id
- else:
- # if rec.name == "Examination":
- # import ipdb; ipdb.set_trace();
- mcu_data = self.env["mcu.data"]
- mcu_res = None
- domain_ext = domain[:]
- if line["exam_id"] :
- domain_ext.extend([("mcu_record_line_id", "!=", False), ("exam_id", "=", line["exam_id"])])
- mcu_res = mcu_data.search(domain_ext)
- else :
- domain_ext.extend([("mcu_record_line_id", "=", line["id"])])
- mcu_res = mcu_data.search(domain_ext)
- # if len(mcu_res) > 1:
- # import ipdb; ipdb.set_trace();
- if len(mcu_res) :
- line["res_id"] = mcu_res.id
- # check the children
- domain_ext = domain[:] #reset the domain_ext
- domain_ext.extend([("parent_mcu_data_id", "=", mcu_res.id)])
- mcu_children = mcu_data.search(domain_ext)
- # import ipdb; ipdb.set_trace();
- if len(mcu_children) != line["count_childs"]:
- # mcu_res = mcu_data.search([["patient_mcu_id", "=", patient_mcu_id], ["mcu_record_line_id", "=", rec.id]])
- line["res_id"] = data.id
- return line
- def _checkup_lines(self, query_mode, header_id, parent_id=False, dictionary=""):
- mcu_line = self.env["mcu.record.line"]
- mcu_data = self.env["mcu.data"]
- dictionary = [];
- domain = None
- if query_mode=="mcu":
- domain = [("patient_mcu_id", "=", header_id)]
- if query_mode=="outpatient":
- domain = [("outpatient_lab_id", "=", header_id)]
- if query_mode=="inpatient":
- domain = [("inpatient_lab_id", "=", header_id)]
- domain.extend([("parent_id", "=", parent_id), ("include", "=", True)])
- recs = mcu_line.search(domain, order="sequence asc")
- # recs = mcu_line.search([["patient_mcu_id", "=", patient_mcu_id], ("parent_id", "=", parent_id)], order="sequence asc")
- for rec in recs:
- value = {
- "id": rec.id,
- "name": rec.name,
- "parent_id": parent_id,
- "variety": rec.variety,
- "interest": rec.interest,
- "unit": rec.unit,
- "si_unit": rec.si_unit,
- "data_model": rec.data_model,
- "product_id": rec.product_id.id,
- "sequence": rec.sequence,
- "patient_mcu_id": header_id,
- "display_name": rec.display_name,
- "exam_id": rec.exam_id.id,
- "count_childs": rec.count_childs
- }
- rec_id = rec.id
- data = mcu_data.search([["mcu_record_line_id", "=", rec_id]])
- value = self._query_mcu_data(query_mode, header_id, value, data) # get res_id
- childs = mcu_line.search([["parent_id", "=", rec_id]])
- if len(childs):
- value["childs"] = self._checkup_lines(query_mode, header_id, rec_id)
- else:
- value = self._query_mcu_data(query_mode, header_id, value, data) # get res_id
- dictionary.append(value);
- return dictionary
- @api.multi
- def get_checkup_line(self, query_mode, header_id):
- #CR an UID default dari Call Javascript
- line_dictionary = self._checkup_lines(query_mode, header_id)
- import json
- return json.dumps(line_dictionary)
Add Comment
Please, Sign In to add comment