Beispiel #1
0
        public void DeserializeFormDesignFromPath()
        {
            BaseType.ResetSdcImport();
            //string path = @".\Test files\CCO Lung Surgery.xml";
            //string path = @".\Test files\Breast.Invasive.Staging.359_.CTP9_sdcFDF.xml";
            string path = Path.Combine(".", "Test files", "Breast.Invasive.Staging.359_.CTP9_sdcFDF.xml");
            //string path = @".\Test files\Adrenal.Bx.Res.129_3.004.001.REL_sdcFDF_test.xml";
            string sdcFile = File.ReadAllText(path, System.Text.Encoding.UTF8);

            var FD = FormDesignType.DeserializeFromXmlPath(path);
            //SDC.Schema.FormDesignType FD = SDC.Schema.FormDesignType.DeserializeSdcFromFile(sdcFile);
            string myXML;
            //myXML =  SdcSerializer<FormDesignType>.Serialize(FD);

            //Test adding and reading FD object model
            var Q = (QuestionItemType)FD.Nodes.Values.Where(
                t => t.GetType() == typeof(QuestionItemType)).Where(
                q => ((QuestionItemType)q).ID == "58218.100004300").FirstOrDefault();

            var DI = Q.AddChildDisplayedItem("DDDDD");//should add to end of the <List>

            DI.name  = DI.ID;
            DI.title = DI.ID;

            var P = Q.AddProperty(); P.name = "PPPPP"; P.propName = "PPPPP";
            var S = Q.AddChildSection("SSSSS", "SSSSS", 0);
            //Q.Move(new SectionItemType(), -1); Q.AddComment(); Q.Remove();
            //var li = new ListItemType(Q.ListField_Item.List,"abc" ); var b = li.SelectIf.returnVal; var rv = li.OnSelect[0].returnVal;

            DisplayedType    DI1 = (DisplayedType)FD.Nodes.Values.Where(n => n.name == DI.ID)?.First();
            DisplayedType    DI2 = (DisplayedType)Q.ChildItemsNode.Items[0];
            QuestionItemType Q1  = (QuestionItemType)DI2.ParentNode.ParentNode;

            myXML = SdcUtil.XmlReorder(FD.GetXml());
            myXML = SdcUtil.XmlFormat(myXML);



            ListItemType li;


            //var S1 = Q.AddOnEnter().Actions.AddActInject().Item = new SectionItemType(   //Need to add AddActionsNode to numerous classes via IHasActionsNode
            //    parentNode: Q,
            //    id: "myid",
            //    elementName: "",
            //    elementPrefix: "s");

            Debug.Print(myXML);
            FD.Clear();
            //var myMP = FD.GetMsgPack();
            //FD.SaveMsgPackToFile("C:\\MPfile");  //also support REST transactions, like sending packages to SDC endpoints; consider FHIR support
            var myJson = FD.GetJson();

            Debug.Print(myJson);
        }