protected static FR_L2PP_GaPP_1554_Array Execute(DbConnection Connection, DbTransaction Transaction, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            //Leave UserCode region to enable user code saving
            #region UserCode
            var returnValue = new FR_L2PP_GaPP_1554_Array();
            //Put your code here
            var parameterTypes = DMPatientParameterTypes.Get_PredefinedPatientParameterTypes(Connection, Transaction, securityTicket);
            List <L2PP_GaPP_1554> patParameters = new List <L2PP_GaPP_1554>();


            P_L2LN_GALFTID_1530 param = new P_L2LN_GALFTID_1530();
            param.Tenant_RefID = securityTicket.TenantID;
            var DBLanguages = cls_Get_All_Languages_ForTenantID.Invoke(Connection, Transaction, param, securityTicket).Result;

            var languages = DBLanguages.Select(i => new ISOLanguage()
            {
                ISO = i.ISO_639_1, LanguageID = i.CMN_LanguageID
            }).ToList();
            Assembly      asm      = Assembly.GetExecutingAssembly();
            XmlDocument   resource = new XmlDocument();
            var           xmlpath  = asm.GetManifestResourceStream(DMPatientParameterTypes.ResourceFilePath);
            XmlTextReader reader   = new XmlTextReader(xmlpath);
            resource.Load(reader);

            var predefinedPatientParameterTypes = DMPatientParameterTypes.Get_PredefinedPatientParameterTypes(Connection, Transaction, securityTicket);

            var globalPropertyMatchingIDs = predefinedPatientParameterTypes.Select(i => i.GlobalPropertyMatchingID).ToList();

            var globalMatching2Dict = DBCommonsReader.Instance.GetDictObjectsFromResourceFile(globalPropertyMatchingIDs, resource,
                                                                                              ORM_HEC_Patient_Parameter.TableName, languages);

            foreach (var item in parameterTypes)
            {
                var patientParameter = ORM_HEC_Patient_Parameter.Query.Search(Connection, Transaction, new ORM_HEC_Patient_Parameter.Query()
                {
                    Tenant_RefID             = securityTicket.TenantID,
                    IsDeleted                = false,
                    GlobalPropertyMatchingID = item.GlobalPropertyMatchingID
                });
                if (patientParameter != null && patientParameter.Count != 0)
                {
                    L2PP_GaPP_1554 patParameter = new L2PP_GaPP_1554();
                    patParameter.GlobalPropertyMatchingID = item.GlobalPropertyMatchingID;
                    patParameter.PatientParameter_ID      = patientParameter.Single().HEC_Patient_ParameterID;
                    patParameters.Add(patParameter);
                }
                else
                {
                    ORM_HEC_Patient_Parameter newPatparameter = new ORM_HEC_Patient_Parameter();
                    newPatparameter.IsVitalParameter         = true;
                    newPatparameter.ParameterType_RefID      = DMPatientParameterTypes.Get_PatientParameterTypes_for_GlobalPropertyMatchingID(Connection, Transaction, item.GlobalPropertyMatchingID, securityTicket);
                    newPatparameter.Tenant_RefID             = securityTicket.TenantID;
                    newPatparameter.PatientParameterITL      = Guid.NewGuid().ToString();
                    newPatparameter.GlobalPropertyMatchingID = item.GlobalPropertyMatchingID;
                    newPatparameter.IsString       = true;
                    newPatparameter.Parameter_Name = globalMatching2Dict[item.GlobalPropertyMatchingID];
                    newPatparameter.Save(Connection, Transaction);

                    L2PP_GaPP_1554 patParameter = new L2PP_GaPP_1554();
                    patParameter.GlobalPropertyMatchingID = item.GlobalPropertyMatchingID;
                    patParameter.PatientParameter_ID      = newPatparameter.HEC_Patient_ParameterID;
                    patParameters.Add(patParameter);
                }
            }
            returnValue.Result = patParameters.ToArray();
            return(returnValue);

            #endregion UserCode
        }
Пример #2
0
        protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5DI_SV_1333 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_Guid();
            //Put your code here

            var groupType = ORM_HEC_Patient_ParameterType_Group.Query.Search(Connection, Transaction, new ORM_HEC_Patient_ParameterType_Group.Query()
            {
                Tenant_RefID             = securityTicket.TenantID,
                IsDeleted                = false,
                GlobalPropertyMatchingID = "myhealtclub.gpapp.group.custom" // promeniti
            }).SingleOrDefault();
            if (groupType == null)
            {
                groupType = new ORM_HEC_Patient_ParameterType_Group()
                {
                    GlobalPropertyMatchingID          = "myhealtclub.gpapp.group.custom",
                    HEC_Patient_ParameterType_GroupID = Guid.NewGuid(),
                    Tenant_RefID = securityTicket.TenantID
                };
                groupType.Save(Connection, Transaction);
            }


            ORM_HEC_Patient_Parameter vital;

            if (Parameter.HEC_Patient_ParameterID != Guid.Empty)
            {
                vital = ORM_HEC_Patient_Parameter.Query.Search(Connection, Transaction, new ORM_HEC_Patient_Parameter.Query()
                {
                    Tenant_RefID            = securityTicket.TenantID,
                    IsDeleted               = false,
                    HEC_Patient_ParameterID = Parameter.HEC_Patient_ParameterID
                }).Single();

                returnValue.Result = vital.HEC_Patient_ParameterID;

                if (Parameter.IsDeleted)
                {
                    vital.IsDeleted = true;
                    vital.Save(Connection, Transaction);

                    var avaUnitDel = ORM_HEC_Patient_ParameterType_AvailableUnit.Query.SoftDelete(Connection, Transaction, new ORM_HEC_Patient_ParameterType_AvailableUnit.Query()
                    {
                        Tenant_RefID = securityTicket.TenantID,
                        IsDeleted    = false,
                        Patient_ParameterType_RefID = vital.ParameterType_RefID
                    });

                    var typeDel = ORM_HEC_Patient_ParameterType.Query.SoftDelete(Connection, Transaction, new ORM_HEC_Patient_ParameterType.Query()
                    {
                        Tenant_RefID = securityTicket.TenantID,
                        IsDeleted    = false,
                        HEC_Patient_ParameterTypeID = vital.ParameterType_RefID
                    });

                    var t2gtDel = ORM_HEC_Patient_ParameterType_2_ParameterTypeGroup.Query.SoftDelete(Connection, Transaction, new ORM_HEC_Patient_ParameterType_2_ParameterTypeGroup.Query()
                    {
                        Tenant_RefID = securityTicket.TenantID,
                        IsDeleted    = false,
                        HEC_Patient_ParameterType_RefID       = vital.ParameterType_RefID,
                        HEC_Patient_ParameterType_Group_RefID = groupType.HEC_Patient_ParameterType_GroupID
                    });
                }
                else
                {
                    var AvaUnit = ORM_HEC_Patient_ParameterType_AvailableUnit.Query.Search(Connection, Transaction, new ORM_HEC_Patient_ParameterType_AvailableUnit.Query()
                    {
                        Tenant_RefID = securityTicket.TenantID,
                        IsDeleted    = false,
                        Patient_ParameterType_RefID = vital.ParameterType_RefID
                    }).Single();

                    AvaUnit.Unit_RefID = Parameter.Unit_RefID;
                    AvaUnit.Save(Connection, Transaction);

                    vital.Parameter_Name   = Parameter.Parameter_Name;
                    vital.IfFloat_MaxValue = Parameter.MaxValue;
                    vital.IfFloat_MinValue = Parameter.MinValue;
                    vital.Save(Connection, Transaction);
                }
            }
            else
            {
                vital = new ORM_HEC_Patient_Parameter()
                {
                    Tenant_RefID            = securityTicket.TenantID,
                    IsVitalParameter        = true,
                    Parameter_Name          = Parameter.Parameter_Name,
                    HEC_Patient_ParameterID = Guid.NewGuid(),
                    PatientParameterITL     = Guid.NewGuid().ToString(),
                    IsFloat = true
                };

                returnValue.Result = vital.HEC_Patient_ParameterID;

                var type = new ORM_HEC_Patient_ParameterType()
                {
                    Tenant_RefID = securityTicket.TenantID,
                    HEC_Patient_ParameterTypeID = Guid.NewGuid(),
                };
                type.Save(Connection, Transaction);

                vital.Parameter_Name      = Parameter.Parameter_Name;
                vital.IfFloat_MaxValue    = Parameter.MaxValue;
                vital.IfFloat_MinValue    = Parameter.MinValue;
                vital.ParameterType_RefID = type.HEC_Patient_ParameterTypeID;
                vital.Save(Connection, Transaction);

                var t2gt = new ORM_HEC_Patient_ParameterType_2_ParameterTypeGroup()
                {
                    Tenant_RefID = securityTicket.TenantID,
                    AssignmentID = Guid.NewGuid(),
                    HEC_Patient_ParameterType_Group_RefID = groupType.HEC_Patient_ParameterType_GroupID,
                    HEC_Patient_ParameterType_RefID       = type.HEC_Patient_ParameterTypeID
                };
                t2gt.Save(Connection, Transaction);

                var AvaUnit = new ORM_HEC_Patient_ParameterType_AvailableUnit()
                {
                    Tenant_RefID  = securityTicket.TenantID,
                    IsDefaultUnit = true,
                    Patient_ParameterType_RefID = type.HEC_Patient_ParameterTypeID,
                    HEC_Patient_ParameterType_AvailableUnitID = Guid.NewGuid(),
                    Unit_RefID = Parameter.Unit_RefID
                };
                AvaUnit.Save(Connection, Transaction);
            }


            return(returnValue);

            #endregion UserCode
        }