Why isn't my SearchTable Generating Anything When I Run BuildTable
I'm trying to gather more data for one of my namespaces so I can do some analysis. However when I run .BuildIndex() nothing populates in the resulting SQL table. I've tried deleting the class and reimporting and compiling and still nothing. I feel like I'm doing something OBVIOUS that's wrong but I can't quite figure out what it is. Here's what I'm doing (Customer name redacted)
Class CUST***.System.Cerner.Hl7.SearchTable Extends EnsLib.HL7.SearchTable
{
Parameter DOCCLASS = "EnsLib.HL7.Message";Parameter EXTENTSIZE = 4000000;
XData SearchSpec [ XMLNamespace = "http://www.intersystems.com/EnsSearchTable" ]
{
<Items>
<Item DocType="***_CernerORU:ORU_R01" PropName="AccountID" PropType="String:CaseInsensitive" StoreNulls="false"
Unselective="false">{PID:PatientAccountNumber.ID}</Item>
<Item DocType="***_CernerORU:ORU_R01" PropName="EventID" PropType="String:CaseInsensitive" StoreNulls="false" Unselective="false">$PIECE({ORC:FillerOrderNumber(2):entityidentifier},"^",1)</Item>
<Item DocType="***_CernerORU:ORU_R01" PropName="ContentType" PropType="String:CaseInsensitive" StoreNulls="false" Unselective="true">{OBX(1):ValueType}</Item>
<Item DocType="***_CernerORU:ORU_R01" PropName="FileType" PropType="String:CaseInsensitive" StoreNulls="false" Unselective="true">$EXTRACT([OBX(1):5.1],1,5)</Item>
</Items>
}
Storage Default
{
<Type>%Storage.Persistent</Type>
}
}
Comments
Are the Cerner custom schemas shown in your SearchTable based on InterSystems-supplied schemas? Is it possible that you need to specify "fully qualified" paths to the values you wish to index, for example:
Class XXXX.HL7.RAD.SearchTable Extends EnsLib.HL7.SearchTable
{
XData SearchSpec [ XMLNamespace = "http://www.intersystems.com/EnsSearchTable" ]
{
<Items>
<Item DocType="InteleRAD_2.5.1:ORU_R01" PropName="AccessionNo" >{PIDgrpgrp(1).ORCgrp(1).OBR:PlacerOrderNumber.EntityIdentifier}</Item>
<Item DocType="2.5.1:ORU_R01" PropName="AccessionNo" >{PIDgrpgrp(1).ORCgrp(1).OBR:PlacerOrderNumber.EntityIdentifier}</Item>
<Item DocType="2.5.1:ORM_O01" PropName="AccessionNo" >{PIDgrpgrp(1).ORCgrp(1).OBR:PlacerOrderNumber.EntityIdentifier}</Item>
</Items>
}
It's a custom Schema that lives in that Namespace. I validated the paths on a local docker image and it built my index fine, however on shared instances nothing seems to populate.
And those message schema categories are configured in the services and operations that use that SearchTable? And, just as importantly, have always been there? It's not going to index messages that don't have those assigned in the message object's properties.