コード例 #1
0
        public void WriteDt(DataRange dataRange)
        {
            RedisMq.subscriber.Subscribe("cover2db_finish", (channel, message) => {
                Hashtable ht     = new Hashtable();
                DataTable dtable = new DataTable();

                //数据模拟阶段,选取top k
                int sRec = 2000 * 2000;
                int k    = sRec / (canGridL * canGridW);

                ht["eNodeB"] = message;
                ht["k"]      = k;

                //删除已有的路测点
                ht["fromName"] = dataRange.infAreaId + "_" + message;
                IbatisHelper.ExecuteDelete("delSelectDt", ht);

                DataTable dt = DB.IbatisHelper.ExecuteQueryForDataTable("qureyMockDT", ht);

                dtable.Columns.Add("ID", System.Type.GetType("System.Int32"));
                dtable.Columns.Add("x", System.Type.GetType("System.Decimal"));
                dtable.Columns.Add("y", System.Type.GetType("System.Decimal"));
                //dtable.Columns.Add("Lon", System.Type.GetType("System.Decimal"));
                //dtable.Columns.Add("Lat", System.Type.GetType("System.Decimal"));
                dtable.Columns.Add("RSRP", System.Type.GetType("System.Double"));
                dtable.Columns.Add("InfName", System.Type.GetType("System.String"));
                //dtable.Columns.Add("DtType", System.Type.GetType("System.String"));

                int initOff    = 5000;
                int uid        = (int)UIDHelper.GenUIdByRedis("DT", dt.Rows.Count) + initOff;
                string infName = dataRange.infAreaId + "_" + message;
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    var row         = dt.Rows[i];
                    int gxid        = (int)row["GXID"];
                    int gyid        = (int)row["GYID"];
                    double rsrp     = (double)row["ReceivedPowerdbm"];
                    Point geo       = GridHelper.getInstance().GridToGeo(gxid, gyid);
                    Point proj      = GridHelper.getInstance().GridToXY(gxid, gyid);
                    DataRow thisrow = dtable.NewRow();
                    thisrow["ID"]   = uid + i;
                    thisrow["x"]    = proj.X;
                    thisrow["y"]    = proj.Y;
                    //thisrow["Lon"] = geo.X;
                    //thisrow["Lat"] = geo.Y;
                    thisrow["RSRP"]    = rsrp;
                    thisrow["InfName"] = infName;
                    //thisrow["DtType"] = "mock";
                    dtable.Rows.Add(thisrow);
                }
                //DataUtil.BCPDataTableImport(dtable, "tbUINTF");
                SelectDT(infName, dtable);
            });
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: jhoneswilliam/Evil-DICOM
 private static IEnumerable <DICOMObject> GenerateDICOMFiles()
 {
     for (int i = 0; i < 100; i++)
     {
         var dcm = new DICOMObject();
         dcm.Add(DICOMForge.SOPInstanceUID(UIDHelper.GenerateUID()));
         dcm.Add(DICOMForge.PatientID("123456"));
         dcm.Add(DICOMForge.SOPClassUID(SOPClassUID.CTImageStorage));
         dcm.Add(DICOMForge.TransferSyntaxUID(TransferSyntaxHelper.IMPLICIT_VR_LITTLE_ENDIAN));
         dcm.Add(DICOMForge.PixelData(new byte[10000]));
         yield return(dcm);
     }
 }
コード例 #3
0
        public void Wdt()
        {
            Hashtable ht     = new Hashtable();
            DataTable dtable = new DataTable();

            dtable.Columns.Add("ID", System.Type.GetType("System.Int32"));
            dtable.Columns.Add("x", System.Type.GetType("System.Decimal"));
            dtable.Columns.Add("y", System.Type.GetType("System.Decimal"));
            dtable.Columns.Add("Lon", System.Type.GetType("System.Decimal"));
            dtable.Columns.Add("Lat", System.Type.GetType("System.Decimal"));
            dtable.Columns.Add("RSRP", System.Type.GetType("System.Double"));
            dtable.Columns.Add("InfName", System.Type.GetType("System.String"));
            dtable.Columns.Add("DtType", System.Type.GetType("System.String"));

            for (int vir = 50369; vir <= 50458; vir++)
            {
                dtable.Clear();
                ht["eNodeB"] = vir;
                DataTable dt      = DB.IbatisHelper.ExecuteQueryForDataTable("qureyMockDT", ht);
                int       initOff = 5000;
                int       uid     = (int)UIDHelper.GenUIdByRedis("DT", dt.Rows.Count) + initOff;

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    var     row     = dt.Rows[i];
                    int     gxid    = (int)row["GXID"];
                    int     gyid    = (int)row["GYID"];
                    double  rsrp    = (double)row["ReceivedPowerdbm"];
                    Point   geo     = GridHelper.getInstance().GridToGeo(gxid, gyid);
                    Point   proj    = GridHelper.getInstance().GridToXY(gxid, gyid);
                    DataRow thisrow = dtable.NewRow();
                    thisrow["ID"]      = uid + i;
                    thisrow["x"]       = proj.X;
                    thisrow["y"]       = proj.Y;
                    thisrow["Lon"]     = geo.X;
                    thisrow["Lat"]     = geo.Y;
                    thisrow["RSRP"]    = rsrp;
                    thisrow["InfName"] = "v1" + "_" + vir;
                    thisrow["DtType"]  = "mock";
                    dtable.Rows.Add(thisrow);
                }
                DataUtil.BCPDataTableImport(dtable, "tbUINTF");
            }
        }
コード例 #4
0
ファイル: DICOMhandler.cs プロジェクト: rickardcronholm/EQD
        public void UpdateDose(string path)
        {
            // Compute new dose matrix
            string fileName   = path + this.DoseUID + ".dcm";
            var    DoseValues = computeEQD2(fileName, this.nFractions, this.alphaBeta);

            var sel = new DICOMSelector(dose);

            sel.SOPInstanceUID.Data    = UIDHelper.GenerateUID("1.2.246.352.71.7");
            sel.SeriesInstanceUID.Data = UIDHelper.GenerateUID("1.2.246.352.71.2");

            /*
             * dose.FindFirst(TagHelper.SOPINSTANCE_UID).DData = UIDHelper.GenerateUID();
             * dose.FindFirst(TagHelper.SERIES_INSTANCE_UID).DData = UIDHelper.GenerateUID();
             * this.doseUID = dose.FindFirst(TagHelper.SOPINSTANCE_UID).DData.ToString();
             * return dose.FindFirst(TagHelper.SOPINSTANCE_UID).DData.ToString();
             */
            sel.ReferencedRTPlanSequence_[0].ReferencedSOPInstanceUID.Data = this.planUID;

            // overwrite dose matrix
            var _16b = 1 / Math.Pow(2, 16);

            sel.DoseGridScaling.Data = _16b;
            using (var stream = new MemoryStream())
            {
                var binWriter = new BinaryWriter(stream);
                foreach (var d in DoseValues)
                {
                    int integ = (int)(d / _16b);
                    var bytes = BitConverter.GetBytes(integ);
                    binWriter.Write(integ);
                }
                var ows = new OtherWordString(TagHelper.PIXEL_DATA, stream.ToArray());
                sel.ToDICOMObject().Replace(ows);
            }


            //dose = sel.ToDICOMObject();
            this.doseUID = sel.SOPInstanceUID.Data;

            // add metadata
            dose = AddMetaData(dose);
        }
コード例 #5
0
ファイル: DICOMhandler.cs プロジェクト: rickardcronholm/EQD
        public void UpdatePlan()
        {
            string description = "EGD2 generated from " + this.planUID + "\r\nα/β = " + this.alphaBeta.ToString();
            var    sel         = new DICOMSelector(plan);

            if (sel.RTPlanDescription == null)
            {
                sel.RTPlanDescription = new ShortText(TagHelper.RTPLAN_DESCRIPTION, description);
            }
            else
            {
                sel.RTPlanDescription.Data += description;
            }
            sel.SOPInstanceUID.Data    = UIDHelper.GenerateUID("1.2.246.352.71.5");
            sel.SeriesInstanceUID.Data = UIDHelper.GenerateUID("1.2.246.352.71.2");

            /*
             * sel.MediaStorageSOPClassUID = new UniqueIdentifier(TagHelper.MEDIA_STORAGE_SOPCLASS_UID, sel.SOPClassUID.Data);
             * sel.MediaStorageSOPInstanceUID = new UniqueIdentifier(TagHelper.MEDIA_STORAGE_SOPINSTANCE_UID, sel.SOPInstanceUID.Data);
             * sel.ImplementationClassUID = new UniqueIdentifier(TagHelper.IMPLEMENTATION_CLASS_UID, UIDHelper.GenerateUID());
             */
            sel.ApprovalStatus.Data = "REJECTED";
            sel.RTPlanLabel.Data    = "EQD2_" + sel.RTPlanLabel.Data.Trim();
            if (sel.RTPlanLabel.Data.Length > 13)
            {
                sel.RTPlanLabel.Data = sel.RTPlanLabel.Data.Substring(0, 13).Trim();
            }
            plan = sel.ToDICOMObject();

            /*
             * plan.FindFirst(TagHelper.SOPINSTANCE_UID).DData = UIDHelper.GenerateUID();
             * plan.FindFirst(TagHelper.SERIES_INSTANCE_UID).DData = UIDHelper.GenerateUID();
             * plan.FindFirst(TagHelper.RTPLAN_LABEL).DData = "EQD2_" + plan.FindFirst(TagHelper.RTPLAN_LABEL).DData;
             * plan.FindFirst(TagHelper.APPROVAL_STATUS).DData = "REJECTED";
             * this.planUID = plan.FindFirst(TagHelper.SOPINSTANCE_UID).DData.ToString();
             * return plan.FindFirst(TagHelper.SOPINSTANCE_UID).DData.ToString();
             */
            this.planUID = sel.SOPInstanceUID.Data;

            // add metadata
            plan = AddMetaData(plan);
            //return this.planUID;
        }
コード例 #6
0
ファイル: StorageVerifier.cs プロジェクト: zzti/Evil-DICOM
        private static StorageCommitmentRequest CreateRequest(Dictionary <string, string> dictionary)
        {
            var scr    = new StorageCommitmentRequest();
            var refSeq = DICOMForge.ReferencedPerformedProcedureStepSequence(
                new DICOMObject(DICOMForge.ReferencedSOPClassUID("1.2.840.10008.3.1.2.3.3"),
                                DICOMForge.ReferencedSOPInstanceUID(UIDHelper.GenerateUID())));
            var txId     = DICOMForge.TransactionUID(UIDHelper.GenerateUID());
            var seqItems = new List <DICOMObject>();

            foreach (var entry in dictionary)
            {
                seqItems.Add(new DICOMObject(DICOMForge.ReferencedSOPClassUID(entry.Key),
                                             DICOMForge.ReferencedSOPInstanceUID(entry.Value)));
            }
            var refSeq2 = DICOMForge.ReferencedSOPSequence(seqItems.ToArray());

            scr.Data = new DICOMObject(refSeq, txId, refSeq2);
            return(scr);
        }
コード例 #7
0
        private void handle(JToken jt, string coll, bool hasProjId = false)
        {
            string username         = jt["username"].ToString();
            string email            = jt["email"].ToString();
            string emailVerifyState = jt["emailVerifyState"].ToString();
            string vcode            = UIDHelper.generateVerifyCode();
            string projId           = hasProjId ? jt["projId"].ToString() : "";

            if (toMessage(emailVerifyState, username, email, projId, vcode, out string message, out string hasSendState))
            {
                eh.send(message, email, true);
                var findStr = new JObject {
                    { "email", email }
                }.ToString();
                var updateStr = new JObject {
                    { "$set", new JObject {
                          { "emailVerifyCode", vcode }, { "emailVerifyState", hasSendState }, { "lastUpdateTime", TimeHelper.GetTimeStamp() }
                      } }
                }.ToString();
                mh.UpdateData(daoConn.connStr, daoConn.connDB, coll, updateStr, findStr);
            }
        }
コード例 #8
0
ファイル: UIDAnonymizer.cs プロジェクト: feliwir/Evil-DICOM
        public void AddToUIDDictionary(string uid)
        {
            var newUID = UIDHelper.GenerateUID();

            _uidMap.Add(uid, newUID);
        }
コード例 #9
0
        public List <CellRayTracingModel> interfeCellGen(DataRange dataRange)
        {
            List <CellRayTracingModel> res = new List <CellRayTracingModel>();
            Point pMin = new Point();

            pMin.X = dataRange.minLongitude;
            pMin.Y = dataRange.minLatitude;
            pMin.Z = 0;
            LTE.Utils.PointConvertByProj.Instance.GetProjectPoint(pMin);

            Point pMax = new Point();

            pMax.X = dataRange.maxLongitude;
            pMax.Y = dataRange.maxLatitude;
            pMax.Z = 0;
            LTE.Utils.PointConvertByProj.Instance.GetProjectPoint(pMax);

            double      maxBh       = 90;   //最大建筑物高度
            int         radius      = 1200; //干扰源覆盖半径
            String      tarBaseName = dataRange.infAreaId + "_";
            List <CELL> cells       = new List <CELL>();
            int         batch       = 10;
            int         cnt         = 0;

            //计算测试数据总数
            int    lx       = (int)Math.Ceiling((pMax.X - pMin.X) / dataRange.tarGridX);
            int    ly       = (int)Math.Ceiling((pMax.Y - pMin.Y) / dataRange.tarGridY);
            int    lz       = (int)Math.Ceiling(maxBh / dataRange.tarGridH);
            long   uidBatch = long.Parse((lx * ly * lz).ToString());
            String dbName   = "CELL";
            int    initOff  = 1500000;
            int    uid      = (int)UIDHelper.GenUIdByRedis(dbName, uidBatch) + initOff;

            for (double x = pMin.X; x < pMax.X; x += dataRange.tarGridX)
            {
                for (double y = pMin.Y; y < pMax.Y; y += dataRange.tarGridY)
                {
                    for (double z = 30; z <= maxBh; z += 30)
                    {
                        cnt++;
                        Random r    = new Random(uid);
                        CELL   cELL = new CELL();
                        cELL.ID             = uid;
                        cELL.CellName       = dataRange.infAreaId + "_" + uid;
                        cELL.Altitude       = 13;
                        cELL.AntHeight      = (decimal)z;
                        cELL.x              = (decimal)x;
                        cELL.y              = (decimal)y;
                        cELL.CI             = uid;
                        cELL.eNodeB         = uid;
                        cELL.EIRP           = 32;
                        cELL.Azimuth        = 0;
                        cELL.Tilt           = r.Next(4, 16); //下倾角范围4~16之间随机取
                        cELL.EARFCN         = 63;
                        cELL.CoverageRadius = radius;
                        cells.Add(cELL);

                        CellRayTracingModel rayCell = new CellRayTracingModel();
                        rayCell.cellName         = cELL.CellName;
                        rayCell.reflectionNum    = 3;
                        rayCell.diffPointsMargin = 5;
                        rayCell.diffractionNum   = 2;
                        rayCell.threadNum        = 3;
                        rayCell.incrementAngle   = 180;
                        rayCell.computeIndoor    = false;
                        rayCell.computeDiffrac   = true;
                        rayCell.distance         = radius;
                        res.Add(rayCell);

                        uid++;
                    }
                    if (res.Count >= batch)
                    {
                        IbatisHelper.ExecuteInsert("CELL_BatchInsert", cells);
                        cells.Clear();
                    }
                }
            }
            if (cells.Count > 0)
            {
                IbatisHelper.ExecuteInsert("CELL_BatchInsert", cells);
            }

            return(res);
        }
コード例 #10
0
        private void processProjTeam()
        {
            var match = new JObject {
                { "$match", new JObject {
                      { "emailVerifyState", EmailState.sendBeforeStateAtInvited }
                  } }
            }.ToString();
            var lookup = new JObject {
                { "$lookup", new JObject {
                      { "from", userInfoCol },
                      { "localField", "userId" },
                      { "foreignField", "userId" },
                      { "as", "us" }
                  } }
            }.ToString();
            var project = new JObject {
                { "$project",
                  MongoFieldHelper.toReturn(new string[] { "projId", "userId", "emailVerifyState", "us.username", "us.email" }) }
            }.ToString();
            var list = new List <string>();
            var sort = new JObject {
                { "$sort", new JObject {
                      { "time", 1 }
                  } }
            }.ToString();
            var limit = new JObject {
                { "$limit", 100 }
            }.ToString();

            list.Add(match);
            list.Add(lookup);
            list.Add(sort);
            list.Add(limit);
            list.Add(project);
            var queryRes = mh.Aggregate(daoConn.connStr, daoConn.connDB, projTeamInfoCol, list);

            if (queryRes.Count > 0)
            {
                foreach (var item in queryRes)
                {
                    string projId           = item["projId"].ToString();
                    string userId           = item["userId"].ToString();
                    string username         = ((JArray)item["us"])[0]["username"].ToString();
                    string email            = ((JArray)item["us"])[0]["email"].ToString();
                    string emailVerifyState = item["emailVerifyState"].ToString();
                    string vcode            = UIDHelper.generateVerifyCode();
                    if (toMessage(emailVerifyState, username, email, projId, vcode, out string message, out string hasSendState))
                    {
                        eh.send(message, email, true);
                        var findStr = new JObject {
                            { "projId", projId }, { "userId", userId }
                        }.ToString();
                        var updateStr = new JObject {
                            { "$set", new JObject {
                                  { "emailVerifyCode", vcode }, { "emailVerifyState", hasSendState }, { "lastUpdateTime", TimeHelper.GetTimeStamp() }
                              } }
                        }.ToString();
                        mh.UpdateData(daoConn.connStr, daoConn.connDB, projTeamInfoCol, updateStr, findStr);
                    }
                }
            }
        }