/// <summary>
        /// Create organization scoper
        /// </summary>
        private MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.Organization CreateOrganization(HealthcareParticipant scoper, List <MARC.Everest.Connectors.IResultDetail> details)
        {
            if (scoper == null)
            {
                return(null);
            }

            PN tName = null;

            if (scoper.LegalName != null)
            {
                tName = CreatePN(scoper.LegalName, details);
            }

            var id = scoper.AlternateIdentifiers.Find(o => o.Domain != this.m_configService.OidRegistrar.GetOid("CR_PID").Oid);

            // Basic return value
            var retVal = new MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.Organization(
                SET <II> .CreateSET(CreateII(id, details)),
                scoper.Type != null ? CreateCD <String>(scoper.Type, details) : null,
                tName != null ? BAG <ON> .CreateBAG(new ON(tName.Use[0], tName.Part)) : null,
                null
                );

            // Find all representatives
            foreach (HealthcareParticipant rep in scoper.FindAllComponents(HealthServiceRecordSiteRoleType.RepresentitiveOf))
            {
                var cp = new MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.ContactParty(
                    CreateIISet(rep.AlternateIdentifiers, details),
                    rep.Type != null ? CreateCD <String>(rep.Type, details) : null,
                    rep.PrimaryAddress != null ? BAG <AD> .CreateBAG(CreateAD(rep.PrimaryAddress, details)) : null,
                    null,
                    null
                    );

                // Add telecoms
                if (rep.TelecomAddresses != null)
                {
                    cp.Telecom = new BAG <TEL>();
                    foreach (var tel in rep.TelecomAddresses)
                    {
                        cp.Telecom.Add(CreateTEL(tel, details));
                    }
                }

                // Person info
                if (rep.Classifier == HealthcareParticipant.HealthcareParticipantType.Person && rep.LegalName != null)
                {
                    cp.ContactPerson = new MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.Person(
                        BAG <EN> .CreateBAG(CreatePN(rep.LegalName, details))
                        );
                }
                retVal.ContactParty.Add(cp);
            }

            return(retVal);
        }
Exemple #2
0
		public virtual object Parse(System.Xml.XmlReader s, System.Type useType, System.Type currentInteractionType, MARC.Everest.Formatters.XML.ITS1.XmlIts1FormatterParseResult resultContext) {
			System.String nil = s.GetAttribute("nil", MARC.Everest.Formatters.XML.ITS1.XmlIts1Formatter.NS_XSI);
			if(!System.String.IsNullOrEmpty(nil) && System.Convert.ToBoolean(nil)) return null;;
			MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.ContactParty instance = new MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.ContactParty();;
			if(s.NodeType != System.Xml.XmlNodeType.Element) throw new System.InvalidOperationException(System.String.Format("Expected node type of Element, actual node type is '{0}'", s.NodeType));
if(s.GetAttribute("classCode") != null){ if(!"CON".Equals(s.GetAttribute("classCode"))) resultContext.AddResultDetail(new MARC.Everest.Connectors.FixedValueMisMatchedResultDetail(s.GetAttribute("classCode"), "CON", false, s.ToString()));  instance.ClassCode = (MARC.Everest.DataTypes.CS<System.String>)MARC.Everest.Connectors.Util.FromWireFormat(s.GetAttribute("classCode"), typeof(MARC.Everest.DataTypes.CS<System.String>)); }
			if(s.GetAttribute("nullFlavor") != null) instance.NullFlavor = (MARC.Everest.DataTypes.CS<MARC.Everest.DataTypes.NullFlavor>)MARC.Everest.Connectors.Util.FromWireFormat(s.GetAttribute("nullFlavor"), typeof(MARC.Everest.DataTypes.CS<MARC.Everest.DataTypes.NullFlavor>));
			if(s.IsEmptyElement) return instance;
string sName = s.Name;
int sDepth = s.Depth;
s.Read();
while(!(s.NodeType == System.Xml.XmlNodeType.EndElement && s.Name == sName && s.Depth == sDepth)) {
string oldName = s.LocalName; 
 try { if(s.NodeType == System.Xml.XmlNodeType.Element) { 
 if(s.LocalName == "id" ) {

			object d8be71d934dd84cefa11647be742aa0a6 = Host.ParseObject(s, typeof(MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.II>), currentInteractionType, resultContext); instance.Id = d8be71d934dd84cefa11647be742aa0a6 is MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.II> ? d8be71d934dd84cefa11647be742aa0a6 as MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.II> : (MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.II>)MARC.Everest.Connectors.Util.FromWireFormat(d8be71d934dd84cefa11647be742aa0a6, typeof(MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.II>));
}
else if(s.LocalName == "code" ) {

			object d5ab8ef4eaf1a42a29d504719ed7b4804 = Host.ParseObject(s, typeof(MARC.Everest.DataTypes.CE<System.String>), currentInteractionType, resultContext); instance.Code = d5ab8ef4eaf1a42a29d504719ed7b4804 is MARC.Everest.DataTypes.CE<System.String> ? d5ab8ef4eaf1a42a29d504719ed7b4804 as MARC.Everest.DataTypes.CE<System.String> : (MARC.Everest.DataTypes.CE<System.String>)MARC.Everest.Connectors.Util.FromWireFormat(d5ab8ef4eaf1a42a29d504719ed7b4804, typeof(MARC.Everest.DataTypes.CE<System.String>));
}
else if(s.LocalName == "addr" ) {

			object dacee4e1f2c6f4a5f84dfe7f291b6bd63 = Host.ParseObject(s, typeof(MARC.Everest.DataTypes.BAG<MARC.Everest.DataTypes.AD>), currentInteractionType, resultContext); instance.Addr = dacee4e1f2c6f4a5f84dfe7f291b6bd63 is MARC.Everest.DataTypes.BAG<MARC.Everest.DataTypes.AD> ? dacee4e1f2c6f4a5f84dfe7f291b6bd63 as MARC.Everest.DataTypes.BAG<MARC.Everest.DataTypes.AD> : (MARC.Everest.DataTypes.BAG<MARC.Everest.DataTypes.AD>)MARC.Everest.Connectors.Util.FromWireFormat(dacee4e1f2c6f4a5f84dfe7f291b6bd63, typeof(MARC.Everest.DataTypes.BAG<MARC.Everest.DataTypes.AD>));
}
else if(s.LocalName == "telecom" ) {

			object d7e110f245f8b4610ab388587f6d8634c = Host.ParseObject(s, typeof(MARC.Everest.DataTypes.BAG<MARC.Everest.DataTypes.TEL>), currentInteractionType, resultContext); instance.Telecom = d7e110f245f8b4610ab388587f6d8634c is MARC.Everest.DataTypes.BAG<MARC.Everest.DataTypes.TEL> ? d7e110f245f8b4610ab388587f6d8634c as MARC.Everest.DataTypes.BAG<MARC.Everest.DataTypes.TEL> : (MARC.Everest.DataTypes.BAG<MARC.Everest.DataTypes.TEL>)MARC.Everest.Connectors.Util.FromWireFormat(d7e110f245f8b4610ab388587f6d8634c, typeof(MARC.Everest.DataTypes.BAG<MARC.Everest.DataTypes.TEL>));
}
else if(s.LocalName == "contactPerson" ) {

			object d3f9fa1d66a264e72b14ed96931f1bb04 = Host.ParseObject(s, typeof(MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.Person), currentInteractionType, resultContext); instance.ContactPerson = d3f9fa1d66a264e72b14ed96931f1bb04 is MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.Person ? d3f9fa1d66a264e72b14ed96931f1bb04 as MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.Person : (MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.Person)MARC.Everest.Connectors.Util.FromWireFormat(d3f9fa1d66a264e72b14ed96931f1bb04, typeof(MARC.Everest.RMIM.UV.NE2008.COCT_MT150003UV03.Person));
}
else if(s.LocalName == "realmCode" ) {

			object d9a6dddece679439aa22ea20462309243 = Host.ParseObject(s, typeof(MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.CS<System.String>>), currentInteractionType, resultContext); instance.RealmCode = d9a6dddece679439aa22ea20462309243 is MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.CS<System.String>> ? d9a6dddece679439aa22ea20462309243 as MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.CS<System.String>> : (MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.CS<System.String>>)MARC.Everest.Connectors.Util.FromWireFormat(d9a6dddece679439aa22ea20462309243, typeof(MARC.Everest.DataTypes.SET<MARC.Everest.DataTypes.CS<System.String>>));
}
else if(s.LocalName == "typeId" ) {

			object d1d860b4ac20b4e1b8776f6605e97f83e = Host.ParseObject(s, typeof(MARC.Everest.DataTypes.II), currentInteractionType, resultContext); instance.TypeId = d1d860b4ac20b4e1b8776f6605e97f83e is MARC.Everest.DataTypes.II ? d1d860b4ac20b4e1b8776f6605e97f83e as MARC.Everest.DataTypes.II : (MARC.Everest.DataTypes.II)MARC.Everest.Connectors.Util.FromWireFormat(d1d860b4ac20b4e1b8776f6605e97f83e, typeof(MARC.Everest.DataTypes.II));
}
else if(s.LocalName == "templateId" ) {

			object dd7db895cf42141eda28865ba692cf300 = Host.ParseObject(s, typeof(MARC.Everest.DataTypes.LIST<MARC.Everest.DataTypes.II>), currentInteractionType, resultContext); instance.TemplateId = dd7db895cf42141eda28865ba692cf300 is MARC.Everest.DataTypes.LIST<MARC.Everest.DataTypes.II> ? dd7db895cf42141eda28865ba692cf300 as MARC.Everest.DataTypes.LIST<MARC.Everest.DataTypes.II> : (MARC.Everest.DataTypes.LIST<MARC.Everest.DataTypes.II>)MARC.Everest.Connectors.Util.FromWireFormat(dd7db895cf42141eda28865ba692cf300, typeof(MARC.Everest.DataTypes.LIST<MARC.Everest.DataTypes.II>));
}
else { resultContext.AddResultDetail(new MARC.Everest.Connectors.NotImplementedElementResultDetail(MARC.Everest.Connectors.ResultDetailType.Warning, s.LocalName, s.NamespaceURI, s.ToString(), null)); }
}
}
catch (System.Exception e) { resultContext.AddResultDetail(new MARC.Everest.Connectors.ResultDetail(MARC.Everest.Connectors.ResultDetailType.Error, e.Message, s.ToString(), e)); }
finally { if(oldName.Equals(s.LocalName)) s.Read(); } }
			return instance;
		}