Hi @Christine Nyamu 

Use $Piece function to get the value of a delimited string. In you specific case:

Set value = $Piece(obxValue, "<>", 2)

I assumed that the variable obxValue was set before in the code.

Note if the in the obx segment the value change the order like, "TESTED POSITIVE FOR ANEMIA<>BLOOD WORK WAS DONE<>TESTED NEGATIVE FOR HEPATITIS", the above sample code will fail

@Humza Arshad 

You can create a REST API/ SOAP API, or any other kind of protocol/technology, to get authentication, retrieve and send data to IRIS.

See the documentation: 



These other two link are two Open Exchange apllication to create Rest Services and Form UI.



Search in the Leraning Portal for some course that help you.

Best Regards.

Hi @Raja Mohan and @Haitem El Aaouani 

Bellow a sample method

ClassMethod CreatProdution(package As %String = "test", name As %String = "AutoCreatedProduction") As %Status
  #Dim produtionClassName As %String = package _ "." _ name
  If ('$ZName(produtionClasName, 4))
  Return $System.Status.Error(5001, "Invalid Production package or name.")
  // Create empty production class definition
  #Dim productionDefinition As %Dictionary.ClassDefinition = ##Class(%Dictionary.ClassDefinition).%New()
  Set productionDefinition.Name         = produtionClassName
  Set productionDefinition.Super        = "Ens.Production"
  Set productionDefinition.ClassVersion = 25
  // Create the XData definition
  #Dim xdataDefinition As %Dictionary.XDataDefinition = ##Class(%Dictionary.XDataDefinition).%New()
  Set xdataDefinition.Name = "ProductionDefinition"
  Do xdataDefinition.Data.WriteLine("<Production Name="""produtionClassName"""/>")
  // Insert XData Definition into Production Definition
  Do productionDefinition.XDatas.Insert(xdataDefinition)
  #Dim statusCode As %Status = productionDefinition.%Save()
  If ($System.Status.IsError(statusCode))
  Return statusCode
  // Compile the production class
  Set statusCode = $System.OBJ.Compile(produtionClassName,"k-d")
  If ($System.Status.IsError(%Dictionary.XDataDefinition))
  Return statusCode
  // fill in production:
  #Dim production As Ens.Config.Production = ##Class(Ens.Config.Production).%OpenId(produtionClassName)
  If ('$IsObject(production))
  Return $System.Status.Error(5001, "Unable to open new production: " _ produtionClassName)
  Set production.Name           = produtionClassName
  Set production.ActorPoolSize  = 2
  // save production (and item), update production class and account for Source Control
  Return ##Class(EnsPortal.Template.prodConfigSCPage).CallProductionUpdateAndSaveToClass(production,"","SaveProduction")

Hi @Scott Roth 

Like the @Jeffrey Drumm told, the problem are because the Database ENSLIB are Read Only. The error occur because you are using the Macros $$$FormatText and $$$Text.

When you use $$$Text macro, the macro try to create a entry in the global ^IRIS.Msg. The global ^IRIS.Msg is mapped from ENSLIB database that is by default Read Only. See imagem bellow that the ^IRIS.Msg("ENSEMBLE") is mapped, but the root global ^IRIS.Msg is mapped to the namespace data base.

To solve the compilation error do change calls to $$$Text("some text", "Ensemble") for some think like $$$Text("some text", "MyDomain")

Click in Replace all

Then compile:

For more information see the documentation String Localization and Message Dictionaries