Hi Yone! 

As far as I know there are no applications to compare productions (maybe I'm wrong), but It wouldn't be too hard to develop something to check it, at the end, a production is saved as any other class and you can access to the specific file of the class to compare.

Here you have an example of a production class:

Class QUINIELA.Production Extends Ens.Production [ Not ProcedureBlock ]
{

XData ProductionDefinition
{
<Production Name="QUINIELA.Production" LogGeneralTraceEvents="false">
  <Description></Description>
  <ActorPoolSize>1</ActorPoolSize>
  <Item Name="QUINIELA.BO.ImportBO" Category="" ClassName="QUINIELA.BO.ImportBO" PoolSize="5" Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
  </Item>
  <Item Name="QUINIELA.BP.ImportBPL" Category="" ClassName="QUINIELA.BP.ImportBPL" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
  </Item>
  <Item Name="QUINIELA.BO.StatusBO" Category="" ClassName="QUINIELA.BO.StatusBO" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
  </Item>
  <Item Name="QUINIELA.BS.FromWSBS" Category="" ClassName="QUINIELA.BS.FromWSBS" PoolSize="0" Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
  </Item>
  <Item Name="QUINIELA.BO.PrepareBO" Category="" ClassName="QUINIELA.BO.PrepareBO" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
  </Item>
  <Item Name="QUINIELA.BO.TrainBO" Category="" ClassName="QUINIELA.BO.TrainBO" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="true" Schedule="">
  </Item>
  <Item Name="QUINIELA.BP.PrepareBP" Category="" ClassName="QUINIELA.BP.PrepareBP" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
  </Item>
  <Item Name="QUINIELA.BP.TrainBP" Category="" ClassName="QUINIELA.BP.TrainBP" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
  </Item>
  <Item Name="QUINIELA.BO.UtilsBO" Category="" ClassName="QUINIELA.BO.UtilsBO" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="true" Schedule="">
  </Item>
  <Item Name="QUINIELA.BO.MatchBO" Category="" ClassName="QUINIELA.BO.MatchBO" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="true" Schedule="">
  </Item>
</Production>
}

}

And here you have an example in Python to compare the content of two files. You only need to know the path in your server to access to those class files to compare.

No problem @Christine Nyamu ! Take a look to this code:

 Set context.matchFound = 0
 // Get count of OBR segments
 Set tOBXCnt = request.GetValueAt("PIDgrpgrp(1).ORCgrp(1).OBXgrp(*)")

 // Loop through OBXs and evaluate field contents
 For tIter = 1:1:tOBXCnt
 {
   set nextIter = tIter+1
   if tIter < tOBXCnt
   {  
     If ((request.GetValueAt("PIDgrpgrp(1).ORCgrp(1).OBXgrp("_tIter_").OBX:ObservationValue")["SEDATION:") &&
       (request.GetValueAt("PIDgrpgrp(1).ORCgrp(1).OBXgrp("_nextIter_").OBX:ObservationValue")["Procedure"))
     {
       Set context.matchFound = 1
     }
   }
   
 }

This code will check the OBX segments and check a variable to 1 in case that "SEDATION" and "Procedure:" are in consecutive segments.

You can add that code in an Activity of your BPL and check the matchFound variable.

I'll paste the answer received by @Aya Heshmat 

Assuming the client is using a file stream and created a message header, we would expect the stream stored in the MGR/\stream folder to get cleaned with a purge. Because you can add custom code, the associated stream may not be getting deleted so they need to look at their code. If file sizes are large, global streams are preferrable over file streams since any failover would remove the reference and the stream which might be causing these items to not purge. Assuming the file path is potentially different on each failover member. if the resource is shared, I would still expect it to get purged.

Following the answer of Dmitry you can check this documentation about the Apache configuration to pass file types to the web gateway:

https://docs.intersystems.com/healthconnectlatest/csp/docbook/DocBook.UI...

As you can read in the doc the Apache server has to pass static files if you want to access to the portal manager, maybe that is the problem with your configuration.