strike_noir

mcu_json_input

Dec 11th, 2018
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 36.70 KB | None | 0 0
  1. from openerp import models, fields, api
  2. from datetime import datetime, date
  3. from openerp.exceptions import Warning
  4.  
  5. class McuJsonInput(models.Model):
  6.     _inherit = "mcu.record"
  7.  
  8.     # query_mode: can be "mcu" or "outpatient"
  9.     # header_id: id of the header record can be "mcu.record" or "outpatient.laboratory.record"
  10.     # line: the mcu.record.line dictionary not the model itself
  11.     # data: the mcu.data
  12.     # create: flag whether to create or not to create the related model
  13.     def _query_mcu_data(self, query_mode, header_id, line, data, create=False):
  14.         # import ipdb; ipdb.set_trace();
  15.        
  16.         if (header_id==False or header_id==None):
  17.             return line
  18.  
  19.         header = None
  20.         header_link = None
  21.         domain = None
  22.         patient_id = None
  23.        
  24.         if query_mode=="mcu":
  25.             header = self.env["mcu.record"].search([("id", "=", header_id)])
  26.             header_link = {"patient_mcu_id": header_id}
  27.             patient_id = header.patient_id.id
  28.             domain = [("patient_mcu_id", "=", header_id)]
  29.        
  30.         if query_mode=="outpatient":
  31.             header = self.env["outpatient.laboratory.record"].search([("id", "=", header_id)])
  32.             header_link = {"outpatient_lab_id": header_id}
  33.             patient_id = header.patient_id.id
  34.             domain = [("outpatient_lab_id", "=", header_id)]
  35.            
  36.         if query_mode=="inpatient":
  37.             header = self.env["inpatient.laboratory.record"].search([("id", "=", header_id)])
  38.             header_link = {"inpatient_lab_id": header_id}
  39.             patient_id = header.patient_id.id
  40.             domain = [("inpatient_lab_id", "=", header_id)]
  41.            
  42.         # if header.state!="sampling":
  43.             # return line
  44.  
  45.         if (line["data_model"]=="mcu.data.health.history"):
  46.             mcu_health = self.env[line["data_model"]]
  47.             mcu_res = data.health_history_id
  48.             if mcu_res == False:
  49.                 mcu_res = mcu_health.search(domain)
  50.             if (len(mcu_res)==0 and create):
  51.                 health_data = {
  52.                     "exam_id": line["exam_id"],
  53.                     "data_id": data.id,
  54.                 }
  55.                 health_data.update(header_link)
  56.                 mcu_res = mcu_health.create(health_data)
  57.                 data.health_history_id = mcu_res.id
  58.             line["res_id"] = mcu_res.id
  59.  
  60.         elif (line["data_model"]=="fhg.patient.cons.param"):
  61.             # import ipdb; ipdb.set_trace();
  62.             mcu_parameter = self.env[line["data_model"]]
  63.             mcu_res = data.patient_cons_param_id
  64.             if mcu_res == False:
  65.                 mcu_res = mcu_parameter.search(domain)
  66.             if (len(mcu_res)==0 and create):
  67.                 value_set = {
  68.                     "patient_id": patient_id,
  69.                     "data_id": data.id,
  70.                 }
  71.                 value_set.update(header_link)
  72.                 mcu_res = mcu_parameter.create(value_set)
  73.                 data.patient_cons_param_id = mcu_res.id
  74.             line["res_id"] = mcu_res.id
  75.  
  76.         elif (line["data_model"]=="mcu.data.body"):
  77.             try :
  78.                 mcu_body = self.env[line["data_model"]]
  79.             except :
  80.                 text = "You need to put mcu.data.body on the package of %s" % (self.mcu_pack_id.name)
  81.                 raise Warning(text)
  82.             mcu_res = data.body_id
  83.             if mcu_res == False:
  84.                 mcu_res = mcu_body.search(domain)
  85.             if (len(mcu_res)==0 and create):
  86.                 value_set = {
  87.                     "patient_id": patient_id,
  88.                     "exam_id": line["exam_id"],
  89.                     "data_id": data.id,
  90.                 }
  91.                 value_set.update(header_link)
  92.                 mcu_res = mcu_body.create(value_set)
  93.                 data.body_id = mcu_res.id
  94.             line["res_id"] = mcu_res.id
  95.  
  96.         elif (line["data_model"]=="mcu.data.physical.examination"):
  97.             try :
  98.                 mcu_physical_examination = self.env[line["data_model"]]
  99.             except :
  100.                 text = "You need to put mcu.data.physical.examination on the package of %s" % (self.mcu_pack_id.name)
  101.                 raise Warning(text)
  102.  
  103.             mcu_res = data.physical_examination_id
  104.             if mcu_res == False:
  105.                 mcu_res = mcu_physical_examination.search(domain)
  106.             if (len(mcu_res)==0 and create):
  107.                 value_set = {
  108.                     "patient_id": patient_id,
  109.                     "data_id": data.id,
  110.                 }
  111.                 value_set.update(header_link)
  112.                 mcu_res = mcu_physical_examination.create(value_set)
  113.                 data.physical_examination_id = mcu_res.id
  114.             line["res_id"] = mcu_res.id
  115.  
  116.         elif (line["data_model"]=="mcu.data.spirometry"):
  117.             try :
  118.                 mcu_spiro = self.env[line["data_model"]]
  119.             except :
  120.                 text = "You need to put mcu.data.spirometry on the package of %s" % (self.mcu_pack_id.name)
  121.                 raise Warning(text)
  122.             mcu_res = data.spirometry_id
  123.             if mcu_res == False:
  124.                 mcu_res = mcu_spiro.search(domain)
  125.             if (len(mcu_res)==0 and create):
  126.                 value_set = {
  127.                     "patient_id": patient_id,
  128.                     "exam_id": line["exam_id"],
  129.                     "data_id": data.id,
  130.                 }
  131.                 value_set.update(header_link)
  132.                 mcu_res = mcu_spiro.create(value_set)
  133.                 data.spirometry_id = mcu_res.id
  134.             line["res_id"] = mcu_res.id
  135.  
  136.         elif (line["data_model"]=="mcu.data.framingham"):
  137.             try :
  138.                 mcu_framingham = self.env[line["data_model"]]
  139.             except :
  140.                 text = "You need to put mcu.data.framingham on the package of %s" % (self.mcu_pack_id.name)
  141.                 raise Warning(text)
  142.  
  143.             mcu_res = data.framingham_id
  144.             if mcu_res == False:
  145.                 mcu_res = mcu_framingham.search(domain)
  146.             if (len(mcu_res)==0 and create):
  147.                 value_set = {
  148.                     "patient_id": patient_id,
  149.                     "exam_id": line["exam_id"],
  150.                     "data_id": data.id,
  151.                 }
  152.                 value_set.update(header_link)
  153.                 mcu_res = mcu_framingham.create(value_set)
  154.                 data.framingham_id = mcu_res.id
  155.             line["res_id"] = mcu_res.id
  156.  
  157.         elif (line["data_model"]=="mcu.data.audio"):
  158.             try :
  159.                 mcu_audiometry = self.env[line["data_model"]]
  160.             except :
  161.                 text = "You need to put mcu.data.audio on the package of %s" % (self.mcu_pack_id.name)
  162.                 raise Warning(text)
  163.  
  164.             mcu_res = data.audio_id
  165.             if mcu_res == False:
  166.                 mcu_res = mcu_audiometry.search(domain)
  167.             if (len(mcu_res)==0 and create):
  168.                 value_set = {
  169.                     "patient_id": patient_id,
  170.                     "exam_id": line["exam_id"],
  171.                     "data_id": data.id,
  172.                 }
  173.                 value_set.update(header_link)
  174.                 mcu_res = mcu_audiometry.create(value_set)
  175.                 data.audio_id = mcu_res.id
  176.             line["res_id"] = mcu_res.id
  177.  
  178.         elif (line["data_model"]=="mcu.data.vision"):
  179.             try :
  180.                 mcu_vision = self.env[line["data_model"]]
  181.             except :
  182.                 text = "You need to put mcu.data.vision on the package of %s" % (self.mcu_pack_id.name)
  183.                 raise Warning(text)
  184.  
  185.             mcu_res = data.vision_id
  186.             if mcu_res == False:
  187.                 mcu_res = mcu_vision.search(domain)
  188.             if (len(mcu_res)==0 and create):
  189.                 value_set = {
  190.                     "patient_id": patient_id,
  191.                     "data_id": data.id,
  192.                 }
  193.                 value_set.update(header_link)
  194.                 mcu_res = mcu_vision.create(value_set)
  195.                 data.vision_id = mcu_res.id
  196.             line["res_id"] = mcu_res.id
  197.  
  198.         elif (line["data_model"]=="mcu.data.tonometry"):
  199.             try :
  200.                 mcu_tonometry = self.env[line["data_model"]]
  201.             except :
  202.                 text = "You need to put mcu.data.tonometry on the package of %s" % (self.mcu_pack_id.name)
  203.                 raise Warning(text)
  204.  
  205.             mcu_res = data.tonometry_id
  206.             if mcu_res == False:
  207.                 mcu_res = mcu_tonometry.search(domain)
  208.             if (len(mcu_res)==0 and create):
  209.                 value_set = {
  210.                     "patient_id": patient_id,
  211.                     "data_id": data.id,
  212.                 }
  213.                 value_set.update(header_link)
  214.                 mcu_res = mcu_tonometry.create(value_set)
  215.                 data.tonometry_id = mcu_res.id
  216.             line["res_id"] = mcu_res.id
  217.  
  218.         elif (line["data_model"]=="mcu.data.ophtalmologist" or line["data_model"]=="mcu.data.ophtalmology"):
  219.             try :
  220.                 mcu_ophtalmology = self.env[line["data_model"]]
  221.             except :
  222.                 text = "You need to put mcu.data.ophtalmology on the package of %s" % (self.mcu_pack_id.name)
  223.                 raise Warning(text)
  224.  
  225.             mcu_res = data.ophtalmology_id
  226.             if mcu_res == False:
  227.                 mcu_res = mcu_ophtalmology.search(domain)
  228.             if (len(mcu_res)==0 and create):
  229.                 value_set = {
  230.                     "patient_id": patient_id,
  231.                     "data_id": data.id,
  232.                 }
  233.                 value_set.update(header_link)
  234.                 mcu_res = mcu_ophtalmology.create(value_set)
  235.                 data.ophtalmology_id = mcu_res.id
  236.             line["res_id"] = mcu_res.id
  237.  
  238.         elif (line["data_model"]=="mcu.data.widal"):
  239.             try :
  240.                 mcu_widal = self.env[line["data_model"]]
  241.             except :
  242.                 text = "You need to put mcu.data.widal on the package of %s" % (self.mcu_pack_id.name)
  243.                 raise Warning(text)
  244.  
  245.             mcu_res = data.widal_id
  246.             if mcu_res == False:
  247.                 mcu_res = mcu_widal.search(domain)
  248.             if (len(mcu_res)==0 and create):
  249.                 value_set = {
  250.                     "patient_id": patient_id,
  251.                     "data_id": data.id,
  252.                 }
  253.                 value_set.update(header_link)
  254.                 mcu_res = mcu_widal.create(value_set)
  255.                 data.widal_id = mcu_res.id
  256.             line["res_id"] = mcu_res.id
  257.  
  258.         elif (line["data_model"]=="mcu.data.thrombocyte.aggregation"):
  259.             try :
  260.                 mcu_thrombocyte_aggregation = self.env[line["data_model"]]
  261.             except :
  262.                 text = "You need to put mcu.data.thrombocyte.aggregation on the package of %s" % (self.mcu_pack_id.name)
  263.                 raise Warning(text)
  264.  
  265.             mcu_res = data.thrombocyte_aggregation_id
  266.             if mcu_res == False:
  267.                 mcu_res = mcu_thrombocyte_aggregation.search(domain)
  268.             if (len(mcu_res)==0 and create):
  269.                 value_set = {
  270.                     "patient_id": patient_id,
  271.                     "data_id": data.id,
  272.                 }
  273.                 value_set.update(header_link)
  274.                 mcu_res = mcu_thrombocyte_aggregation.create(value_set)
  275.                 data.thrombocyte_aggregation_id = mcu_res.id
  276.             line["res_id"] = mcu_res.id
  277.  
  278.         elif (line["data_model"]=="mcu.data.confirmation.alcohol.in.blood"):
  279.             try :
  280.                 mcu_data_confirmation_alcohol_in_blood = self.env[line["data_model"]]
  281.             except :
  282.                 text = "You need to put mcu.data.confirmation.alcohol.in.blood on the package of %s" % (self.mcu_pack_id.name)
  283.                 raise Warning(text)
  284.  
  285.             mcu_res = data.confirmation_alcohol_in_blood_id
  286.             if mcu_res == False:
  287.                 mcu_res = mcu_data_confirmation_alcohol_in_blood.search(domain)
  288.             if (len(mcu_res)==0 and create):
  289.                 value_set = {
  290.                     "patient_id": patient_id,
  291.                     "data_id": data.id,
  292.                 }
  293.                 value_set.update(header_link)
  294.                 mcu_res = mcu_data_confirmation_alcohol_in_blood.create(value_set)
  295.                 data.confirmation_alcohol_in_blood_id = mcu_res.id
  296.             line["res_id"] = mcu_res.id
  297.  
  298.         elif (line["data_model"]=="mcu.data.confirmation.cannabis.in.urine"):
  299.             try :
  300.                 mcu_data_confirmation_cannabis_in_urine = self.env[line["data_model"]]
  301.             except :
  302.                 text = "You need to put mcu.data.confirmation.cannabis.in.urine on the package of %s" % (self.mcu_pack_id.name)
  303.                 raise Warning(text)
  304.  
  305.             mcu_res = data.confirmation_cannabis_in_urine_id
  306.             if mcu_res == False:
  307.                 mcu_res = mcu_data_confirmation_cannabis_in_urine.search(domain)
  308.             if (len(mcu_res)==0 and create):
  309.                 value_set = {
  310.                     "patient_id": patient_id,
  311.                     "data_id": data.id,
  312.                 }
  313.                 value_set.update(header_link)
  314.                 mcu_res = mcu_data_confirmation_cannabis_in_urine.create(value_set)
  315.                 data.confirmation_cannabis_in_urine_id = mcu_res.id
  316.             line["res_id"] = mcu_res.id
  317.  
  318.         elif (line["data_model"]=="mcu.data.confirmation.opiates.in.urine"):
  319.             try :
  320.                 mcu_data_confirmation_opiates_in_urine = self.env[line["data_model"]]
  321.             except :
  322.                 text = "You need to put mcu.data.confirmation.opiates.in.urine on the package of %s" % (self.mcu_pack_id.name)
  323.                 raise Warning(text)
  324.  
  325.             mcu_res = data.confirmation_opiates_in_urine_id
  326.             if mcu_res == False:
  327.                 mcu_res = mcu_data_confirmation_opiates_in_urine.search(domain)
  328.             if (len(mcu_res)==0 and create):
  329.                 value_set = {
  330.                     "patient_id": patient_id,
  331.                     "data_id": data.id,
  332.                 }
  333.                 value_set.update(header_link)
  334.                 mcu_res = mcu_data_confirmation_opiates_in_urine.create(value_set)
  335.                 data.confirmation_opiates_in_urine_id = mcu_res.id
  336.             line["res_id"] = mcu_res.id
  337.  
  338.         elif (line["data_model"]=="mcu.data.confirmation.benzodiazepine.in.urine"):
  339.             try :
  340.                 mcu_data_confirmation_benzodiazepine_in_urine = self.env[line["data_model"]]
  341.             except :
  342.                 text = "You need to put mcu.data.confirmation.benzodiazepine.in.urine on the package of %s" % (self.mcu_pack_id.name)
  343.                 raise Warning(text)
  344.  
  345.             mcu_res = data.confirmation_benzodiazepine_in_urine_id
  346.             if mcu_res == False:
  347.                 mcu_res = mcu_data_confirmation_benzodiazepine_in_urine.search(domain)
  348.             if (len(mcu_res)==0 and create):
  349.                 value_set = {
  350.                     "patient_id": patient_id,
  351.                     "data_id": data.id,
  352.                 }
  353.                 value_set.update(header_link)
  354.                 mcu_res = mcu_data_confirmation_benzodiazepine_in_urine.create(value_set)
  355.                 data.confirmation_benzodiazepine_in_urine_id = mcu_res.id
  356.             line["res_id"] = mcu_res.id
  357.  
  358.         elif (line["data_model"]=="mcu.data.confirmation.barbiturate.in.blood"):
  359.             try :
  360.                 mcu_data_confirmation_barbiturate_in_blood = self.env[line["data_model"]]
  361.             except :
  362.                 text = "You need to put mcu.data.confirmation.barbiturate.in.blood on the package of %s" % (self.mcu_pack_id.name)
  363.                 raise Warning(text)
  364.  
  365.             mcu_res = data.confirmation_barbiturate_in_blood_id
  366.             if mcu_res == False:
  367.                 mcu_res = mcu_data_confirmation_barbiturate_in_blood.search(domain)
  368.             if (len(mcu_res)==0 and create):
  369.                 value_set = {
  370.                     "patient_id": patient_id,
  371.                     "data_id": data.id,
  372.                 }
  373.                 value_set.update(header_link)
  374.                 mcu_res = mcu_data_confirmation_barbiturate_in_blood.create(value_set)
  375.                 data.confirmation_barbiturate_in_blood_id = mcu_res.id
  376.             line["res_id"] = mcu_res.id
  377.  
  378.         elif (line["data_model"]=="xray.record" or line["data_model"]=="ecg.record" or line["data_model"]=="usg.record" or line["data_model"]=="treadmill.record"):
  379.             # import ipdb; ipdb.set_trace();
  380.             patient_xray = self.env[line["data_model"]]
  381.            
  382.             domain_ext = domain[:]
  383.             if line["exam_id"] :
  384.                 domain_ext.extend([("exam_id", "=", line["exam_id"])])
  385.            
  386.             mcu_res = patient_xray.search(domain_ext)
  387.             if (len(mcu_res)==0 and create):
  388.                 # mcu_note = ", ".join([doc.name for doc in rec.child_ids])
  389.                 value_set = {
  390.                     "patient_id": patient_id,
  391.                     "medical_center_id": self.medical_center_id.id,
  392.                     # "medical_staff_id": self.medical_staff_id.id,
  393.                     "exam_id": line["exam_id"],
  394.                     "data_id": data.id,
  395.                 }
  396.                 value_set.update(header_link)
  397.                 mcu_res = patient_xray.create(value_set)
  398.                
  399.                 if line["data_model"]=="xray.record":
  400.                     data.xray_record_id = mcu_res.id
  401.                
  402.                 if line["data_model"]=="ecg.record":
  403.                     data.ecg_record_id = mcu_res.id
  404.                
  405.                 if line["data_model"]=="usg.record":
  406.                     data.usg_record_id = mcu_res.id
  407.                
  408.                 if line["data_model"]=="treadmill.record":
  409.                     data.treadmill_record_id = mcu_res.id
  410.            
  411.             # import ipdb; ipdb.set_trace();
  412.             line["res_id"] = mcu_res.id
  413.  
  414.         elif (line["data_model"]=="mcu.data.culture.sensitivity"):
  415.             culture = self.env[line["data_model"]]
  416.             mcu_res = data.culture_sensitivity_id
  417.             if mcu_res == False:
  418.                 mcu_res = culture.search(domain)
  419.             if (len(mcu_res)==0 and create):
  420.                 value_set = {
  421.                     "mcu_data_id": data.id,
  422.                     "patient_id": patient_id,
  423.                     "data_id": data.id,
  424.                 }
  425.                 value_set.update(header_link)
  426.                 mcu_res = culture.create(value_set)
  427.                 data.culture_sensitivity_id = mcu_res.id
  428.             line["res_id"] = mcu_res.id
  429.        
  430.         elif (line["data_model"]=="mcu.data.hb.electrophoresis"):
  431.             hbe = self.env[line["data_model"]]
  432.             mcu_res = data.hb_electrophoresis_id
  433.             if mcu_res == False:
  434.                 mcu_res = hbe.search(domain)
  435.             if (len(mcu_res)==0 and create):
  436.                 value_set = {
  437.                     "patient_id": patient_id,
  438.                     "data_id": data.id,
  439.                 }
  440.                 value_set.update(header_link)
  441.                 mcu_res = hbe.create(value_set)
  442.                 data.hb_electrophoresis_id = mcu_res.id
  443.             line["res_id"] = mcu_res.id
  444.  
  445.         elif (line["data_model"]=="mcu.data.brief.mental.status"):
  446.             try :
  447.                 mcu_brief_mental_status = self.env[line["data_model"]]
  448.             except :
  449.                 text = "You need to put mcu.data.brief.mental.status on the package of %s" % (self.mcu_pack_id.name)
  450.                 raise Warning(text)
  451.  
  452.             mcu_res = data.brief_mental_status_id
  453.             if mcu_res == False:
  454.                 mcu_res = mcu_brief_mental_status.search(domain)
  455.             if (len(mcu_res)==0 and create):
  456.                 value_set = {
  457.                     "patient_id": patient_id,
  458.                     "data_id": data.id,
  459.                 }
  460.                 value_set.update(header_link)
  461.                 mcu_res = mcu_brief_mental_status.create(value_set)
  462.                 data.brief_mental_status_id = mcu_res.id
  463.             line["res_id"] = mcu_res.id
  464.  
  465.         elif (line["data_model"]=="mcu.data.mercury"):
  466.             try :
  467.                 mcu_data_mercury = self.env[line["data_model"]]
  468.             except :
  469.                 text = "You need to put mcu.data.mercury on the package of %s" % (self.mcu_pack_id.name)
  470.                 raise Warning(text)
  471.  
  472.             mcu_res = data.mercury_id
  473.             if mcu_res == False:
  474.                 mcu_res = mcu_data_mercury.search(domain)
  475.             if (len(mcu_res)==0 and create):
  476.                 value_set = {
  477.                     "patient_id": patient_id,
  478.                     "data_id": data.id,
  479.                 }
  480.                 value_set.update(header_link)
  481.                 mcu_res = mcu_data_mercury.create(value_set)
  482.                 data.mercury_id = mcu_res.id
  483.             line["res_id"] = mcu_res.id
  484.  
  485.         elif (line["data_model"]=="mcu.data.lead"):
  486.             try :
  487.                 mcu_data_lead = self.env[line["data_model"]]
  488.             except :
  489.                 text = "You need to put mcu.data.lead on the package of %s" % (self.mcu_pack_id.name)
  490.                 raise Warning(text)
  491.  
  492.             mcu_res = data.lead_id
  493.             if mcu_res == False:
  494.                 mcu_res = mcu_data_lead.search(domain)
  495.             if (len(mcu_res)==0 and create):
  496.                 value_set = {
  497.                     "patient_id": patient_id,
  498.                     "data_id": data.id,
  499.                 }
  500.                 value_set.update(header_link)
  501.                 mcu_res = mcu_data_lead.create(value_set)
  502.                 data.lead_id = mcu_res.id
  503.             line["res_id"] = mcu_res.id
  504.  
  505.         elif (line["data_model"]=="mcu.data.arsenic"):
  506.             try :
  507.                 mcu_data_arsenic = self.env[line["data_model"]]
  508.             except :
  509.                 text = "You need to put mcu.data.arsenic on the package of %s" % (self.mcu_pack_id.name)
  510.                 raise Warning(text)
  511.  
  512.             mcu_res = data.arsenic_id
  513.             if mcu_res == False:
  514.                 mcu_res = mcu_data_arsenic.search(domain)
  515.             if (len(mcu_res)==0 and create):
  516.                 value_set = {
  517.                     "patient_id": patient_id,
  518.                     "data_id": data.id,
  519.                 }
  520.                 value_set.update(header_link)
  521.                 mcu_res = mcu_data_arsenic.create(value_set)
  522.                 data.arsenic_id = mcu_res.id
  523.             line["res_id"] = mcu_res.id
  524.  
  525.         elif (line["data_model"]=="mcu.data.xylene"):
  526.             try :
  527.                 mcu_data_xylene = self.env[line["data_model"]]
  528.             except :
  529.                 text = "You need to put mcu.data.xylene on the package of %s" % (self.mcu_pack_id.name)
  530.                 raise Warning(text)
  531.  
  532.             mcu_res = data.xylene_id
  533.             if mcu_res == False:
  534.                 mcu_res = mcu_data_xylene.search(domain)
  535.             if (len(mcu_res)==0 and create):
  536.                 value_set = {
  537.                     "patient_id": patient_id,
  538.                     "data_id": data.id,
  539.                 }
  540.                 value_set.update(header_link)
  541.                 mcu_res = mcu_data_xylene.create(value_set)
  542.                 data.xylene_id = mcu_res.id
  543.             line["res_id"] = mcu_res.id
  544.  
  545.         elif (line["data_model"]=="mcu.data.benzene"):
  546.             try :
  547.                 mcu_data_benzene = self.env[line["data_model"]]
  548.             except :
  549.                 text = "You need to put mcu.data.benzene on the package of %s" % (self.mcu_pack_id.name)
  550.                 raise Warning(text)
  551.  
  552.             mcu_res = data.benzene_id
  553.             if mcu_res == False:
  554.                 mcu_res = mcu_data_benzene.search(domain)
  555.             if (len(mcu_res)==0 and create):
  556.                 value_set = {
  557.                     "patient_id": patient_id,
  558.                     "data_id": data.id,
  559.                 }
  560.                 value_set.update(header_link)
  561.                 mcu_res = mcu_data_benzene.create(value_set)
  562.                 data.benzene_id = mcu_res.id
  563.             line["res_id"] = mcu_res.id
  564.  
  565.         elif (line["data_model"]=="mcu.data.toluene"):
  566.             try :
  567.                 mcu_data_toluene = self.env[line["data_model"]]
  568.             except :
  569.                 text = "You need to put mcu.data.toluene on the package of %s" % (self.mcu_pack_id.name)
  570.                 raise Warning(text)
  571.  
  572.             mcu_res = data.toluene_id
  573.             if mcu_res == False:
  574.                 mcu_res = mcu_data_toluene.search(domain)
  575.             if (len(mcu_res)==0 and create):
  576.                 value_set = {
  577.                     "patient_id": patient_id,
  578.                     "data_id": data.id,
  579.                 }
  580.                 value_set.update(header_link)
  581.                 mcu_res = mcu_data_toluene.create(value_set)
  582.                 data.toluene_id = mcu_res.id
  583.             line["res_id"] = mcu_res.id
  584.  
  585.         elif (line["data_model"]=="mcu.data.health.history.dslng"):
  586.             try :
  587.                 mcu_data_dslng = self.env[line["data_model"]]
  588.             except :
  589.                 text = "You need to put mcu.data.health.history.dslng on the package of %s" % (self.mcu_pack_id.name)
  590.                 raise Warning(text)
  591.  
  592.             mcu_res = data.health_history_dslng_id
  593.             if mcu_res == False:
  594.                 mcu_res = mcu_data_dslng.search(domain)
  595.             if (len(mcu_res)==0 and create):
  596.                 value_set = {
  597.                     "patient_id": patient_id,
  598.                     "data_id": data.id,
  599.                 }
  600.                 value_set.update(header_link)
  601.                 mcu_res = mcu_data_dslng.create(value_set)
  602.                 data.health_history_dslng_id = mcu_res.id
  603.             line["res_id"] = mcu_res.id
  604.  
  605.         elif (line["data_model"]=="mcu.data.general.physical"):
  606.             try :
  607.                 mcu_general_physical = self.env[line["data_model"]]
  608.             except :
  609.                 text = "You need to put mcu.data.general.physical on the package of %s" % (self.mcu_pack_id.name)
  610.                 raise Warning(text)
  611.  
  612.             mcu_res = data.general_physical_id
  613.             if mcu_res == False:
  614.                 mcu_res = mcu_general_physical.search(domain)
  615.             if (len(mcu_res)==0 and create):
  616.                 value_set = {
  617.                     "patient_id": patient_id,
  618.                     "data_id": data.id,
  619.                 }
  620.                 value_set.update(header_link)
  621.                 mcu_res = mcu_general_physical.create(value_set)
  622.                 data.general_physical_id = mcu_res.id
  623.             line["res_id"] = mcu_res.id
  624.  
  625.         elif (line["data_model"]=="mcu.data.hearing.assessment"):
  626.             try :
  627.                 mcu_hearing_assessment = self.env[line["data_model"]]
  628.             except :
  629.                 text = "You need to put mcu.data.hearing.assessment on the package of %s" % (self.mcu_pack_id.name)
  630.                 raise Warning(text)
  631.  
  632.             mcu_res = data.hearing_assessment_id
  633.             if mcu_res == False:
  634.                 mcu_res = mcu_hearing_assessment.search(domain)
  635.             if (len(mcu_res)==0 and create):
  636.                 value_set = {
  637.                     "patient_id": patient_id,
  638.                     "data_id": data.id,
  639.                 }
  640.                 value_set.update(header_link)
  641.                 mcu_res = mcu_hearing_assessment.create(value_set)
  642.                 data.hearing_asssessment_id = mcu_res.id
  643.             line["res_id"] = mcu_res.id
  644.  
  645.         elif (line["data_model"]=="mcu.data.visual.assessment"):
  646.             try :
  647.                 mcu_visual_assessment = self.env[line["data_model"]]
  648.             except :
  649.                 text = "You need to put mcu.data.visual.assessment on the package of %s" % (self.mcu_pack_id.name)
  650.                 raise Warning(text)
  651.  
  652.             mcu_res = data.visual_assessment_id
  653.             if mcu_res == False:
  654.                 mcu_res = mcu_visual_assessment.search(domain)
  655.             if (len(mcu_res)==0 and create):
  656.                 value_set = {
  657.                     "patient_id": patient_id,
  658.                     "data_id": data.id,
  659.                 }
  660.                 value_set.update(header_link)
  661.                 mcu_res = mcu_visual_assessment.create(value_set)
  662.                 data.visual_assessment_id = mcu_res.id
  663.             line["res_id"] = mcu_res.id
  664.  
  665.         elif (line["data_model"]=="mcu.data.neurological"):
  666.             try :
  667.                 mcu_data_neurological = self.env[line["data_model"]]
  668.             except :
  669.                 text = "You need to put mcu.data.neurological on the package of %s" % (self.mcu_pack_id.name)
  670.                 raise Warning(text)
  671.  
  672.             mcu_res = data.neurological_id
  673.             if mcu_res == False:
  674.                 mcu_res = mcu_data_neurological.search(domain)
  675.             if (len(mcu_res)==0 and create):
  676.                 value_set = {
  677.                     "patient_id": patient_id,
  678.                     "data_id": data.id,
  679.                 }
  680.                 value_set.update(header_link)
  681.                 mcu_res = mcu_data_neurological.create(value_set)
  682.                 data.neurological_id = mcu_res.id
  683.             line["res_id"] = mcu_res.id
  684.  
  685.         elif (line["data_model"]=="mcu.data.musculoskeletal"):
  686.             try :
  687.                 mcu_data_musculoskeletal = self.env[line["data_model"]]
  688.             except :
  689.                 text = "You need to put mcu.data.mcu.data.musculoskeletal on the package of %s" % (self.mcu_pack_id.name)
  690.                 raise Warning(text)
  691.  
  692.             mcu_res = data.musculoskeletal_id
  693.             if mcu_res == False:
  694.                 mcu_res = mcu_data_musculoskeletal.search(domain)
  695.             if (len(mcu_res)==0 and create):
  696.                 value_set = {
  697.                     "patient_id": patient_id,
  698.                     "data_id": data.id,
  699.                 }
  700.                 value_set.update(header_link)
  701.                 mcu_res = mcu_data_musculoskeletal.create(value_set)
  702.                 data.musculoskeletal_id = mcu_res.id
  703.             line["res_id"] = mcu_res.id
  704.  
  705.         elif (line["data_model"]=="mcu.data.respiratory"):
  706.             try :
  707.                 mcu_data_respiratory = self.env[line["data_model"]]
  708.             except :
  709.                 text = "You need to put mcu.data.respiratory on the package of %s" % (self.mcu_pack_id.name)
  710.                 raise Warning(text)
  711.  
  712.             mcu_res = data.respiratory_id
  713.             if mcu_res == False:
  714.                 mcu_res = mcu_data_respiratory.search(domain)
  715.             if (len(mcu_res)==0 and create):
  716.                 value_set = {
  717.                     "patient_id": patient_id,
  718.                     "data_id": data.id,
  719.                 }
  720.                 value_set.update(header_link)
  721.                 mcu_res = mcu_data_respiratory.create(value_set)
  722.                 data.respiratory_id = mcu_res.id
  723.             line["res_id"] = mcu_res.id
  724.  
  725.         elif (line["data_model"]=="mcu.data.abdomen"):
  726.             try :
  727.                 mcu_data_abdomen = self.env[line["data_model"]]
  728.             except :
  729.                 text = "You need to put mcu.data.abdomen on the package of %s" % (self.mcu_pack_id.name)
  730.                 raise Warning(text)
  731.  
  732.             mcu_res = data.abdomen_id
  733.             if mcu_res == False:
  734.                 mcu_res = mcu_data_abdomen.search(domain)
  735.             if (len(mcu_res)==0 and create):
  736.                 value_set = {
  737.                     "patient_id": patient_id,
  738.                     "data_id": data.id,
  739.                 }
  740.                 value_set.update(header_link)
  741.                 mcu_res = mcu_data_abdomen.create(value_set)
  742.                 data.abdomen_id = mcu_res.id
  743.             line["res_id"] = mcu_res.id
  744.  
  745.         elif (line["data_model"]=="mcu.data.cardiovascular"):
  746.             try :
  747.                 mcu_data_cardiovascular = self.env[line["data_model"]]
  748.             except :
  749.                 text = "You need to put mcu.data.cardiovascular on the package of %s" % (self.mcu_pack_id.name)
  750.                 raise Warning(text)
  751.  
  752.             mcu_res = data.cardiovascular_id
  753.             if mcu_res == False:
  754.                 mcu_res = mcu_data_cardiovascular.search(domain)
  755.             if (len(mcu_res)==0 and create):
  756.                 value_set = {
  757.                     "patient_id": patient_id,
  758.                     "data_id": data.id,
  759.                 }
  760.                 value_set.update(header_link)
  761.                 mcu_res = mcu_data_cardiovascular.create(value_set)
  762.                 data.cardiovascular_id = mcu_res.id
  763.             line["res_id"] = mcu_res.id
  764.  
  765.         elif (line["data_model"]=="finding.recommendation"):
  766.             try :
  767.                 finding_recommendation = self.env[line["data_model"]]
  768.             except :
  769.                 text = "You need to finding.recommendation on the package of %s" % (self.mcu_pack_id.name)
  770.                 raise Warning(text)
  771.  
  772.             mcu_res = finding_recommendation.search(domain)
  773.             if (len(mcu_res)==0 and create):
  774.                 value_set = {
  775.                     "patient_id": patient_id,
  776.                     "data_id": data.id,
  777.                 }
  778.                 value_set.update(header_link)
  779.                 mcu_res = finding_recommendation.create(value_set)
  780.                 data.find_recom_id = mcu_res.id
  781.             line["res_id"] = mcu_res.id
  782.  
  783.         else:
  784.             # if rec.name == "Examination":
  785.                 # import ipdb; ipdb.set_trace();
  786.  
  787.             mcu_data = self.env["mcu.data"]
  788.             mcu_res = None
  789.             domain_ext = domain[:]
  790.             if line["exam_id"] :
  791.                 domain_ext.extend([("mcu_record_line_id", "!=", False), ("exam_id", "=", line["exam_id"])])
  792.                 mcu_res = mcu_data.search(domain_ext)
  793.             else :
  794.                 domain_ext.extend([("mcu_record_line_id", "=", line["id"])])
  795.                 mcu_res = mcu_data.search(domain_ext)
  796.            
  797.             # if len(mcu_res) > 1:
  798.                 # import ipdb; ipdb.set_trace();
  799.             if len(mcu_res) :
  800.                 line["res_id"] = mcu_res.id
  801.  
  802.             # check the children
  803.             domain_ext = domain[:] #reset the domain_ext
  804.             domain_ext.extend([("parent_mcu_data_id", "=", mcu_res.id)])
  805.             mcu_children = mcu_data.search(domain_ext)
  806.            
  807.             # import ipdb; ipdb.set_trace();
  808.  
  809.             if len(mcu_children) != line["count_childs"]:
  810.                 # mcu_res = mcu_data.search([["patient_mcu_id", "=", patient_mcu_id], ["mcu_record_line_id", "=", rec.id]])
  811.                 line["res_id"] = data.id
  812.  
  813.         return line
  814.  
  815.     def _checkup_lines(self, query_mode, header_id, parent_id=False, dictionary=""):
  816.         mcu_line = self.env["mcu.record.line"]
  817.         mcu_data = self.env["mcu.data"]
  818.  
  819.         dictionary = [];
  820.  
  821.         domain = None
  822.        
  823.         if query_mode=="mcu":
  824.             domain = [("patient_mcu_id", "=", header_id)]
  825.  
  826.         if query_mode=="outpatient":
  827.             domain = [("outpatient_lab_id", "=", header_id)]
  828.        
  829.         if query_mode=="inpatient":
  830.             domain = [("inpatient_lab_id", "=", header_id)]
  831.        
  832.         domain.extend([("parent_id", "=", parent_id), ("include", "=", True)])
  833.         recs = mcu_line.search(domain, order="sequence asc")
  834.         # recs = mcu_line.search([["patient_mcu_id", "=", patient_mcu_id], ("parent_id", "=", parent_id)], order="sequence asc")
  835.        
  836.         for rec in recs:
  837.             value = {
  838.                 "id": rec.id,
  839.                 "name": rec.name,
  840.                 "parent_id": parent_id,
  841.                 "variety": rec.variety,
  842.                 "interest": rec.interest,
  843.                 "unit": rec.unit,
  844.                 "si_unit": rec.si_unit,
  845.                 "data_model": rec.data_model,
  846.                 "product_id": rec.product_id.id,
  847.                 "sequence": rec.sequence,
  848.                 "patient_mcu_id": header_id,
  849.                 "display_name": rec.display_name,
  850.                 "exam_id": rec.exam_id.id,
  851.                 "count_childs": rec.count_childs
  852.             }
  853.  
  854.             rec_id = rec.id
  855.            
  856.             data = mcu_data.search([["mcu_record_line_id", "=", rec_id]])
  857.            
  858.             value = self._query_mcu_data(query_mode, header_id, value, data) # get res_id
  859.  
  860.             childs = mcu_line.search([["parent_id", "=", rec_id]])
  861.             if len(childs):
  862.                 value["childs"] = self._checkup_lines(query_mode, header_id, rec_id)
  863.             else:
  864.                 value = self._query_mcu_data(query_mode, header_id, value, data) # get res_id
  865.  
  866.             dictionary.append(value);
  867.  
  868.         return dictionary
  869.  
  870.     @api.multi
  871.     def get_checkup_line(self, query_mode, header_id):
  872.         #CR an UID default dari Call Javascript
  873.         line_dictionary = self._checkup_lines(query_mode, header_id)
  874.         import json
  875.         return json.dumps(line_dictionary)
Add Comment
Please, Sign In to add comment