ClassMethod PIXADD()
{
// Create AddUpdateHub Message
Set obj=##class(HS.Message.AddUpdateHubRequest).%New()
// Name, sex, DOB
Set obj.FirstName="James"
Set obj.LastName="Smith"
Set obj.Sex="M"
Set obj.DOB=obj.DOBDisplayToLogical("2000-09-30")
// Inserts full birth name information for the patient
Set tName = ##class(HS.Types.PersonName).%New()
Set tName.Prefix = "Mr."
Set tName.Given = "James"
Set tName.Middle = "Henry"
Set tName.Family = "Smith"
Set tName.Suffix = "IV"
Set tName.Type="Birth"
Do obj.Names.Insert(tName)
// Inserts name of patient's spouse
Set tName = ##class(HS.Types.PersonName).%New()
Set tName.Prefix = "Mx."
Set tName.Given = "Pat"
Set tName.Middle = "A."
Set tName.Family = "Henderson"
Set tName.Suffix = ""
Set obj.SpousesName=tName
// Patient ID
Set obj.MRN="1111222"
Set obj.AssigningAuthority="EXTERNAL" // refers to an Assigning Authority entry in the OID Registry
Set obj.Facility="EXTERNAL" // refers to a Facility entry in the OID Registry
// Address 1
Set addr=##class(HS.Types.Address).%New()
Set addr.City="Somewhere"
Set addr.State="SW"
Set addr.StreetLine="123 Money Street"
Set addr.Use="HP" // Primary Home address
Do obj.Addresses.Insert(addr)
// Address 2
Set addr=##class(HS.Types.Address).%New()
Set addr.City="Anywhere"
Set addr.StreetLine="456 Any Street"
Set addr.Use="WP" // Work Place address
Do obj.Addresses.Insert(addr)
//Telephone
Set tel=##class(HS.Types.Telecom).%New()
Set tel.PhoneCountryCode="1"
Set tel.PhoneAreaCode=705
Set tel.PhoneNumber=5551212
Set tel.Use="HP" // Primary Home phone
Set tel.Type="L" // Landline
Do obj.Telecoms.Insert(tel)
// Alternate ID
Set tIdent=##class(HS.Types.Identifier).%New()
Set tIdent.Root="Other.AA" // refers to an Assigning Authority entry in the OID Registry
Set tIdent.Extension="98754321"
Do obj.Identifiers.Insert(tIdent)
// Send to the routing service (or directly to HS.IHE.PIXv3.Source.Operations)
Do ##class(HS.Test.Service).SendSync(obj,.r)
Quit
}