多返回值的例子

    public void getMedicationAndEncounterInfo() throws Exception
    {
        String sql = getParameter("sql");
        if (sql == null || sql.trim().length() < 1)
            return;

        List<List<Object>> list = new MedicationDAO()
                .getMedicationAndEncounterInfo(sql);

        List<PatientOrder> medicationList = list != null && list.size() > 0 ? (List) list
                .get(0) : new ArrayList<PatientOrder>();

        List<PatientInEncounter> encounterList = list != null
                && list.size() > 1 ? (List) list.get(1)
                : new ArrayList<PatientInEncounter>();

        List<PatientDemographics> demoList = list != null && list.size() > 2 ? (List) list
                .get(2) : new ArrayList<PatientDemographics>();

        resp.addParameter("medicationList", medicationList);
        resp.addParameter("encounterList", encounterList);
        resp.addParameter("demoList", demoList);
    }
public List<List<Object>> getMedicationAndEncounterInfo(String sql)
            throws Exception
    {
        DBOperator dbo = getDBOperator();
        try
        {
            PatientOrderTableAdapter adapt = new PatientOrderTableAdapter(dbo);
            PatientInEncounterTableAdapter paAdapt = new PatientInEncounterTableAdapter(
                    dbo);
            PatientDemographicsTableAdapter deAdapt = new PatientDemographicsTableAdapter(
                    dbo);
            System.out.println("sql=" + sql);
            List<List<Object>> list = dbo.executeQuery(sql, new TableAdapter[]
            { adapt, paAdapt, deAdapt });
            return list;
        } catch (Exception e)
        {
            dbo.rollback();
            throw e;
        } finally
        {
            dbo.close();
        }
    }

 

public void LoadPatientOrder()
        {
            ServiceRequest request = new MedicationAction().ServiceReqGetMedicationAndEncounterInfo;
            //string sql = "select a.*,b.*,c.* from gemr.patient_order a,gemr.patient_in_encounter b, patient_demographics c"
            //                + " where (a.status='" + Constant.OrderStatus_Submited
            //                + "' or a.status='" + Constant.OrderStatus_NurseConfirmed
            //                + "' or (a.status='" + Constant.OrderStatus_NurseExecuted
            //                + "'and a.long_flag='Y' and a.date_stopped>'" + DateTime.Today.ToString("yyyy-MM-dd") + "')) and a.record_flag = '" + App.RecordFlag + "' and b.ward_id = '"
            //                + App.CurrentUserRoleWardepComb.Ward.WardId + "'"
            //                + " and a.encounter_id = b.encounter_id and b.demographics_id = c.demographics_id"
            //                + " and (a.deleted_flag <> 'Y' or a.deleted_flag is null) and (b.deleted_flag <> 'Y' or b.deleted_flag is null) and (c.deleted_flag <> 'Y' or c.deleted_flag is null)"
            //                + " order by b.bed_num,a.encounter_id, a.date_started";

            string sql = "select a.*,b.*,c.* from gemr.patient_order a,gemr.patient_in_encounter b, patient_demographics c"
                          + " where a.status=" + "'"+ Constant.OrderStatus_Submited+ "'"
                          + " and a.record_flag = "  + "'"+App.RecordFlag +"'" 
                          +" and b.ward_id = "+"'"+  App.CurrentUserRoleWardepComb.Ward.WardId + "'"
                          + " and a.encounter_id = b.encounter_id and b.demographics_id = c.demographics_id"
                          + " and (a.deleted_flag <> 'Y' or a.deleted_flag is null) and (b.deleted_flag <> 'Y' or b.deleted_flag is null) and (c.deleted_flag <> 'Y' or c.deleted_flag is null)"
                          + " order by b.bed_num,a.encounter_id, a.date_started";

            request.AddParameter("sql", sql);

            InvokeService(request, (e) =>
            {
                if (e.Response == null) return;
                List<PatientOrder> medicationList = e.Response.GetParameterAsList<PatientOrder>("medicationList");
                List<PatientInEncounter> encounterList = e.Response.GetParameterAsList<PatientInEncounter>("encounterList");
                List<PatientDemographics> demoList = e.Response.GetParameterAsList<PatientDemographics>("demoList");
                List<PatientMedicationCombo> comboList = new List<PatientMedicationCombo>();
                for (int i = 0; i < medicationList.Count; i++)
                {
                    PatientInEncounter encou = null;
                    PatientDemographics demo = null;
                    PatientOrder medi = medicationList[i];

                    if (OrderType.Medication.ToString() != medi.OrderType
                        && Constant.OrderStatus_NurseExecuted.Equals(medi.Status))
                    {
                        continue;
                    }

                    if (i < encounterList.Count)
                    {
                        encou = encounterList[i];
                    }
                    if (i < demoList.Count)
                    {
                        demo = demoList[i];
                    }
                    PatientMedicationCombo combo = new PatientMedicationCombo(medi, encou, demo);
                    comboList.Add(combo);
                }

                //if (comboList != null && comboList.Count > 0)
                //{
                //    comboList = comboList.OrderByDescending(c => c.EncounterInfo).ToList();
                //}

                gridControl1.ItemsSource = comboList;
                gridControl1.ExpandAllGroups();
            });
        }

 

posted @ 2014-01-27 18:31  quietwalk  阅读(258)  评论(0编辑  收藏  举报