public bool CreateNewPatientChain(NawContracts nawcdata)
        {
            // Create serveral Objects:
            //      Patient stream -> all physician addresses separated by ;

            // autorisatie stream wordt gevuld met de autorisatie van de medicus ten opzichte van andere streams anders dan zijn/haar eigen
            // de streams waarop hij/zij toegang heeft zijn abonnementen
            // de abonnementen kunnen worden ingenomen/ ongedaan gemaakt worden

            // de stappen
            // Create stream client

            var patientAddress = nawcdata.BsnNumber;

            MultiChain chain = new MultiChain();

            chain.CreateNewStream(true, patientAddress);

            var xml    = new XmlSerializer(typeof(NawContracts));
            var reader = new System.IO.StringWriter();

            xml.Serialize(reader, nawcdata);

            var datalocation = this.CreateFileBackup(reader.ToString());

            chain.PublishMessage(new PublishMessageData {
                Key = patientnaw, HexString = this.EncryptHexData(datalocation + "|" + ("NogGeenKey").Replace("-", string.Empty).Replace(" ", string.Empty)), StreamName = patientAddress
            });

            chain.CreateNewStream(true, patientAddress + "-css");
            chain.Subscribe(patientAddress);

            return(true);
        }
        public NawContracts[] GetPatients()
        {
            MultiChain chain    = new MultiChain();
            var        patients = chain.ListStreams();

            List <NawContracts> patientsContracts = new List <NawContracts>();

            foreach (var patient in patients.streams)
            {
                chain.Subscribe(patient.name);
                var result = chain.GetStreamItemByKey(patient.name, patientnaw);

                NawContracts deserialized = null;
                if (result != null && result.streamitems.Any())
                {
                    try
                    {
                        var locationAndKey = this.DeEncryptHexData(result.streamitems.Last().data);
                        var filedata       = File.ReadAllText(locationAndKey.Split('|')[0]);

                        var xml = new XmlSerializer(typeof(NawContracts));
                        deserialized = (NawContracts)xml.Deserialize(new StringReader(filedata));

                        patientsContracts.Add(deserialized);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                    }
                }

                if (patient.name.Contains("-items"))
                {
                    patientsContracts.Last().ItemsList = new List <Items> {
                        new Items {
                            DataBlocks = patient.items, PhysicianIdentification = patient.name
                        }
                    };
                }
            }

            return(patientsContracts.ToArray());
        }