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()); }